This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 3ed483a  Adding some hierarchy support into reflection details, 
permits finding 'owner' from detail instances
3ed483a is described below

commit 3ed483aa959dd6c0220fd4df60511342bff29738
Author: greg-dove <[email protected]>
AuthorDate: Mon Sep 28 16:45:24 2020 +1300

    Adding some hierarchy support into reflection details, permits finding 
'owner' from detail instances
---
 .../apache/royale/reflection/DefinitionWithMetaData.as    |  4 ++--
 .../org/apache/royale/reflection/MetaDataArgDefinition.as | 13 +++++++++++--
 .../org/apache/royale/reflection/MetaDataDefinition.as    | 15 ++++++++++++---
 .../org/apache/royale/reflection/MethodDefinition.as      |  4 ++--
 .../org/apache/royale/reflection/ParameterDefinition.as   | 12 +++++++++++-
 5 files changed, 38 insertions(+), 10 deletions(-)

diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/DefinitionWithMetaData.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/DefinitionWithMetaData.as
index 92f43b1..b85d21f 100755
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/DefinitionWithMetaData.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/DefinitionWithMetaData.as
@@ -56,7 +56,7 @@ package org.apache.royale.reflection
                 {
                     var item:XML = data[i] as XML;
                     var metaName:String = item.@name;
-                    results[i] = new MetaDataDefinition(metaName, item);
+                    results[i] = new MetaDataDefinition(metaName, item, this);
                 }
             }
             COMPILE::JS
@@ -82,7 +82,7 @@ package org.apache.royale.reflection
                         var l:int = metadatas.length;
                         for (;i<l;i++) {
                             var mdDef:Object = metadatas[i];
-                            results[i] = new MetaDataDefinition(mdDef.name, 
mdDef);
+                            results[i] = new MetaDataDefinition(mdDef.name, 
mdDef, this);
                         }
                     }
                 }
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataArgDefinition.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataArgDefinition.as
index 2341906..fb38c41 100755
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataArgDefinition.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataArgDefinition.as
@@ -29,12 +29,21 @@ package org.apache.royale.reflection
      */
     public class MetaDataArgDefinition extends DefinitionBase
        {
-        public function MetaDataArgDefinition(name:String, value:String)
+        public function MetaDataArgDefinition(name:String, value:String, 
owner:MetaDataDefinition)
         {
             super(name);
             _value = value;
+            _owner = owner;
         }
-        
+
+        private var _owner:MetaDataDefinition;
+        /**
+         * reference to the MetaDataDefinition owner of this 
MetaDataArgDefinition
+         */
+        public function get owner():MetaDataDefinition{
+            return _owner;
+        }
+
         private var _value:String;
         /**
          * the 'key' value of a metadata argument
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataDefinition.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataDefinition.as
index a36abae..5a29be0 100755
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataDefinition.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MetaDataDefinition.as
@@ -29,9 +29,18 @@ package org.apache.royale.reflection
      */
     public class MetaDataDefinition extends DefinitionBase
        {
-        public function MetaDataDefinition(name:String, rawData:Object)
+        public function MetaDataDefinition(name:String, rawData:Object, 
owner:DefinitionWithMetaData)
         {
             super(name, rawData);
+            _owner = owner;
+        }
+
+        private var _owner:DefinitionWithMetaData;
+        /**
+         * reference to the owner of this MetaDataDefinition (either a class 
member MemberDefinitionBase, or a class TypeDefinition)
+         */
+        public function get owner():DefinitionWithMetaData{
+            return _owner;
         }
 
         private var _args:Array;
@@ -56,7 +65,7 @@ package org.apache.royale.reflection
                     var item:XML = data[i] as XML;
                     var key:String = item.@key;
                     var value:String = item.@value;
-                    results.push(new MetaDataArgDefinition(key, value));
+                    results.push(new MetaDataArgDefinition(key, value, this));
                 }
             }
             COMPILE::JS
@@ -70,7 +79,7 @@ package org.apache.royale.reflection
                         args = args.slice();
                         while(args.length) {
                             var argDef:Object = args.shift();
-                            results.push(new MetaDataArgDefinition(argDef.key, 
argDef.value));
+                            results.push(new MetaDataArgDefinition(argDef.key, 
argDef.value, this));
                         }
                     }
                 }
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MethodDefinition.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MethodDefinition.as
index 237a871..6b40f98 100755
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MethodDefinition.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/MethodDefinition.as
@@ -72,7 +72,7 @@ package org.apache.royale.reflection
                 for (var i:int = 0; i < n; i++)
                 {
                     var item:XML = data[i] as XML;
-                    results.push(new 
ParameterDefinition(uint(item.@index),item));
+                    results.push(new 
ParameterDefinition(uint(item.@index),item, this));
                 }
             }
             COMPILE::JS {
@@ -83,7 +83,7 @@ package org.apache.royale.reflection
                     {
                         var index:uint = (i*.5) + 1;
                         var item:Object = {type:data[i], optional:data[i+1], 
index:index};
-                        results.push(new ParameterDefinition(index,item));
+                        results.push(new ParameterDefinition(index,item, 
this));
                     }
                 }
             }
diff --git 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/ParameterDefinition.as
 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/ParameterDefinition.as
index 1a88e1c..8ca90d3 100644
--- 
a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/ParameterDefinition.as
+++ 
b/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/ParameterDefinition.as
@@ -30,11 +30,21 @@ package org.apache.royale.reflection
     public class ParameterDefinition extends DefinitionBase
        {
 
-        public function ParameterDefinition( index:uint, rawData:Object)
+        public function ParameterDefinition( index:uint, rawData:Object, 
owner:MethodDefinition)
         {
             super("parameter "+index, rawData);
+                       _owner = owner;
         }
 
+
+               private var _owner:MethodDefinition;
+               /**
+                * reference to the MethodDefinition owner of this 
ParameterDefinition
+                */
+               public function get owner():MethodDefinition{
+                       return _owner;
+               }
+
                /**
                 * The type of this parameter
                 */

Reply via email to