@@ -11,49 +11,12 @@ abstract class Api_Abstract extends C\Addon\Api_Abstract
1111 const WILDCARD = '* ' ;
1212 const SEPARATOR_PATH = ', ' ;
1313
14- /**
15- * @var string
16- */
17- protected static $ _parentAdapter = __NAMESPACE__ .'\Main ' ;
18-
19- /**
20- * @var Addon\Dcim\Main
21- */
22- protected static $ _DCIM = null ; // Global DCIM (enabled)
23-
24- /**
25- * @var Addon\Dcim\Main[]
26- */
27- protected static $ _aDCIM = array (); // a = all/array/available DCIM
28-
29- /**
30- * @var Addon\Dcim\Main
31- */
32- protected $ _DCIM_ = null ; // Local DCIM (for this instance)
33-
34-
35- public function __construct ($ objectId = null )
36- {
37- parent ::__construct ($ objectId );
38- $ this ->_DCIM_ = &$ this ->_ownerAdapter ; // /!\ A executer avant _setObjectId
39- $ this ->_setObjectId ($ objectId ); // @todo temp
40- }
4114
4215 public static function objectIdIsValid ($ objectId )
4316 {
4417 return C \Tools::is ('int&&>0 ' , $ objectId );
4518 }
4619
47- public function hasObjectId ()
48- {
49- return ($ this ->_objectId !== null );
50- }
51-
52- public function getObjectId ()
53- {
54- return $ this ->_objectId ;
55- }
56-
5720 public function objectExists ()
5821 {
5922 if ($ this ->_objectExists !== null ) {
@@ -110,8 +73,8 @@ public function getLabel()
11073 public function getTemplateName ()
11174 {
11275 if ($ this ->objectExists ()) {
113- $ result = $ this ->_DCIM ->resolvToTemplate (static ::OBJECT_TYPE , $ this ->getObjectId ());
114- return ($ this ->_DCIM ->isValidReturn ($ result )) ? ($ result ) : (false );
76+ $ result = $ this ->_adapter ->resolvToTemplate (static ::OBJECT_TYPE , $ this ->getObjectId ());
77+ return ($ this ->_adapter ->isValidReturn ($ result )) ? ($ result ) : (false );
11578 }
11679 else {
11780 return false ;
@@ -125,13 +88,13 @@ public function getTemplateName()
12588 */
12689 public function getUserAttrField ($ category , $ attribute = null )
12790 {
128- if (!C \Tools::is ('string&&!empty ' , $ attribute )) {
91+ if (!C \Tools::is ('human ' , $ attribute )) {
12992 $ attribute = $ category ;
13093 $ category = 'default ' ;
13194 $ noCateg = true ;
13295 }
13396
134- $ attrField = $ this ->_DCIM ->getUserAttrName ($ category , $ attribute );
97+ $ attrField = $ this ->_adapter ->getUserAttrName ($ category , $ attribute );
13598 return ($ attrField === false && isset ($ noCateg )) ? ($ attribute ) : ($ attrField );
13699 }
137100
@@ -147,8 +110,8 @@ public function getUserAttribute($category, $attribute = null)
147110 $ attrField = $ this ->getUserAttrField ($ category , $ attribute );
148111
149112 if ($ attrField !== false ) {
150- $ result = $ this ->_DCIM ->getUserAttrById (static ::OBJECT_TYPE , $ this ->getObjectId (), $ attrField );
151- return ($ this ->_DCIM ->isValidReturn ($ result )) ? ($ result ) : (false );
113+ $ result = $ this ->_adapter ->getUserAttrById (static ::OBJECT_TYPE , $ this ->getObjectId (), $ attrField );
114+ return ($ this ->_adapter ->isValidReturn ($ result )) ? ($ result ) : (false );
152115 }
153116 }
154117
@@ -161,39 +124,23 @@ public function __get($name)
161124 {
162125 case 'dcim ' :
163126 case '_DCIM ' : {
164- return self ::$ _DCIM ;
165- }
166- case 'id ' : {
167- return $ this ->getObjectId ();
168- }
169- case 'label ' : {
170- return $ this ->getObjectLabel ();
127+ return $ this ->_adapter ;
171128 }
172129 case 'templateName ' : {
173130 return $ this ->getTemplateName ();
174131 }
175132 default : {
176- throw new Exception ( " This attribute ' " . $ name. " ' does not exist " , E_USER_ERROR );
133+ return parent :: __get ( $ name );
177134 }
178135 }
179136 }
180137
181- public function __call ($ method , $ parameters = null )
138+ /**
139+ * @return Addon\Dcim\Orchestrator
140+ */
141+ protected static function _getOrchestrator ()
182142 {
183- if (substr ($ method , 0 , 3 ) === 'get ' )
184- {
185- $ name = substr ($ method , 3 );
186- $ name = mb_strtolower ($ name );
187-
188- switch ($ name )
189- {
190- case 'label ' : {
191- return $ this ->getObjectLabel ();
192- }
193- }
194- }
195-
196- throw new Exception ("Method ' " .$ method ."' does not exist " , E_USER_ERROR );
143+ return Orchestrator::getInstance ();
197144 }
198145
199146 /**
@@ -239,7 +186,7 @@ protected static function _getObjectsFromReport($reportName, array $args = null,
239186 }
240187
241188 // @todo use _getReportName
242- $ results = self :: $ _DCIM ->getReportResults (static ::REPORT_NAMES [$ reportName ], $ args );
189+ $ results = static :: _getAdapter () ->getReportResults (static ::REPORT_NAMES [$ reportName ], $ args );
243190
244191 if (C \Tools::is ('array&&count>0 ' , $ results ))
245192 {
@@ -253,55 +200,4 @@ protected static function _getObjectsFromReport($reportName, array $args = null,
253200 throw new Exception ("Unable to retrieve objects from report ' " .$ reportName ."' " , E_USER_ERROR );
254201 }
255202 }
256-
257- /**
258- * @param Addon\Dcim\Main|Addon\Dcim\Main[] $DCIM
259- * @return bool
260- */
261- public static function setDcim ($ DCIM )
262- {
263- return self ::setAdapter ($ DCIM );
264- }
265-
266- /**
267- * @param Addon\Dcim\Main|Addon\Dcim\Main[] $adapter
268- * @throw Core\Exception
269- * @return bool
270- */
271- public static function setAdapter ($ adapter )
272- {
273- $ status = parent ::setAdapter ($ adapter );
274-
275- if ($ status ) {
276- self ::$ _DCIM = &self ::$ _adapter ;
277- self ::$ _aDCIM = &self ::$ _allAdapters ;
278- }
279-
280- return $ status ;
281- }
282-
283- /**
284- * @return null|Addon\Dcim\Main|Addon\Dcim\Main[]
285- */
286- public static function getDcim ()
287- {
288- return self ::getAdapter ();
289- }
290-
291- /**
292- * @param string $key
293- * @return bool
294- */
295- public static function enableDcim ($ key )
296- {
297- return self ::enableAdapter ($ key );
298- }
299-
300- /**
301- * @return null|Addon\Dcim\Main
302- */
303- public static function getDcimEnabled ()
304- {
305- return self ::getAdapterEnabled ();
306- }
307203 }
0 commit comments