!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\dmz\php\pear\PHP\UML\Output\Xmi\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     BuilderImpl2.php (12.07 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * PHP_UML (PHP_UML_Output_Xmi_BuilderImpl2)
 *
 * PHP version 5
 *
 * @category PHP
 * @package  PHP_UML
 * @author   Baptiste Autin <ohlesbeauxjours@yahoo.fr> 
 * @license  http://www.gnu.org/licenses/lgpl.html LGPL License 3
 * @version  SVN: $Revision: 174 $
 * @link     http://pear.php.net/package/PHP_UML
 * @since    $Date: 2011-09-15 03:17:32 +0200 (jeu., 15 sept. 2011) $
 */

/**
 * Implementation class to create XMI in version 2
 * 
 * See the interface PHP_UML_Output_Xmi_Builder for the comments.
 *
 * @category   PHP
 * @package    PHP_UML
 * @subpackage Output
 * @subpackage Xmi
 * @see        PHP_UML_Output_Xmi_Builder
 * @author     Baptiste Autin <ohlesbeauxjours@yahoo.fr> 
 * @license    http://www.gnu.org/licenses/lgpl.html LGPL License 3
 */
class PHP_UML_Output_Xmi_BuilderImpl2 extends PHP_UML_Output_Xmi_AbstractBuilder
{
    const 
XMI_VERSION '2.1';
    const 
UML_VERSION '2.1.2';

    const 
DEFAULT_CLASSIFIER_ATT ' visibility="public" isAbstract="false" ';
    
    
/**
     * PHP_UML UML Profile (TODO) 
     * @var string
     */
    
public $profile '';

    public function 
getXmiHeaderOpen()
    {
        return 
'<xmi:XMI xmi:version="'.self::XMI_VERSION.'" 
            xmlns:uml="http://schema.omg.org/spec/UML/'
.self::UML_VERSION.'"
            xmlns:xmi="http://schema.omg.org/spec/XMI/'
.self::XMI_VERSION.'"
            xmlns:php="http://schemas/phpdoc/'
.self::getUID().'">
                <xmi:Documentation exporter="'
.self::EXPORTER_NAME.'"/>';
    }

    public function 
getModelOpen(PHP_UML_Metamodel_Package $model)
    {
        return 
'<uml:Model xmi:type="uml:Model" name="'.$model->name.'"
            xmi:id="'
.$model->id.'" '.self::DEFAULT_CLASSIFIER_ATT.'>';
    }

    public function 
getModelClose()
    {
        return 
'</uml:Model>';
    }
    
    public function 
getXmiHeaderClose()
    {
        return 
'</xmi:XMI>';
    }
    
    public function 
getPackageOpen(PHP_UML_Metamodel_Package $package)
    { 
        
$str '<packagedElement xmi:type="uml:Package" xmi:id="'.$package->id.
            
'" name="'.$package->name.'">';
        if (isset(
$package->description)) {
            
$str .= $this->getComment($package->description$package->id);
        }
        return 
$str;
    }
    
    public function 
getPackageClose()
    {
        return 
'</packagedElement>';
    }
    
    public function 
getNamespaceOpen()
    {
        return 
'';
    }
    
    public function 
getNamespaceClose()
    {
        return 
'';
    }
    
    public function 
getDatatype(PHP_UML_Metamodel_Datatype $type)
    {
        
$str '<packagedElement xmi:type="uml:DataType"'.
            
' xmi:id="'.$type->id.'"'.
            
' name="'.$type->name.'">';
        if (isset(
$type->description))
            
$str .= $this->getComment($type->description$type->id);
        return 
$str.'</packagedElement>';
    }
    
    public function 
getSubsystemOpen(PHP_UML_Metamodel_Package $package)
    {
        return 
'<packagedElement xmi:type="uml:Component" xmi:id="'.
            
$package->id.'" name="'.$package->name.
            
'" '.self::DEFAULT_CLASSIFIER_ATT.'>';
    }
    
    public function 
getSubsystemClose()
    {
        return 
'</packagedElement>';
    }

    public function 
getClass(PHP_UML_Metamodel_Class $class)
    {
        
$strRealization '';

        
$str '<packagedElement xmi:type="uml:Class" name="'.$class->name.'" xmi:id="'.
            
$class->id.'" visibility="package"
            isAbstract="'
.($class->isAbstract?'true':'false').'">';

        
$str .= $this->getGeneralizations($class);

        
$strRealization .= $this->getRealizations($class);

        foreach (
$class->ownedAttribute as &$property)
            
$str .= $this->getProperty($property);

        foreach (
$class->ownedOperation as &$operation)
            
$str .= $this->getOperation($operation);

        if (isset(
$class->description))
            
$str .= $this->getComment($class->description$class->id);

        
$str .= '</packagedElement>';

        return 
$str.$strRealization;
    }
 
    public function 
getInterface(PHP_UML_Metamodel_Interface $interface)
    {
        
$str '<packagedElement xmi:type="uml:Interface" '.
            
' name="'.$interface->name.'" xmi:id="'.$interface->id.'"'.
            
' visibility="package" isAbstract="true">';

        foreach (
$interface->ownedOperation as &$operation)
            
$str .= $this->getOperation($operation);

        
$str .= $this->getGeneralizations($interface);

        if (isset(
$interface->description))
            
$str .= $this->getComment($interface->description$interface->id);

        
$str .= '</packagedElement>';
        return 
$str;
    }

    public function 
getRealizations(PHP_UML_Metamodel_Class $client)
    {
        
$str '';
        foreach (
$client->implements as &$rclass) {
            if (
is_object($rclass)) {
                
$str .= '<packagedElement xmi:type="uml:Realization" '.
                
'xmi:id="'.self::getUID().'" '.
                
'client="'.$client->id.'" '.
                
'supplier="'.$rclass->id.'" '.
                
'realizingClassifier="'.$rclass->id.'"/>';
            }
        }
        return 
$str;
    }

    public function 
getGeneralizations(PHP_UML_Metamodel_Type $client)
    {
        
$str '';
        foreach (
$client->superClass as &$gclass) {
            if (
is_object($gclass)) {
                
$str .= '<generalization xmi:type="uml:Generalization" '.
                    
'xmi:id="'.self::getUID().'" '.
                    
'general="'.$gclass->id.'"/> ';
            }
        }
        return 
$str;
    }

    public function 
getProperty(PHP_UML_Metamodel_Property $property)
    {
        
$str '<ownedAttribute xmi:type="uml:Property"'.
            
' name="'.$property->name.'"'.
            
' xmi:id="'.$property->id.'"'.
            
' visibility="'.$property->visibility.'" ';
 
        if (!
$property->isInstantiable)
            
$str .= ' isStatic="true"';
        if (
$property->isReadOnly)
            
$str .= ' isReadOnly="true" ';

        
$str .= '>'.$this->getParameterType($property);
        
        if (isset(
$property->description))
            
$str .= $this->getComment($property->description$property->id);
 
        
$str .= '</ownedAttribute>';
        return 
$str;
    }

    public function 
getOperation(PHP_UML_Metamodel_Operation $operation)
    {
        
$str '<ownedOperation xmi:id="'.$operation->id.'" 
            name="'
.$operation->name.'" visibility="'.$operation->visibility.'" ';

        if (!
$operation->isInstantiable)
            
$str .= ' isStatic="true"';
        if (
$operation->isAbstract)
            
$str .= ' isAbstract="true"';

        
$str .= '>';

        foreach (
$operation->ownedParameter as &$parameter) {
            
$str .= $this->getParameter($parameter);
        }

        if (isset(
$operation->description))
            
$str .= $this->getComment($operation->description$operation->id);

        
$str .= '</ownedOperation>';

        return 
$str;
    }
        
    public function 
getParameter(PHP_UML_Metamodel_Parameter $parameter)
    {   
        return 
'<ownedParameter xmi:id="'.$parameter->id.'" '.
            
'name="'.$parameter->name.'" direction="'.$parameter->direction.'">'.
            
$this->getParameterType($parameter).
            
'</ownedParameter>';
    }
    
    public function 
getParameterType(PHP_UML_Metamodel_TypedElement $parameter)
    {
        
$str '';
        
$id  self::getUID();

        if (isset(
$parameter->type->id))
            
$str '<type xmi:idref="'.$parameter->type->id.'"/>';

        if (
$parameter->default!='')
            
$str .= '<defaultValue xmi:type="uml:LiteralString" xmi:id="'.$id.'"'.
                
' value="'.htmlspecialchars($parameter->defaultENT_QUOTES).'" />';

        return 
$str;
    }
    
    public function 
getArtifact(PHP_UML_Metamodel_Artifact $file, &$mf = array())
    {
        
$id   $file->id;
        
$file htmlspecialchars($file->name);
        
$name basename($file);
        
$str  '
            <packagedElement xmi:type="uml:Artifact"'
.
            
' xmi:id="'.$id.'"'.
            
' name="'.$name.'" '.
            
' stereotype="'.self::getUID('stereotype_'.self::PHP_FILE).'" '.
            
self::DEFAULT_CLASSIFIER_ATT.' >';

        foreach (
$mf as $class) {
            if (
$class instanceof PHP_UML_Metamodel_Classifier) {
                
$id_supplier $class->id;
                
$str        .= self::getManifestation($id$id_supplier'source');
            }
        }

        
$str .= '</packagedElement>';
        return 
$str;
    }
    
    public function 
getComponentOpen(PHP_UML_Metamodel_Package $package, array $provided, array $required)
    {       
        
$str '
            <packagedElement xmi:type="uml:Component"'
.
            
' xmi:id="'.$package->id.'"'.
            
' name="'.$package->name.'" '.
            
self::DEFAULT_CLASSIFIER_ATT.' >';

        foreach (
$provided as $c) {
            switch (
get_class($c)) {
            case 
'PHP_UML_Metamodel_Interface':
            case 
'PHP_UML_Metamodel_Class':
                
$id          self::getUID('CV_provided_'.$c->name);
                
$id_provided $c->id;
                
$str        .= '<provided xmi:id="'.$id.'" xmi:idref="'.$id_provided.
                    
'" name="'.$c->name.'"/>';
            }
        }
        foreach (
$required as $c) {
            
$id          self::getUID('CV_required_'.$c->name);
            
$id_provided $c->id;
            
$str        .= '<required xmi:id="'.$id.'" xmi:idref="'.$id_provided.'" name="'.$c->name.'"/>';
        }
        return 
$str;
    }

    public function 
getComponentClose()
    {
        return 
'</packagedElement>';
    }

    
/**
     * Formates a Profile adapted to PHP_UML.
     *
     * TODO. Experimental.
     *
     * @return string XMI Code
     */
    
public function getProfile()
    {
        return 
file_get_contents('../Metamodel/phpdoc.profile.xmi').
                
'<profileApplication xmi:type="uml:ProfileApplication" xmi:id="'.self::getUID().'">'.
            
'<appliedProfile xmi:idref="PHP_UML_phpdoc_1"/>'.
            
'</profileApplication>';
    }

    public function 
getComment(PHP_UML_Metamodel_Stereotype $s$annotatedElement='')
    {
        
$tag PHP_UML_Metamodel_Helper::getStereotypeTag($s'description');
        if(!
is_null($tag))
            return 
'<ownedComment xmi:type="uml:Comment"
                xmi:id="'
.self::getUID().'" annotatedElement="'.$annotatedElement.
                
'"><body>'.htmlspecialchars($tag->value).'</body></ownedComment>';
        else
            return 
'';
    }

    public function 
getStereotypes()
    {
        return 
'';
    }
    
    
/**
     * Gets all the elements contained in a stereotype
     * Note: the property "documentation" is not discarded (we will have
     * it as an "ownedComent" tag, instead; see getComment())
     *
     * @param PHP_UML_Metamodel_Stereotype $s Stereotype
     *
     * @return string
     */
    
public function getStereotypeInstance(PHP_UML_Metamodel_Stereotype $s)
    {
        
$str '';
        foreach (
$s->ownedAttribute as $tag) {
            if(
$tag->value!='' && $tag->name!='description')
                
$str .= $this->getMetadata($tag);
        }

        if (
$str!='')
            return 
'<'.$s->profile.':'.$s->name.
                
' base_Element="'.$s->element->id.'">'.
                
$str.'</'.$s->profile.':'.$s->name.'>';
        else
            return 
'';
    }
    
    public function 
getMetadata(PHP_UML_Metamodel_Tag $tag)
    {
        return 
'<'.$tag->name.'>'.htmlspecialchars($tag->value).'</'.$tag->name.'>'
    }
 
    
/**
     * Generates a manifestation element (= the link between a class and the
     * artifact where the class is defined)
     *
     * @param string $client   Name of the client
     * @param string $supplier Name of the supplier
     * @param string $name     Name of the relation
     * 
     * @return string XMI code
     */
    
public function getManifestation($client$supplier$name)
    {
        return 
'<manifestation xmi:type="uml:Manifestation" '.
            
'xmi:id="'.self::getUID().'" '.
            
'client="'.$client.'" supplier="'.$supplier.'" '.
            
'utilizedElement="'.$supplier.'" name="'.$name.'"/>'
    }
    
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.078 ]--