Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00023 final class CommonDoctypeDeclaration extends DoctypeDeclaration
00024 {
00025 private $organization = null;
00026
00027 private $type = null;
00028 private $subtype = null;
00029 private $version = null;
00030 private $variant = null;
00031 private $language = null;
00032
00036 public static function create()
00037 {
00038 return new self;
00039 }
00040
00044 public function setOrganization($organization)
00045 {
00046 $this->organization = $organization;
00047
00048 return $this;
00049 }
00050
00051 public function getOrganization()
00052 {
00053 return $this->organization;
00054 }
00055
00059 public function setType($type)
00060 {
00061 $this->type = $type;
00062
00063 return $this;
00064 }
00065
00066 public function getType()
00067 {
00068 return $this->type;
00069 }
00070
00074 public function setSubtype($subtype)
00075 {
00076 $this->subtype = $subtype;
00077
00078 return $this;
00079 }
00080
00081 public function getSubtype()
00082 {
00083 return $this->subtype;
00084 }
00085
00089 public function setVersion($version)
00090 {
00091 $this->version = $version;
00092
00093 return $this;
00094 }
00095
00096 public function getVersion()
00097 {
00098 return $this->version;
00099 }
00100
00104 public function setVariant($variant)
00105 {
00106 $this->variant = $variant;
00107
00108 return $this;
00109 }
00110
00111 public function getVariant()
00112 {
00113 return $this->variant;
00114 }
00115
00119 public function setLanguage($language)
00120 {
00121 $this->language = $language;
00122
00123 return $this;
00124 }
00125
00126 public function getLanguage()
00127 {
00128 return $this->language;
00129 }
00130
00134 public function setFpi($fpi)
00135 {
00136 parent::setFpi($fpi);
00137
00138 $matches = array();
00139
00140 preg_match(
00141 '~^-//([a-z0-9]+)//DTD ([a-z]+)'
00142 .' ?([a-z]+)? ?(\d+\.\d+)?'.
00143 ' ?([a-z]+)?//([a-z]+)$~i',
00144 $fpi,
00145 $matches
00146 );
00147
00148 $this->organization = !empty($matches[1]) ? $matches[1] : null;
00149 $this->type = !empty($matches[2]) ? $matches[2] : null;
00150
00151 $this->subtype = !empty($matches[3]) ? $matches[3] : null;
00152 $this->version = !empty($matches[4]) ? $matches[4] : null;
00153 $this->variant = !empty($matches[5]) ? $matches[5] : null;
00154 $this->language = !empty($matches[6]) ? $matches[6] : null;
00155
00156 return $this;
00157 }
00158
00159 public function getFpi()
00160 {
00161 if (!$this->organization)
00162 return null;
00163
00164 return
00165 '-//'.$this->organization.'//DTD '.$this->type
00166 .($this->subtype ? ' '.$this->subtype : null)
00167 .($this->version ? ' '.$this->version : null)
00168 .($this->variant ? ' '.$this->variant : null)
00169 .'//'.$this->language;
00170 }
00171 }
00172 ?>