- Developper API  2.0.5
developerApi_2.0.5/DataObjectFactory.php
Go to the documentation of this file.
00001 <?php
00016 require_once("Config.php");
00017 
00018 class DataObjectFactory
00019 {
00020         private static $baseurl = "http://api.vincod.com/2/xml/";
00021 
00022         private final static function checkErrorInXML($xmlObject)
00023         {
00024                 //TODO
00025         }
00026 
00031         public final static function getApikey()
00032         {
00033                 global $apikey;
00034                 return $apikey;
00035         }
00036         
00038         private final static function getRangesFromSXMLDocument($document,$language)
00039         {
00040                 $rangeArray = $document->xpath("winery");
00041                 $ranges = array();
00042                 foreach($rangeArray as $rangeXML)
00043                 {
00044                         $id = $rangeXML->xpath("property:id");
00045                         
00046                         info("Found range with id: <b>".$id[0]."</b>");
00047                         
00048                         $rangeObject = new Range($id[0],AbstractDataObject::$TYPE["RANGE"],$rangeXML,$language);
00049                         array_push($ranges,$rangeObject);
00050                 }
00051 
00052                 return $ranges;
00053         }
00054         
00061         public final static function getRangesByWineryId($id, $language)
00062         {
00063                 global $apikey;
00064                 $document = simplexml_load_file(DataObjectFactory::$baseurl."range/GetRangesByWineryId/$language/$id?apiKey=".$apikey);
00065                 
00066                 if($ranges = DataObjectFactory::getRangesFromSXMLDocument($document,$language))
00067                         return $ranges;
00068                         
00069                 return array();
00070         }
00071 
00078         public final static function getRangeByVincod($id, $language)
00079         {
00080                 global $apikey;
00081                 $document = simplexml_load_file(DataObjectFactory::$baseurl."range/GetRangeByVincod/$language/$id?apiKey=".$apikey);
00082                 
00083                 if($range = DataObjectFactory::getRangesFromSXMLDocument($document,$language))
00084                         return $range[0];
00085                         
00086                 return false;
00087         }
00088 
00095         public final static function getRangesByOwnerId($id, $language)
00096         {
00097                 global $apikey;
00098                 $document = simplexml_load_file(DataObjectFactory::$baseurl."range/GetRangesByOwnerId/$language/$id?apiKey=".$apikey);
00099                 
00100                 if($ranges = DataObjectFactory::getRangesFromSXMLDocument($document,$language))
00101                         return $ranges;
00102                         
00103                 return array();
00104         }
00105 
00112         public final static function getRangeById($id, $language)
00113         {
00114                 global $apikey;
00115                 $document = simplexml_load_file(DataObjectFactory::$baseurl."range/GetRangeById/$language/$id?apiKey=".$apikey);
00116                 
00117                 if($range = DataObjectFactory::getRangesFromSXMLDocument($document,$language))
00118                         return $range[0];
00119                         
00120                 return false;
00121         }
00122 
00124         private final static function getWinesFromSXMLDocument($document,$language)
00125         {
00126                 $wineArray = $document->xpath("wine");
00127                 $wines = array();
00128                 foreach($wineArray as $wineXML)
00129                 {
00130                         $id = $wineXML->xpath("property:id");
00131                         
00132                         info("Found wine with id: <b>".$id[0]."</b>");
00133                         
00134                         $wineObject = new Wine($id[0],AbstractDataObject::$TYPE["WINE"],$wineXML,$language);
00135                         array_push($wines,$wineObject);
00136                 }
00137 
00138                 return $wines;
00139         }
00140         
00147         public final static function getWinesByRangeId($id, $language)
00148         {
00149                 return DataObjectFactory::getWinesByWineryId($id,$language);
00150         }
00151 
00158         public final static function getWinesByWineryId($id, $language)
00159         {
00160                 global $apikey;
00161                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetWinesByWineryId/$language/$id?apiKey=".$apikey);
00162                 
00163                 if($wines = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00164                         return $wines;
00165                         
00166                 return false;
00167         }
00168 
00175         public final static function getWinesByOwnerId($id, $language)
00176         {
00177                 global $apikey;
00178                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetWinesByOwnerId/$language/$id?apiKey=".$apikey);
00179                 
00180                 if($wines = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00181                         return $wines;
00182                         
00183                 return false;
00184         }
00185 
00192         public final static function getWinesByVintageYear($vintageYear,$language)
00193         {
00194                 global $apikey;
00195                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetWinesByVintageYear/$language/$vintageYear?apiKey=".$apikey);
00196                 
00197                 if($wines = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00198                         return $wines;
00199                         
00200                 return false;
00201         }
00202 
00209         public final static function getVintagesByVintageYear($vintageYear, $language)
00210         {
00211                 global $apikey;
00212                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetVintagesByVintageYear/$language/$vintageYear?apiKey=".$apikey);
00213                 
00214                 if($wines = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00215                         return $wines;
00216                         
00217                 return false;
00218         }
00219 
00226         public final static function getWineByVincod($id, $language)
00227         {
00228                 global $apikey;
00229                                 
00230                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetWineByVincod/$language/$id?apiKey=".$apikey);
00231                 
00232                 if($wine = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00233                         return $wine[0];
00234                         
00235                 return false;
00236         }
00237         
00244         public final static function getOtherVintagesByVincod($id, $language)
00245         {
00246                 global $apikey;
00247                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetOtherVintagesByVincod/$language/$id?apiKey=".$apikey);
00248                 
00249                 if($wine = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00250                         return $wine;
00251                         
00252                 return array();
00253         }
00254         
00261         public final static function getOtherLanguagesByVincod($id, $language)
00262         {
00263                 global $apikey;
00264                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetOtherLanguagesByVincod/$language/$id?apiKey=".$apikey);
00265                 
00266                 if($wine = DataObjectFactory::getWinesFromSXMLDocument($document,$language))
00267                         return $wine;
00268                         
00269                 return false;
00270         }
00271         
00277         public final static function getAvailableLanguagesByVincod($id)
00278         {
00279                 global $apikey;
00280                 $document = simplexml_load_file(DataObjectFactory::$baseurl."wine/GetAvailableLanguagesByVincod/en/$id?apiKey=".$apikey);
00281                                 
00282                 $languageArray = $document->xpath("lang");
00283                 $languages = array();
00284                 foreach($languageArray as $languageXML)
00285                 {
00286                 
00287                         $lang = $languageXML->xpath("langabrv");
00288                         $lang = (string) $lang[0];
00289                         if(!empty($lang))
00290                         array_push($languages,$lang);
00291                 }                       
00292                 return $languages;
00293         }
00294 
00296         private final static function getWineriesFromSXMLDocument($document,$language)
00297         {
00298                 $wineryArray = $document->xpath("winery");
00299                 $wineries = array();
00300                 foreach($wineryArray as $wineryXML)
00301                 {
00302                         $id = $wineryXML->xpath("property:id");
00303                         
00304                         info("Found winery with id: <b>".$id[0]."</b>");
00305                         
00306                         $wineryObject = new Winery($id[0],AbstractDataObject::$TYPE["WINERY"],$wineryXML,$language);
00307 
00308                         array_push($wineries,$wineryObject);
00309                 }
00310           
00311           return $wineries;
00312         }
00313 
00320         public final static function getWineryByRangeId($id, $language)
00321         {
00322                 global $apikey;
00323                 $document = simplexml_load_file(DataObjectFactory::$baseurl."winery/GetWineryByRangeId/$language/$id?apiKey=".$apikey);
00324 
00325                 if($winery = DataObjectFactory::getWineriesFromSXMLDocument($document,$language))
00326                         return $winery[0];
00327                         
00328                 return false;
00329         }
00330 
00337         public final static function getWineryByVincod($id, $language)
00338         {
00339                 global $apikey;
00340                 $document = simplexml_load_file(DataObjectFactory::$baseurl."winery/GetWineryByVincod/$language/$id?apiKey=".$apikey);
00341                 
00342                 if($winery = DataObjectFactory::getWineriesFromSXMLDocument($document,$language))
00343                         return $winery[0];
00344                         
00345                 return false;
00346         }
00347 
00354         public final static function getWineriesByOwnerId($id, $language)
00355         {
00356                 global $apikey;
00357                 $document = simplexml_load_file(DataObjectFactory::$baseurl."winery/GetWineriesByOwnerId/$language/$id?apiKey=".$apikey);
00358                 
00359                 if($wineries = DataObjectFactory::getWineriesFromSXMLDocument($document,$language))
00360                         return $wineries;
00361                         
00362                 return array();
00363         }
00364 
00371         public final static function getWineryById($id, $language)
00372         {
00373                 global $apikey;
00374                 $document = simplexml_load_file(DataObjectFactory::$baseurl."winery/GetWineryById/$language/$id?apiKey=".$apikey);
00375                 
00376                 if($winery = DataObjectFactory::getWineriesFromSXMLDocument($document,$language))
00377                         return $winery[0];
00378                         
00379                 return false;
00380         }
00381 
00383         private final static function getOwnersFromSXMLDocument($document,$language)
00384         {
00385                 $ownerArray = $document->xpath("owner");
00386                 $owners = array();
00387                 foreach($ownerArray as $ownerXML)
00388                 {
00389                         $id = $ownerXML->xpath("property:id");
00390                         
00391                         info("Found owner with id: <b>".$id[0]."</b>");
00392                         
00393                         $ownerObject = new Owner($id[0],AbstractDataObject::$TYPE["OWNER"],$ownerXML,$language);
00394 
00395                         array_push($owners,$ownerObject);
00396                 }
00397 
00398                 return $owners;
00399         }
00400 
00407         public final static function getOwnerByRangeId($id, $language)
00408         {
00409                 global $apikey;
00410                 $document = simplexml_load_file(DataObjectFactory::$baseurl."owner/GetOwnerByRangeId/$language/$id?apiKey=".$apikey);
00411                 
00412                 if($owner = DataObjectFactory::getOwnersFromSXMLDocument($document,$language))
00413                         return $owner[0];
00414                         
00415                 return false;
00416         }
00417 
00424         public final static function getOwnerByVincod($id, $language)
00425         {
00426                 global $apikey;
00427                 $document = simplexml_load_file(DataObjectFactory::$baseurl."owner/GetOwnerByVincod/$language/$id?apiKey=".$apikey);
00428                 
00429                 if($owner = DataObjectFactory::getOwnersFromSXMLDocument($document,$language))
00430                         return $owner[0];
00431                         
00432                 return false;
00433         }
00434 
00441         public final static function getOwnerByWineryId ($id, $language)
00442         {
00443                 global $apikey;
00444                 $document = simplexml_load_file(DataObjectFactory::$baseurl."owner/GetOwnerByWineryId/$language/$id?apiKey=".$apikey);
00445                 
00446                 if($owner = DataObjectFactory::getOwnersFromSXMLDocument($document,$language))
00447                         return $owner[0];
00448                         
00449                 return false;
00450         }
00451 
00458         public final static function getOwnerById($id, $language)
00459         {
00460                 global $apikey;
00461                 $document = simplexml_load_file(DataObjectFactory::$baseurl."owner/GetOwnerById/$language/$id?apiKey=".$apikey);
00462                 
00463                 if($owner = DataObjectFactory::getOwnersFromSXMLDocument($document,$language))
00464                         return $owner[0];
00465                         
00466                 return false;
00467         }
00468 }
00469 ?>