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
*/