UmlSequenceDiagramPrinterToXml.class.php
Go to the documentation of this file.00001 <?php
00012 class UmlSequenceDiagramPrinterToXml implements UmlSequenceDiagramPrinterInterface
00013 {
00020 protected $objUmlSequenceDiagram;
00021
00028 protected $objConfiguration;
00029
00036 protected static $objInstance;
00037
00044 public static function getInstance()
00045 {
00046 if( self::$objInstance == null )
00047 {
00048 self::$objInstance = new UmlSequenceDiagramPrinterToXml();
00049 }
00050 return self::$objInstance;
00051 }
00052
00056 public function getHeader()
00057 {
00058 header( "Content-type: text/xml" );
00059 }
00060
00068 public function perform( UmlSequenceDiagram $objUmlSequenceDiagram )
00069 {
00070 $this->objUmlSequenceDiagram = $objUmlSequenceDiagram;
00071 return $this->createXml();
00072 }
00073
00082 public function createXml()
00083 {
00084 $strXml = '';
00085 $strXml .= $this->createXmlHeader();
00086 $strXml .= $this->createXmlActors();
00087 $strXml .= $this->createXmlMessages();
00088 $strXml .= $this->createXmlFooter();
00089 return $strXml;
00090 }
00091
00097 public function createXmlHeader()
00098 {
00099 return "<sequence>\n";
00100 }
00101
00107 public function createXmlFooter()
00108 {
00109 return "</sequence>\n";
00110 }
00111
00117 public function createXmlActors()
00118 {
00119 $arrActors = $this->objUmlSequenceDiagram->getActors();
00120
00121 $strXmlActors = "\t<actors>\n";
00122 foreach( $arrActors as $objActor )
00123 {
00125 $strXmlActors .= "\t\t";
00126 $strXmlActors .= "<actor ";
00127 $strXmlActors .= 'id="' . $objActor->getId() . '" ';
00128 $strXmlActors .= 'type="' . $objActor->getType() . '" ';
00129 $strXmlActors .= '>';
00130 $strXmlActors .= $objActor->getName() . ':' . $objActor->getClassName();
00131 $strXmlActors .= "</actor>\n";
00132 }
00133 $strXmlActors .= "\t</actors>\n";
00134 return $strXmlActors;
00135 }
00136
00142 public function createXmlMessages()
00143 {
00144 $arrMessages = $this->objUmlSequenceDiagram->getMessages();
00145
00146 $strXmlMessages = "\t<messages>\n";
00147 foreach( $arrMessages as $objMessage )
00148 {
00151 $strXmlMessages .= "\t\t";
00152 $strXmlMessages .= "<message ";
00153 $strXmlMessages .= 'type="' . $objMessage->getType() . '" ';
00154 $strXmlMessages .= 'from="' . $objMessage->getActorFrom()->getId() . '" ';
00155 $strXmlMessages .= 'to="' . $objMessage->getActorTo()->getId() . '" ';
00156 $strXmlMessages .= 'text="' . htmlentities( $objMessage->getText() ) . '" ';
00157 $strXmlMessages .= '>' . "\n";
00158
00159 $strXmlMessages .= "\t\t\t";
00160 $strXmlMessages .= "<values>\n";
00161
00162 $arrValues = $objMessage->getValues();
00163 foreach($arrValues as $objValue )
00164 {
00166 $strXmlMessages .= "\t\t\t\t";
00167 $strXmlMessages .= "<value ";
00168 $strXmlMessages .= 'name = "' . $objValue->getName() . '" ';
00169 $strXmlMessages .= 'value = "' . $objValue->getValue() . '" ';
00170 $strXmlMessages .= "/>\n";
00171 }
00172
00173 $strXmlMessages .= "\t\t\t";
00174 $strXmlMessages .= "</values>\n";
00175
00176 $strXmlMessages .= "\t\t";
00177 $strXmlMessages .= "</message>\n";
00178 }
00179 $strXmlMessages .= "\t</messages>\n";
00180 return $strXmlMessages;
00181 }
00182
00187 public function setConfiguration( UmlSequenceDiagramPrinterConfigurationInterface $objConfiguration )
00188 {
00189 $this->objConfiguration = $objConfiguration;
00190 }
00191
00196 public function getConfiguration()
00197 {
00198 return $this->objConfiguration;
00199 }
00200 }
00201 ?>