bcom/clazz/2/Langage.class.php

89 lines
2.6 KiB
PHP

<?php
class Langage{
//FIXME const
public static $java;
public static $vba;
public static $languages = array();
protected $ID;
protected $name;
protected $avalivableFiles;//String "jar xlsx javadoc" in constructor , stored as a string array
public function __construct($ID,$name,$avalivableFiles){
$this->ID = $ID;
$this->name = $name;
$this->avalivableFiles = explode(" ",$avalivableFiles);
Langage::$languages[] = $this;
}
public function getID(){
return $this->ID;
}
public function getName(){
return $this->name;
}
public function getAvalivableFiles(){
return $this->avalivableFiles;
}
public function isJarAvalivable(){
return in_array("jar",$this->avalivableFiles);
}
public function isJavaAvalivable(){
return in_array("java",$this->avalivableFiles);
}
public function isJavadocAvalivable(){
return in_array("javadoc",$this->avalivableFiles);
}
public function isXlsmAvalivable(){
return in_array("xlsm",$this->avalivableFiles);
}
public function isVbAvalivable(){
return in_array("vb",$this->avalivableFiles);
}
public function isJarAccessible($fileAccessibility){
return $this->isJarAvalivable() AND ($fileAccessibility >> array_search("jar",$this->avalivableFiles)) % 2 === 1;
}
public function isJavaAccessible($fileAccessibility){
return $this->isJavaAvalivable() AND ($fileAccessibility >> array_search("java",$this->avalivableFiles)) % 2 === 1;
}
public function isJavadocAccessible($fileAccessibility){
return $this->isJavadocAvalivable() AND ($fileAccessibility >> array_search("javadoc",$this->avalivableFiles)) % 2 === 1;
}
public function isXlsmAccessible($fileAccessibility){
return $this->isXlsmAvalivable() AND ($fileAccessibility >> array_search("xlsm",$this->avalivableFiles)) % 2 === 1;
}
public function isVbAccessible($fileAccessibility){
return $this->isVbAvalivable() AND ($fileAccessibility >> array_search("vb",$this->avalivableFiles)) % 2 === 1;
}
public static function getFromID($ID){
foreach(Langage::$languages AS $language){
if($language->getID() == $ID)
return $language;
}
return NULL;
}
public static function getFromName($name){
foreach(Langage::$languages AS $language){
if($language->getName() == $name)
return $language;
}
return NULL;
}
public static function getLanguagesFromVersions($versions){
$languages = array();
foreach($versions AS $version)
array_push($languages,$version->getLanguage());
$languages = array_unique($languages,SORT_REGULAR);
return $languages;
}
}
Langage::$java = new Langage(0, "Java", "jar java javadoc");
Langage::$vba = new Langage(1, "VBA", "xlsm vb");