Changeset 14452

Show
Ignore:
Timestamp:
01/17/08 10:31:18 (11 months ago)
Author:
bergie
Message:

Move reflectors to MidCOM helpers so they can be used also outside Asgard

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midcom/midcom.core/midcom/baseclasses/core/dbobject.php

    r14431 r14452  
    11601160 
    11611161    /** 
     1162     * Internal helper function, called upon successful delete. It will delete all children of an object as well. 
     1163     * 
     1164     * @param MidgardObject &$object A class inherited from one of the MgdSchema driven Midgard classes supporting the above callbacks. 
     1165     * @return boolean Indicating Success. 
     1166     * @access private 
     1167     */ 
     1168    function _delete_children(&$object) 
     1169    { 
     1170    } 
     1171 
     1172    /** 
    11621173     * Internal helper function, called upon successful delete. It will unconditionally 
    11631174     * drop all privileges assigned to the given object. 
  • trunk/midcom/midcom.core/midcom/helper/reflector.php

    r14424 r14452  
    11<?php 
    22/** 
    3  * @package midgard.admin.asgard 
     3 * @package midcom 
    44 * @author The Midgard Project, http://www.midgard-project.org 
    55 * @version $Id: acl_editor.php 5538 2007-03-20 13:22:41Z rambo $ 
     
    1010/** 
    1111 * The Grand Unified Reflector 
    12  * @package midgard.admin.asgard 
     12 * @package midcom 
    1313 */ 
    14 class midgard_admin_asgard_reflector extends midcom_baseclasses_components_purecode 
     14class midcom_helper_reflector extends midcom_baseclasses_components_purecode 
    1515{ 
    1616 
     
    2626     * @param string/midgard_object $src classname or object 
    2727     */ 
    28     function midgard_admin_asgard_reflector($src) 
     28    function midcom_helper_reflector($src) 
    2929    { 
    3030        $this->_component = 'midgard.admin.asgard'; 
     
    4141 
    4242        // Resolve root class name 
    43         $this->_mgdschema_class = midgard_admin_asgard_reflector::resolve_baseclass($this->_original_class); 
     43        $this->_mgdschema_class = midcom_helper_reflector::resolve_baseclass($this->_original_class); 
    4444 
    4545        // Could not resolve root class name 
     
    9191            $classname = $src; 
    9292        } 
    93         if (!isset($GLOBALS['midgard_admin_asgard_reflector_singletons'][$classname])) 
    94         { 
    95             $GLOBALS['midgard_admin_asgard_reflector_singletons'][$classname] =  new midgard_admin_asgard_reflector($src); 
    96         } 
    97         return $GLOBALS['midgard_admin_asgard_reflector_singletons'][$classname]; 
     93        if (!isset($GLOBALS['midcom_helper_reflector_singletons'][$classname])) 
     94        { 
     95            $GLOBALS['midcom_helper_reflector_singletons'][$classname] =  new midcom_helper_reflector($src); 
     96        } 
     97        return $GLOBALS['midcom_helper_reflector_singletons'][$classname]; 
    9898    } 
    9999 
     
    105105    { 
    106106        // Use cache if we have it 
    107         if (!isset($GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'])) 
    108         { 
    109             $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'] = array(); 
    110         } 
    111         if (isset($GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class])) 
    112         { 
    113             return $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class]; 
     107        if (!isset($GLOBALS['midcom_helper_reflector_get_component_l10n_cache'])) 
     108        { 
     109            $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'] = array(); 
     110        } 
     111        if (isset($GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class])) 
     112        { 
     113            return $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class]; 
    114114        } 
    115115        debug_push_class(__CLASS__, __FUNCTION__); 
     
    121121            debug_add("Could not get MidCOM DBA classname for type {$this->_mgdschema_class}, using our own l10n", MIDCOM_LOG_INFO); 
    122122            debug_pop(); 
    123             $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
     123            $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
    124124            return $this->_l10n; 
    125125        } 
     
    130130            debug_add("Could not resolve component for DBA class {$midcom_dba_classname}, using our own l10n", MIDCOM_LOG_INFO); 
    131131            debug_pop(); 
    132             $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
     132            $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
    133133            return $this->_l10n; 
    134134        } 
     
    142142            debug_add("Got l10n handler for component {$component}, returning that"); 
    143143            debug_pop(); 
    144             $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class] =& $component_l10n; 
     144            $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class] =& $component_l10n; 
    145145            return $component_l10n; 
    146146        } 
     
    149149        debug_add("Everything else failed, using our own l10n for type {$this->_mgdschema_class}", MIDCOM_LOG_WARN); 
    150150        debug_pop(); 
    151         $GLOBALS['midgard_admin_asgard_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
     151        $GLOBALS['midcom_helper_reflector_get_component_l10n_cache'][$this->_mgdschema_class] = $this->_l10n; 
    152152        return $this->_l10n; 
    153153    } 
     
    747747    function is_same_class($class_one, $class_two) 
    748748    { 
    749         $one = midgard_admin_asgard_reflector::resolve_baseclass($class_one); 
    750         $two = midgard_admin_asgard_reflector::resolve_baseclass($class_two); 
     749        $one = midcom_helper_reflector::resolve_baseclass($class_one); 
     750        $two = midcom_helper_reflector::resolve_baseclass($class_two); 
    751751        if ($one == $two) 
    752752        { 
    753753            return true; 
    754754        } 
    755         if (midgard_admin_asgard_reflector::class_rewrite($one) == $two) 
     755        if (midcom_helper_reflector::class_rewrite($one) == $two) 
    756756        { 
    757757            return true; 
    758758        } 
    759         if ($one == midgard_admin_asgard_reflector::class_rewrite($two)) 
     759        if ($one == midcom_helper_reflector::class_rewrite($two)) 
    760760        { 
    761761            return true; 
     
    786786/** 
    787787 * I hope we don't need these workarounds but in case we do, keep them handy 
    788 function midgard_admin_asgard_reflector_get_property_parent(&$src) 
     788function midcom_helper_reflector_get_property_parent(&$src) 
    789789{ 
    790790    return midgard_object_class::get_property_parent($src); 
    791791} 
    792792 
    793 function midgard_admin_asgard_reflector_get_property_up(&$src) 
     793function midcom_helper_reflector_get_property_up(&$src) 
    794794{ 
    795795    return midgard_object_class::get_property_up($src); 
  • trunk/midcom/midcom.core/midcom/helper/reflector_tree.php

    r14390 r14452  
    11<?php 
    22/** 
    3  * @package midgard.admin.asgard 
     3 * @package midcom 
    44 * @author The Midgard Project, http://www.midgard-project.org 
    55 * @version $Id: acl_editor.php 5538 2007-03-20 13:22:41Z rambo $ 
     
    99 
    1010/** @ ignore */ 
    11 if (!class_exists('midgard_admin_asgard_reflector')) 
     11if (!class_exists('midcom_helper_reflector')) 
    1212{ 
    1313    require_once('reflector.php'); 
     
    1616/** 
    1717 * The Grand Unified Reflector, Tree information 
    18  * @package midgard.admin.asgard 
     18 * @package midcom 
    1919 */ 
    20 class midgard_admin_asgard_reflector_tree extends midgard_admin_asgard_reflector 
     20class midcom_helper_reflector_tree extends midcom_helper_reflector 
    2121{ 
    2222 
    23     function midgard_admin_asgard_reflector_tree($src) 
    24     { 
    25         parent::midgard_admin_asgard_reflector($src); 
     23    function midcom_helper_reflector_tree($src) 
     24    { 
     25        parent::midcom_helper_reflector($src); 
    2626    } 
    2727 
     
    3636            $classname = $src; 
    3737        } 
    38         if (!isset($GLOBALS['midgard_admin_asgard_reflector_tree_singletons'][$classname])) 
    39         { 
    40             $GLOBALS['midgard_admin_asgard_reflector_tree_singletons'][$classname] =  new midgard_admin_asgard_reflector_tree($src); 
    41         } 
    42         return $GLOBALS['midgard_admin_asgard_reflector_tree_singletons'][$classname]; 
     38        if (!isset($GLOBALS['midcom_helper_reflector_tree_singletons'][$classname])) 
     39        { 
     40            $GLOBALS['midcom_helper_reflector_tree_singletons'][$classname] =  new midcom_helper_reflector_tree($src); 
     41        } 
     42        return $GLOBALS['midcom_helper_reflector_tree_singletons'][$classname]; 
    4343    } 
    4444 
     
    5252    { 
    5353        $schema_type =& $this->_mgdschema_class; 
    54         $root_classes = midgard_admin_asgard_reflector_tree::get_root_classes(); 
     54        $root_classes = midcom_helper_reflector_tree::get_root_classes(); 
    5555        if (!in_array($schema_type, $root_classes)) 
    5656        { 
     
    264264            return false; 
    265265        } 
    266         $resolver = new midgard_admin_asgard_reflector_tree($object); 
     266        $resolver = new midcom_helper_reflector_tree($object); 
    267267        if (!$resolver) 
    268268        { 
    269269            debug_push_class(__CLASS__, __FUNCTION__); 
    270             debug_add("Could not instantiate midgard_admin_asgard_reflector_tree from \$object", MIDCOM_LOG_ERROR); 
     270            debug_add("Could not instantiate midcom_helper_reflector_tree from \$object", MIDCOM_LOG_ERROR); 
    271271            debug_pop(); 
    272272            return false; 
     
    319319 
    320320        // Reflection magick 
    321         $resolver = new midgard_admin_asgard_reflector_tree($object); 
     321        $resolver = new midcom_helper_reflector_tree($object); 
    322322        $ref =& $resolver->_mgd_reflector; 
    323323        $schema_type =& $resolver->_mgdschema_class; 
     
    426426            return false; 
    427427        } 
    428         $resolver = new midgard_admin_asgard_reflector_tree($object); 
     428        $resolver = new midcom_helper_reflector_tree($object); 
    429429        if (!$resolver) 
    430430        { 
    431431            debug_push_class(__CLASS__, __FUNCTION__); 
    432             debug_add("Could not instantiate midgard_admin_asgard_reflector_tree from \$object", MIDCOM_LOG_ERROR); 
     432            debug_add("Could not instantiate midcom_helper_reflector_tree from \$object", MIDCOM_LOG_ERROR); 
    433433            debug_pop(); 
    434434            return false; 
     
    702702        $link_class = $ref->get_link_name($property); 
    703703        debug_add("got link_class '{$link_class}' for property '{$property}' in type '{$prospect_type}'"); 
    704         if (midgard_admin_asgard_reflector::is_same_class($link_class, $schema_type)) 
     704        if (midcom_helper_reflector::is_same_class($link_class, $schema_type)) 
    705705        { 
    706706            debug_pop(); 
     
    722722        if (empty($root_classes)) 
    723723        { 
    724             $root_classes = midgard_admin_asgard_reflector_tree::_resolve_root_classes(); 
     724            $root_classes = midcom_helper_reflector_tree::_resolve_root_classes(); 
    725725        } 
    726726        return $root_classes; 
     
    754754 
    755755            // Class extensions mapping 
    756             $schema_type = midgard_admin_asgard_reflector::class_rewrite($schema_type); 
     756            $schema_type = midcom_helper_reflector::class_rewrite($schema_type); 
    757757 
    758758            // Make sure we only add classes once 
  • trunk/midcom/midcom.helper.datamanager2/exec/chooser_handler.php

    r14087 r14452  
    252252        { 
    253253            $linked_type = $reflector->get_link_name($reflector_key); 
    254             // $linked_type_reflector = midgard_admin_asgard_reflector::get($linked_type); 
     254            // $linked_type_reflector = midcom_helper_reflector::get($linked_type); 
    255255            // $type = $reflector->get_midgard_type($reflector_key); 
    256256            // $type_label = midgard_admin_asgard_plugin::get_type_label($linked_type); 
     
    264264            // debug_print_r('$object',$object; 
    265265         
    266             // $reflector_tree = new midgard_admin_asgard_reflector_tree($object); 
     266            // $reflector_tree = new midcom_helper_reflector_tree($object); 
    267267            // debug_print_r('$reflector_tree',$reflector_tree); 
    268268        } 
  • trunk/midcom/midgard.admin.asgard/config/config.inc

    r14064 r14452  
    125125    'net_nemein_tag', 
    126126    'org_openpsa_query', 
    127     /* Persons as toplevel is mostly harmful as there can be really many entries */ 
     127    /* Persons and groups as toplevel is mostly harmful as there can be really many entries */ 
    128128    'midgard_person', 
    129129    'org_openpsa_person', 
     130    'midgard_group', 
     131    'org_openpsa_organization', 
    130132), 
    131133// Classes that should always be listed as root class (mainly workaround for schema bugs) 
  • trunk/midcom/midgard.admin.asgard/exec/test.php

    r13956 r14452  
    1515echo "</pre>\n"; 
    1616 
    17 $root_types = midgard_admin_asgard_reflector_tree::get_root_classes(); 
    18 echo "<hr/>\nroot_types (from midgard_admin_asgard_reflector_tree::get_root_classes())<pre>\n"; 
     17$root_types = midcom_helper_reflector_tree::get_root_classes(); 
     18echo "<hr/>\nroot_types (from midcom_helper_reflector_tree::get_root_classes())<pre>\n"; 
    1919print_r($root_types); 
    2020echo "</pre>\n"; 
    2121 
    2222$topic = new midcom_db_topic('9615374e7b9411db8a62e709ab0e585a585a'); 
    23 $children = midgard_admin_asgard_reflector_tree::get_child_objects($topic); 
     23$children = midcom_helper_reflector_tree::get_child_objects($topic); 
    2424echo "<hr/>\nchildren of topic {$topic->extra}<pre>\n"; 
    2525print_r($children); 
    2626echo "</pre>\n"; 
    2727 
    28 $parent = midgard_admin_asgard_reflector_tree::get_parent($topic); 
     28$parent = midcom_helper_reflector_tree::get_parent($topic); 
    2929$parent_class = get_class($parent); 
    3030do 
    3131{ 
    3232    echo "got {$parent_class} {$parent->guid} as parent<br>\n"; 
    33     $siblings = midgard_admin_asgard_reflector_tree::get_child_objects($parent); 
     33    $siblings = midcom_helper_reflector_tree::get_child_objects($parent); 
    3434    echo "** and the following as siblings (parents children) <pre>\n"; 
    3535    print_r($siblings); 
    3636    echo "</pre>\n"; 
    37     $parent = midgard_admin_asgard_reflector_tree::get_parent($parent); 
     37    $parent = midcom_helper_reflector_tree::get_parent($parent); 
    3838    $parent_class = get_class($parent); 
    3939} while (!empty($parent)); 
     
    4141$_MIDCOM->componentloader->load('org.openpsa.projects'); 
    4242$type = 'org_openpsa_task'; 
    43 $ref = midgard_admin_asgard_reflector_tree::get($type); 
     43$ref = midcom_helper_reflector_tree::get($type); 
    4444$label = $ref->get_class_label(); 
    4545echo "Class label for {$type} '{$label}'<br/>\n"; 
     
    5050 
    5151$type = 'midgard_topic'; 
    52 $ref = midgard_admin_asgard_reflector_tree::get($type); 
     52$ref = midcom_helper_reflector_tree::get($type); 
    5353$label = $ref->get_class_label(); 
    5454echo "Class label for {$type} '{$label}'<br/>\n"; 
     
    6262foreach($root_types as $schema_type) 
    6363{ 
    64     $ref = midgard_admin_asgard_reflector_tree::get($schema_type); 
     64    $ref = midcom_helper_reflector_tree::get($schema_type); 
    6565    $count = $ref->count_root_objects(); 
    6666    echo "Found {$count} root objects for type <tt>{$schema_type}</tt><br/>\n"; 
     
    7474foreach ($_MIDGARD['schema']['types'] as $schema_type => $val) 
    7575{ 
    76     $ref = midgard_admin_asgard_reflector::get($schema_type); 
     76    $ref = midcom_helper_reflector::get($schema_type); 
    7777    $label_pro = $ref->get_label_property(); 
    7878    echo "label property for {$schema_type} is {$label_pro}<br>\n";     
  • trunk/midcom/midgard.admin.asgard/handler/object/manage.php

    r14385 r14452  
    299299            { 
    300300                $linked_type = $this->_reflector->get_link_name($key); 
    301                 $linked_type_reflector = midgard_admin_asgard_reflector::get($linked_type); 
     301                $linked_type_reflector = midcom_helper_reflector::get($linked_type); 
    302302                $field_type = $this->_reflector->get_midgard_type($key); 
    303303 
     
    712712    { 
    713713        // Figure out the linking property 
    714         $new_type_reflector = midgard_admin_asgard_reflector::get($new_type); 
     714        $new_type_reflector = midcom_helper_reflector::get($new_type); 
    715715        $link_properties = $new_type_reflector->get_link_properties(); 
    716         $type_to_link_to =  midgard_admin_asgard_reflector::class_rewrite(get_class($this->_object)); 
     716        $type_to_link_to =  midcom_helper_reflector::class_rewrite(get_class($this->_object)); 
    717717        foreach ($link_properties as $new_type_property => $link) 
    718718        { 
    719             $linked_type = midgard_admin_asgard_reflector::class_rewrite($link['class']); 
    720  
    721             if (midgard_admin_asgard_reflector::is_same_class( $linked_type, $type_to_link_to)) 
     719            $linked_type = midcom_helper_reflector::class_rewrite($link['class']); 
     720 
     721            if (midcom_helper_reflector::is_same_class( $linked_type, $type_to_link_to)) 
    722722            { 
    723723                $parent_property = $link['target']; 
  • trunk/midcom/midgard.admin.asgard/handler/type.php

    r14385 r14452  
    5454    { 
    5555        $this->type = $args[0]; 
    56         $root_types = midgard_admin_asgard_reflector_tree::get_root_classes(); 
     56        $root_types = midcom_helper_reflector_tree::get_root_classes(); 
    5757        /*if (!in_array($this->type, $root_types)) 
    5858        { 
     
    7575                    MIDCOM_TOOLBAR_URL => "__mfa/asgard/object/create/{$this->type}/", 
    7676                    MIDCOM_TOOLBAR_LABEL => sprintf($_MIDCOM->i18n->get_string('create %s', 'midcom'), midgard_admin_asgard_plugin::get_type_label($this->type)), 
    77                     MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/' . midgard_admin_asgard_reflector_tree::get_create_icon($this->type), 
     77                    MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/' . midcom_helper_reflector_tree::get_create_icon($this->type), 
    7878                ) 
    7979            ); 
  • trunk/midcom/midgard.admin.asgard/handler/undelete.php

    r14385 r14452  
    209209    function _undelete($guids, $type) 
    210210    { 
    211         $ref = midgard_admin_asgard_reflector_tree::get($type); 
     211        $ref = midcom_helper_reflector_tree::get($type); 
    212212        foreach ($guids as $guid) 
    213213        { 
     
    276276    function _purge($guids, $type) 
    277277    { 
    278         $ref = midgard_admin_asgard_reflector_tree::get($type); 
     278        $ref = midcom_helper_reflector_tree::get($type); 
    279279        foreach ($guids as $guid) 
    280280        { 
     
    397397 
    398398        $this->type = $args[0]; 
    399         $root_types = midgard_admin_asgard_reflector_tree::get_root_classes(); 
     399        $root_types = midcom_helper_reflector_tree::get_root_classes(); 
    400400 
    401401        $data['view_title'] = midgard_admin_asgard_plugin::get_type_label($this->type); 
     
    413413        } 
    414414        $data['type'] = $this->type; 
    415         $data['reflector'] = midgard_admin_asgard_reflector::get($data['type']); 
     415        $data['reflector'] = midcom_helper_reflector::get($data['type']); 
    416416        $data['label_property'] = $data['reflector']->get_label_property(); 
    417417 
  • trunk/midcom/midgard.admin.asgard/midcom/interfaces.php

    r14174 r14452  
    2626        $this->_autoload_files = array 
    2727        ( 
    28             'reflector.php', 
    29             'reflector_tree.php', 
    3028            'navigation.php', 
    3129            'plugin.php', 
     
    5250        // Enable jQuery 
    5351        $_MIDCOM->enable_jquery(); 
     52         
     53        // Load reflector 
     54        if (!class_exists('midcom_helper_reflector_tree')) 
     55        { 
     56            $filename = MIDCOM_ROOT . "/midcom/helper/reflector_tree.php"; 
     57            require_once($filename); 
     58        } 
    5459 
    5560        return true; 
  • trunk/midcom/midgard.admin.asgard/navigation.php

    r14084 r14452  
    5353        $this->_request_data =& $request_data; 
    5454 
    55         $this->root_types = midgard_admin_asgard_reflector_tree::get_root_classes(); 
     55        $this->root_types = midcom_helper_reflector_tree::get_root_classes(); 
    5656 
    5757        if (array_key_exists('current_type', $this->_request_data)) 
     
    112112        if (!isset($this->_reflectors[$classname])) 
    113113        { 
    114             $this->_reflectors[$classname] = midgard_admin_asgard_reflector_tree::get($object); 
     114            $this->_reflectors[$classname] = midcom_helper_reflector_tree::get($object); 
    115115        } 
    116116        return $this->_reflectors[$classname]; 
     
    147147            return; 
    148148        } 
    149         $siblings = midgard_admin_asgard_reflector_tree::get_child_objects($object); 
     149        $siblings = midcom_helper_reflector_tree::get_child_objects($object); 
    150150        if (   is_array($siblings) 
    151151            && count($siblings) > 0) 
     
    280280            if (   isset($root_object) 
    281281                && (is_a($root_object, $root_type) 
    282                     || midgard_admin_asgard_reflector::is_same_class($root_type,$root_object->__midcom_class_name__)) 
     282                    || midcom_helper_reflector::is_same_class($root_type,$root_object->__midcom_class_name__)) 
    283283                || in_array($root_type, $this->expanded_root_types)) 
    284284            { 
  • trunk/midcom/midgard.admin.asgard/plugin.php

    r14174 r14452  
    381381    function get_type_label($type) 
    382382    { 
    383         $ref = midgard_admin_asgard_reflector_tree::get($type); 
     383        $ref = midcom_helper_reflector_tree::get($type); 
    384384        return $ref->get_class_label(); 
    385385    } 
     
    429429        $_MIDCOM->bind_view_to_object($object); 
    430430        $_MIDCOM->set_26_request_metadata($object->metadata->revised, $object->guid); 
    431         $data['object_reflector'] = midgard_admin_asgard_reflector::get($object); 
    432         $data['tree_reflector'] = midgard_admin_asgard_reflector_tree::get($object); 
     431        $data['object_reflector'] = midcom_helper_reflector::get($object); 
     432        $data['tree_reflector'] = midcom_helper_reflector_tree::get($object); 
    433433 
    434434        $data['object'] =& $object; 
     
    711711        { 
    712712            $i++; 
    713             $parent_reflector = midgard_admin_asgard_reflector::get($parent); 
     713            $parent_reflector = midcom_helper_reflector::get($parent); 
    714714            $parent_label = $parent_reflector->get_object_label($parent); 
    715715            $breadcrumb[] = array