You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/05/01 03:47:37 UTC
[11/38] git commit: [flex-falcon] [refs/heads/develop] - allow
alternate params since sometimes we can't share a common base class when
wrapping classes
allow alternate params since sometimes we can't share a common base class when wrapping classes
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/af7cd26c
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/af7cd26c
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/af7cd26c
Branch: refs/heads/develop
Commit: af7cd26c61c7d08c6a098e164013dbe8c1d9b0b9
Parents: 72dd8a2
Author: Alex Harui <ah...@apache.org>
Authored: Fri Feb 10 11:19:09 2017 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Feb 10 11:19:09 2017 -0800
----------------------------------------------------------------------
.../constants/IMetaAttributeConstants.java | 1 +
.../compiler/internal/projects/FlexProject.java | 30 ++++++++++++++++++++
2 files changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/af7cd26c/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
index b30948c..6db2842 100644
--- a/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
@@ -200,6 +200,7 @@ public interface IMetaAttributeConstants
static final String ATTRIBUTE_SWFOVERRIDE = "SWFOverride";
static final String NAME_SWFOVERRIDE_RETURNS = "returns";
static final String NAME_SWFOVERRIDE_PARAMS = "params";
+ static final String NAME_SWFOVERRIDE_ALTPARAMS = "altparams";
// [VisualContentHolder]
static final String ATTRIBUTE_VISUALCONTENTHOLDER = "VisualContentHolder";
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/af7cd26c/compiler/src/main/java/org/apache/flex/compiler/internal/projects/FlexProject.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/internal/projects/FlexProject.java b/compiler/src/main/java/org/apache/flex/compiler/internal/projects/FlexProject.java
index 9721d2a..5944ec0 100644
--- a/compiler/src/main/java/org/apache/flex/compiler/internal/projects/FlexProject.java
+++ b/compiler/src/main/java/org/apache/flex/compiler/internal/projects/FlexProject.java
@@ -2284,6 +2284,36 @@ public class FlexProject extends ASProject implements IFlexProject
}
}
}
+ IMetaTag[] metas = func.getAllMetaTags();
+ for (IMetaTag meta : metas)
+ {
+ if (meta.getTagName().equals(IMetaAttributeConstants.ATTRIBUTE_SWFOVERRIDE))
+ {
+ IMetaTagAttribute attr = meta.getAttribute(IMetaAttributeConstants.NAME_SWFOVERRIDE_ALTPARAMS);
+ if (attr != null)
+ {
+ // format is expectedQName:allowedQName,expectedQName:allowedQName.
+ // we don't know which parameter it is so we're assuming for now that any mapping
+ // applies to all occurences of that type in the parameter list
+ String paramList = attr.getValue();
+ String[] paramMap;
+ if (paramList.contains(","))
+ paramMap = paramList.split(",");
+ else
+ {
+ paramMap = new String[1];
+ paramMap[0] = paramList;
+ }
+ for (String item : paramMap)
+ {
+ String[] parts = item.split(":");
+ if (expectedDefinition.getQualifiedName().equals(parts[0]))
+ if (((ITypeDefinition)actualDefinition).isInstanceOf(parts[1], this))
+ return true;
+ }
+ }
+ }
+ }
return false;
}