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 ?>

Generated on Sat Apr 7 14:19:10 2012 for CodeToDiagram by  doxygen 1.5.9