Subversion Repositories eFlore/Applications.moissonnage

Rev

Rev 26 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
26 alex 1
<?php
2
 
3
class Commun {
4
 
5
 
6
	private $parametres;
7
	private $nomSource;
8
	private $nomService;
9
 
10
	private $verificateur;
11
	private $parametresRecherche;
12
 
13
 
14
	public function consulter($ressources, $parametres) {
15
		$this->recupererRessourcesEtParametres($ressources, $parametres);
16
		$retour = null;
17
		try {
18
			if (!$this->verifierExistenceSourcesDonnees()) {
19
				$message = "Source de donnees indisponible";
20
				throw new Exception($message, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE);
21
			} else {
22
				$this->verifierParametres();
31 alex 23
				if ($this->ressources[0] == 'mailles') {
24
					$retour = $this->recupererMaillage();
25
				} else {
26
					$this->chargerNomSource();
27
					$this->chargerNomService();
28
					$retour = $this->executerServicePourSource();
29
				}
26 alex 30
			}
31
		} catch (Exception $erreur) {
32
			$retour = $erreur;
33
		}
34
		return $retour;
35
	}
36
 
37
	private function recupererRessourcesEtParametres($ressources, $parametres) {
38
		$this->ressources = $ressources;
39
		$this->parametres = $parametres;
40
	}
41
 
42
	private function verifierExistenceSourcesDonnees() {
43
		$sourcesDisponibles = explode(',', Config::get('sources_dispo'));
44
		$estDisponible = false;
45
		if (isset($this->parametres['source'])) {
46
			if (in_array($this->parametres['source'], $sourcesDisponibles)) {
47
				$estDisponible = true;
48
			}
49
		} else {
50
			// choisir la source par defaut, qui est toujours disponible
51
			$estDisponible = true;
52
		}
53
		return $estDisponible;
54
	}
55
 
56
	private function verifierParametres() {
57
		$this->verificateur = new VerificateurParametres($this->parametres);
58
		$this->verificateur->verifierParametres();
59
		if ($this->verificateur->contientErreurs()) {
60
			$this->verificateur->leverException();
61
		} else {
62
			$this->recupererParametresRecherche();
63
		}
64
	}
65
 
66
	private function recupererParametresRecherche() {
67
		$this->parametresRecherche = $this->verificateur->renvoyerResultatVerification();
68
	}
69
 
31 alex 70
	private function chargerNomSource() {
71
		if (isset($this->parametres['source'])) {
72
			$this->nomSource = $this->parametres['source'];
73
		} else {
74
			$this->nomSource = Config::get('source_defaut');
75
		}
76
	}
26 alex 77
 
31 alex 78
	private function chargerNomService() {
79
		$this->nomService = ucfirst($this->parametres['source']) . 'Formateur';
80
		Projets::chargerConfigurationSource($this->parametres['source']);
81
	}
82
 
83
	private function recupererMaillage() {
84
		$maillage = new Maillage($this->parametresRecherche->bbox, $this->parametresRecherche->zoom);
85
		$maillage->genererMaillesVides();
86
		$formateurJSON = new FormateurJson();
87
		return $formateurJSON->formaterMaillesVides($maillage->formaterSortie(true));
88
	}
89
 
90
	private function executerServicePourSource() {
91
		$objetTraitement = new $this->nomService($this->parametresRecherche);
92
		$methode = $this->genererNomMethodeAExecuter();
93
		return $objetTraitement->$methode();
94
	}
95
 
96
	private function genererNomMethodeAExecuter() {
97
		return 'recuperer' . ucfirst($this->ressources[0]);
98
	}
99
 
26 alex 100
}
101
 
102
?>