!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.36%)
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:     BuilderImpl1.php (13.58 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * PHP_UML (PHP_UML_Output_Xmi_BuilderImpl1)
 *
 * 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 1
 *
 * 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_BuilderImpl1 extends PHP_UML_Output_Xmi_AbstractBuilder
{
    const 
XMI_VERSION '1.2';
    const 
UML_VERSION '1.4';

    const 
DEFAULT_CLASSIFIER_ATT ' visibility="public" isAbstract="false" 
        isSpecification="false" isRoot="false" isLeaf="false" '
;

    public function 
getXmiHeaderOpen()
    {
        return 
'<XMI xmi.version="'.self::XMI_VERSION.'"
            xmlns:UML="http://www.omg.org/spec/UML/1.4">
            <XMI.header>
                <XMI.documentation>
                    <XMI.exporter>'
.self::EXPORTER_NAME.'</XMI.exporter>
                </XMI.documentation>
                <XMI.metamodel XMI.name="UML" XMI.version="'
.self::XMI_VERSION.'" />
            </XMI.header>
            <XMI.content>'
;
    }
    
    public function 
getXmiHeaderClose()
    {
        return 
'</XMI.content></XMI>';
    }
    
    public function 
getModelOpen(PHP_UML_Metamodel_Package $model)
    {
        return 
'<UML:Model name="'.$model->name.'" xmi.id="'.$model->id.'" '.
            
self::DEFAULT_CLASSIFIER_ATT.'>';         
    }

    public function 
getStereotypes()
    {
        
$str '';
        foreach (
self::$allStereotypes as $item)
            
$str .= '<UML:Stereotype xmi.id="'.self::getUID('stereotype_'.$item).'"
                name="'
.$item.'" '.self::DEFAULT_CLASSIFIER_ATT.' />';
        
        
$str .= '<UML:Stereotype xmi.id="'.self::getUID('stereotype_realize').'"
            name="realize" '
.self::DEFAULT_CLASSIFIER_ATT.'>
            <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
            </UML:Stereotype>'
;
        
        
$str .= $this->getTagDefinition('documentation');
        return 
$str;
    }
    
    public function 
getStereotypeInstance(PHP_UML_Metamodel_Stereotype $s)
    {
        return 
'';
    }
    
    public function 
getMetadata(PHP_UML_Metamodel_Tag $tag)
    {
        return 
'<'.$tag->name.'>'.$tag->value.'</'.$tag->name.'>'
    }
    
    public function 
getModelClose()
    {
        return 
'</UML:Model>';
    }
    
    public function 
getPackageOpen(PHP_UML_Metamodel_Package $package)
    {
        
$str '<UML:Package xmi.id="'.$package->id.'" name="'.$package->name.'">';
        if (isset(
$package->description)) {
            
$str .= $this->getComment($package->description);
        }
        return 
$str;
    }

    public function 
getNamespaceOpen()
    {
        return 
'<UML:Namespace.ownedElement>';
    }
    
    public function 
getPackageClose()
    {
        return 
'</UML:Package>';
    }

    public function 
getNamespaceClose()
    {
        return 
'</UML:Namespace.ownedElement>';
    }
    
    public function 
getSubsystemOpen(PHP_UML_Metamodel_Package $package)
    {
        return 
'<UML:Subsystem name="'.$package->name.'" xmi.id="'.
            
$package->id.'" isInstantiable="false"><UML:Namespace.ownedElement>';
    }

    public function 
getSubsystemClose()
    {
        return 
'</UML:Namespace.ownedElement></UML:Subsystem>';
    }
    
    public function 
getDatatype(PHP_UML_Metamodel_Datatype $type)
    {
        
$str '<UML:DataType xmi.id="'.$type->id.'"'.
            
' name="'.$type->name.'" visibility="public" isRoot="false" '.
            
' isLeaf="false" isAbstract="false">';
        if (isset(
$class->description))
            
$str .= $this->getComment($class->description);
        return 
$str.'</UML:DataType>';
    }

    public function 
getClass(PHP_UML_Metamodel_Class $class)
    { 
        
$str '<UML:Class name="'.$class->name.'" xmi.id="'.
            
$class->id.'" visibility="package"
            isAbstract="'
.($class->isAbstract?'true':'false').'">';

        list(
$generalizable$generalization) = $this->getGeneralizations($class);

        
$str .= $generalizable;
        
$str .= '<UML:Classifier.feature>';

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

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

        
$str .= '</UML:Classifier.feature>';
        
        if (isset(
$class->description))
            
$str .= $this->getComment($class->description);
        
        
$str .= '</UML:Class>';

        return 
$str.$generalization.$this->getRealizations($class);
    }

    public function 
getInterface(PHP_UML_Metamodel_Interface $interface)
    {
        
$str '<UML:Interface name="'.$interface->name.'"'.
            
' xmi.id="'.$interface->id.'"'.
            
' visibility="package" isAbstract="true">';

        list(
$generalizable$generalization) = $this->getGeneralizations($interface);

        
$str .= $generalizable;
        
$str .= '<UML:Classifier.feature>';
 
        foreach (
$interface->ownedOperation as &$operation)
            
$str .= $this->getOperation($operation);

        
$str .= '</UML:Classifier.feature>';

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

        
$str .= '</UML:Interface>';
        
        return 
$str.$generalization;
    }

    public function 
getGeneralizations(PHP_UML_Metamodel_Type $client)
    {
        
$str '';

        
$generalizable  '';
        
$generalization '';
 
        foreach (
$client->superClass as &$gclass) {
            if (
is_object($gclass)) {
                
$id self::getUID();

                
$generalizable .= '<UML:GeneralizableElement.generalization>
                    <UML:Generalization xmi.idref="'
.$id.'"/>
                    </UML:GeneralizableElement.generalization>'
;

                
$generalization .= '<UML:Generalization xmi.id="'.$id.'">
                    <UML:Generalization.child><UML:Class xmi.idref="'
.
                    
$client->id.
                    
'" /></UML:Generalization.child>
                    <UML:Generalization.parent><UML:Class xmi.idref="'
.
                    
$gclass->id.'"/>
                    </UML:Generalization.parent></UML:Generalization>'
;
            }
        }
        return array(
$generalizable$generalization);
    }

    public function 
getRealizations(PHP_UML_Metamodel_Class $client)
    {
        
$str '';
        foreach (
$client->implements as &$rclass) {
            if (
is_object($rclass)) {
                
$str .= '<UML:Abstraction '.
                    
'xmi.id="'.self::getUID().'" isSpecification="false">'.
                    
'<UML:ModelElement.stereotype><UML:Stereotype xmi.idref="'.
                    
self::getUID('stereotype_realize').'"/>'.
                    
'</UML:ModelElement.stereotype>'.
                    
'<UML:Dependency.client><UML:Class xmi.idref="'.
                    
$client->id.
                    
'"/></UML:Dependency.client>'.
                    
'<UML:Dependency.supplier><UML:Interface xmi.idref="'.
                    
$rclass->id.'"/>'.
                    
'</UML:Dependency.supplier></UML:Abstraction>';
            }
        }
        return 
$str;
    }

    public function 
getProperty(PHP_UML_Metamodel_Property $property)
    {
        
$str '<UML:Attribute xmi.id="'.$property->id.'"'.
            
' name="'.$property->name.'" '.
            
' visibility="'.$property->visibility.'" ';

        if (!
$property->isInstantiable) {
            
$str .= ' isStatic="true" ownerScope="classifier"';
        } else {
            
$str .= ' ownerScope="instance"';
        }

        if (
$property->isReadOnly)
            
$str .= ' changeability="frozen" isReadOnly="true" ';

        
$str .= '>';
        
$str .= self::getStructuralFeatureType($property);

        if (isset(
$property->description))
            
$str .= $this->getComment($property->description);
        
        
$str .= '</UML:Attribute>';
        return 
$str;
    }
    
    public function 
getOperation(PHP_UML_Metamodel_Operation $operation)
    {
        
$str '<UML:Operation xmi.id="'.$operation->id.'"'.
            
' name="'.$operation->name.'"'.
            
' visibility="'.$operation->visibility.'"';
        if (!
$operation->isInstantiable)
            
$str .= ' isStatic="true"';
        if (
$operation->isAbstract)
            
$str .= ' isAbstract="true"';

        
$str .= ' isQuery="false" concurrency="sequential">'.
            
'<UML:BehavioralFeature.parameter>';

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

        
$str .= '</UML:BehavioralFeature.parameter>';

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

        
$str .= '</UML:Operation>';

        return 
$str;
    }

    public function 
getParameter(PHP_UML_Metamodel_Parameter $parameter)
    {
        return 
'<UML:Parameter xmi.id="'.$parameter->id.'" '.
            
' name="'.$parameter->name.'"'.
            
' kind="'.$parameter->direction.'">'.
            
$this->getParameterType($parameter).
            
'</UML:Parameter>';
    }
 
    public function 
getParameterType(PHP_UML_Metamodel_TypedElement $parameter)
    {
        
$str '';
        
$id  self::getUID();
        
// Exception to MOF : a PHP class can have the name of a datatype

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

        if (
$parameter->default!='') {
            
$str .= '<UML:Parameter.defaultValue>'.
                
'<UML:Expression xmi.id="'.$id.'"'.
                
' body="'.htmlspecialchars($parameter->defaultENT_QUOTES).'" />'.
                
'</UML:Parameter.defaultValue>';
        }
        return 
$str;
    }

    public function 
getArtifact(PHP_UML_Metamodel_Artifact $file, &$mf = array())
    {
        return 
'<UML:Artifact '.
            
' xmi.id="'.$file->id.'"'.
            
' name="'.basename(htmlspecialchars($file->name)).'">'.
            
'<UML:ModelElement.stereotype>'.
            
'<UML:Stereotype xmi.idref="'.self::getUID('stereotype_'.self::PHP_FILE).'"/>'.
            
'</UML:ModelElement.stereotype>'.
            
'</UML:Artifact>';
    }

    public function 
getComponentOpen(PHP_UML_Metamodel_Package $package, array $provided, array $required)
    {
        return 
self::getSubsystemOpen($package);
    }

    public function 
getComponentClose()
    {
        return 
self::getSubsystemClose();
    }

    public function 
getComment(PHP_UML_Metamodel_Stereotype $s$annotatedElement='')
    {
        
$tag PHP_UML_Metamodel_Helper::getStereotypeTag($s'description');
        if(!
is_null($tag))
            return 
$this->getTaggedValue($tag->valueself::getUID('Tag_documentation'));
        else
            return 
'';
    }
    
    public function 
getTaggedValue($value$tag)
    {
        return 
'<UML:ModelElement.taggedValue>'.
            
'<UML:TaggedValue xmi.id="'.self::getUID().'" visibility="public">'.
            
'<UML:TaggedValue.dataValue>'.htmlspecialchars($value).'</UML:TaggedValue.dataValue>'.
            
'<UML:TaggedValue.type>'.
                
'<UML:TagDefinition xmi.idref="'.$tag.'"/>'.
            
'</UML:TaggedValue.type>'.
            
'</UML:TaggedValue>'.
            
'</UML:ModelElement.taggedValue>';
    }
    
    public function 
getTagDefinition($name)
    {
        return 
'<UML:TagDefinition xmi.id="'.self::getUID('Tag_'.$name).'" '.
            
'name="'.$name.'" isSpecification="false" tagType="string">
            <UML:TagDefinition.multiplicity>
            <UML:Multiplicity xmi.id="'
.self::getUID('TagMultiplicity_'.$name).'">
              <UML:Multiplicity.range>
                <UML:MultiplicityRange xmi.id="'
.self::getUID('TagMultiRange_'.$name).'"
                  lower="0" upper="1"/>
              </UML:Multiplicity.range>
            </UML:Multiplicity>
          </UML:TagDefinition.multiplicity>
        </UML:TagDefinition>'
;
    }
    
    public function 
getProfile()
    {
    }
    
    
/**
     * Get the structural type of an element (XMI 1.x)
     *
     * @param PHP_UML_TypedElement $element Element
     * 
     * @return string XMI code
     */
    
static protected function getStructuralFeatureType(PHP_UML_Metamodel_TypedElement $element)
    {
        
$str '';
        
$id  self::getUID();
        if (!
is_object($element->type))
            return 
'';

        if (
get_class($element->type)=='PHP_UML_Metamodel_Class') {

            
$str .= '<UML:StructuralFeature.type>'.
                
'<UML:DataType xmi.idref="'.$element->type->id.
                
'"/></UML:StructuralFeature.type>';

        } elseif (
get_class($element->type)=='PHP_UML_Metamodel_Datatype') {

            
$str .= '<UML:StructuralFeature.type>'.
                
'<UML:DataType xmi.idref="'.$element->type->id.
                
'"/></UML:StructuralFeature.type>';
        }

        if (
$element->default!='') {
            
$str .= '<UML:Attribute.initialValue>'.
                
'<UML:Expression xmi.id="'.$id.'"'.
                
' body="'.htmlspecialchars($element->defaultENT_QUOTES).'" />'.
                
'</UML:Attribute.initialValue>';
        }
        return 
$str;
    }
}
?>

:: 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.0312 ]--