externc: hasTemplate() and containsTemplate() in FunctionUtils updated to grab 
templates from the parent class too


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/2b5fb56f
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/2b5fb56f
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/2b5fb56f

Branch: refs/heads/develop
Commit: 2b5fb56f147f927c638e3643d954ce4586a35b79
Parents: 36b65ef
Author: Josh Tynjala <joshtynj...@apache.org>
Authored: Tue Apr 19 16:29:57 2016 -0700
Committer: Josh Tynjala <joshtynj...@apache.org>
Committed: Tue Apr 19 16:29:57 2016 -0700

----------------------------------------------------------------------
 .../codegen/externals/utils/FunctionUtils.java  | 38 +++++++++++++++-----
 1 file changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/2b5fb56f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
index f384689..5a9b658 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
@@ -21,6 +21,7 @@ package 
org.apache.flex.compiler.internal.codegen.externals.utils;
 
 import 
org.apache.flex.compiler.internal.codegen.externals.reference.BaseReference;
 import 
org.apache.flex.compiler.internal.codegen.externals.reference.ClassReference;
+import 
org.apache.flex.compiler.internal.codegen.externals.reference.MemberReference;
 import 
org.apache.flex.compiler.internal.codegen.externals.reference.ReferenceModel;
 
 import com.google.common.base.Strings;
@@ -214,19 +215,40 @@ public class FunctionUtils
 
     public static boolean hasTemplate(BaseReference reference)
     {
+        if(reference instanceof MemberReference)
+        {
+            MemberReference memberRef = (MemberReference) reference;
+            
if(memberRef.getClassReference().getComment().getTemplateTypeNames().size() > 0)
+            {
+                return true;
+            }
+        }
         return reference.getComment().getTemplateTypeNames().size() > 0;
     }
     
     public static boolean containsTemplate(BaseReference reference, String 
name)
     {
-       for (String template : reference.getComment().getTemplateTypeNames())
-       {
-               if (name.contains("<" + template + ">"))
-                       return true;
-               if (name.equals(template))
-                       return true;
-       }
-       return false;
+        if(reference instanceof MemberReference)
+        {
+            MemberReference memberRef = (MemberReference) reference;
+            
if(commentContainsTemplate(memberRef.getClassReference().getComment(), name))
+            {
+                return true;
+            }
+        }
+        return commentContainsTemplate(reference.getComment(), name);
+    }
+    
+    private static boolean commentContainsTemplate(JSDocInfo comment, String 
name)
+    {
+        for (String template : comment.getTemplateTypeNames())
+        {
+            if (name.contains("<" + template + ">"))
+                return true;
+            if (name.equals(template))
+                return true;
+        }
+        return false;
     }
 
 }

Reply via email to