You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ms...@apache.org on 2015/06/14 17:14:38 UTC
[1/2] git commit: [flex-falcon] [refs/heads/develop] - Added indent
field for emitting.
Repository: flex-falcon
Updated Branches:
refs/heads/develop b1cd3bb7e -> 28398c9a6
Added indent field for emitting.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/93049a23
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/93049a23
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/93049a23
Branch: refs/heads/develop
Commit: 93049a236a27fd4e1f3ed3e8b972e64985f5cdb1
Parents: b1cd3bb
Author: Michael Schmalle <ms...@apache.org>
Authored: Sun Jun 14 10:57:37 2015 -0400
Committer: Michael Schmalle <ms...@apache.org>
Committed: Sun Jun 14 10:57:37 2015 -0400
----------------------------------------------------------------------
.../externals/reference/BaseReference.java | 28 +++++++++++++-------
.../externals/reference/ClassReference.java | 3 +++
.../externals/reference/ConstantReference.java | 8 +++---
.../externals/reference/FieldReference.java | 20 +++++++-------
.../externals/reference/MethodReference.java | 6 ++---
5 files changed, 41 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/93049a23/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
index 7bc7598..ec9c6ea 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
@@ -43,6 +43,8 @@ public abstract class BaseReference
private ReferenceModel model;
+ protected String indent = " ";
+
public File getCurrentFile()
{
return currentFile;
@@ -117,9 +119,11 @@ public abstract class BaseReference
public void emitComment(StringBuilder sb)
{
- sb.append(" /**\n");
+ sb.append(indent);
+ sb.append("/**\n");
emitCommentBody(sb);
- sb.append(" */\n");
+ sb.append(indent);
+ sb.append(" */\n");
}
protected void emitCommentBody(StringBuilder sb)
@@ -134,9 +138,10 @@ public abstract class BaseReference
String blockDescription = getComment().getBlockDescription();
if (blockDescription != null)
{
- sb.append(" * ");
- sb.append(blockDescription.replaceAll("\\n", "\n * "));
- sb.append("\n *\n");
+ sb.append(indent);
+ sb.append(" * ");
+ sb.append(blockDescription.replaceAll("\\n", "\n" + indent + " * "));
+ sb.append("\n " + indent + "*\n");
}
}
@@ -173,13 +178,15 @@ public abstract class BaseReference
desc.append(" ");
}
- sb.append(" * @" + desc.toString() + "\n");
+ sb.append(indent);
+ sb.append(" * @" + desc.toString() + "\n");
}
}
protected void emitSeeSourceFileName(StringBuilder sb)
{
- sb.append(" * @see " + getNode().getSourceFileName() + "\n");
+ sb.append(indent);
+ sb.append(" * @see " + getNode().getSourceFileName() + "\n");
}
public ExcludedMemeber isExcluded()
@@ -207,7 +214,9 @@ public abstract class BaseReference
paramName);
String description = getComment().getDescriptionForParameter(
paramName);
- sb.append(" * @param ");
+
+ sb.append(indent);
+ sb.append(" * @param ");
sb.append(paramName);
sb.append(" ");
@@ -232,7 +241,8 @@ public abstract class BaseReference
JSTypeExpression returnType = getComment().getReturnType();
if (returnType != null)
{
- sb.append(" * @returns ");
+ sb.append(indent);
+ sb.append(" * @returns ");
sb.append("{");
sb.append(getModel().evaluate(returnType).toAnnotationString());
sb.append("} ");
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/93049a23/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
index 015b234..08d333a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
@@ -117,6 +117,8 @@ public class ClassReference extends BaseReference
{
super(model, node, qualfiedName, node.getJSDocInfo());
+ indent = "";
+
nameNode = null;
functionNode = null;
paramListNode = null;
@@ -404,6 +406,7 @@ public class ClassReference extends BaseReference
sb.append("\n");
emitImports(sb);
+ emitComment(sb);
boolean isInterface = isInterface();
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/93049a23/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
index bc364c6..e69f366 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
@@ -81,12 +81,14 @@ public class ConstantReference extends BaseReference
if (getQualifiedName().equals("undefined"))
{
- sb.append(" public const undefined:* = 0;\n");
+ sb.append(indent);
+ sb.append("public const undefined:* = 0;\n");
}
else
{
- sb.append(" public const " + getQualifiedName() + ":" + type
- + " = " + value + ";\n");
+ sb.append(indent);
+ sb.append("public const " + getQualifiedName() + ":" + type + " = "
+ + value + ";\n");
}
sb.append("}\n"); // package
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/93049a23/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
index ca06781..8965c13 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
@@ -90,7 +90,6 @@ public class FieldReference extends MemberReference
{
emitAccessor(sb);
}
-
}
private void emitAccessor(StringBuilder sb)
@@ -99,11 +98,12 @@ public class FieldReference extends MemberReference
String isPublic = getClassReference().isInterface() ? "" : "public ";
- sb.append(" " + isPublic + staticValue + "function get "
- + getQualifiedName() + "():" + toReturnString() + ";\n");
- sb.append(" " + isPublic + staticValue + "function set "
- + getQualifiedName() + "(" + toPrameterString() + "):void"
- + ";\n");
+ sb.append(indent);
+ sb.append(isPublic + staticValue + "function get " + getQualifiedName()
+ + "():" + toReturnString() + ";\n");
+ sb.append(indent);
+ sb.append(isPublic + staticValue + "function set " + getQualifiedName()
+ + "(" + toPrameterString() + "):void" + ";\n");
}
private void emitVar(StringBuilder sb)
@@ -114,8 +114,9 @@ public class FieldReference extends MemberReference
if (type.indexOf("|") != -1 || type.indexOf("?") != -1)
type = "*";
- sb.append(" public " + staticValue + "var " + getQualifiedName()
- + ":" + type + ";\n");
+ sb.append(indent);
+ sb.append("public " + staticValue + "var " + getQualifiedName() + ":"
+ + type + ";\n");
}
private String toTypeString()
@@ -150,7 +151,8 @@ public class FieldReference extends MemberReference
JSTypeExpression type = getComment().getType();
if (type != null)
{
- sb.append(" * @see JSType - ");
+ sb.append(indent);
+ sb.append(" * @see JSType - ");
sb.append("[");
sb.append(getModel().evaluate(type).toAnnotationString());
sb.append("] ");
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/93049a23/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
index 59727a8..db4b2f7 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
@@ -140,7 +140,7 @@ public class MethodReference extends MemberReference
braces = " { " + returns + " }";
}
- sb.append(" ");
+ sb.append(indent);
sb.append(publicModifier);
sb.append(isOverride);
sb.append(staticValue);
@@ -159,7 +159,8 @@ public class MethodReference extends MemberReference
{
emitComment(sb);
- sb.append(" native public function ");
+ sb.append(indent);
+ sb.append("native public function ");
sb.append(getQualifiedName());
sb.append(toPrameterString());
sb.append(";");
@@ -193,5 +194,4 @@ public class MethodReference extends MemberReference
{
emitFunctionCommentBody(sb);
}
-
}
[2/2] git commit: [flex-falcon] [refs/heads/develop] - Code cleanup.
Posted by ms...@apache.org.
Code cleanup.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/28398c9a
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/28398c9a
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/28398c9a
Branch: refs/heads/develop
Commit: 28398c9a6cb19cdc5e7ed4d0e7a3f915771c7021
Parents: 93049a2
Author: Michael Schmalle <ms...@apache.org>
Authored: Sun Jun 14 11:14:28 2015 -0400
Committer: Michael Schmalle <ms...@apache.org>
Committed: Sun Jun 14 11:14:28 2015 -0400
----------------------------------------------------------------------
.../externals/emit/ReferenceEmitter.java | 59 +++-
.../externals/pass/AbstractCompilerPass.java | 1 -
.../externals/pass/CollectTypesPass.java | 4 -
.../externals/pass/NamespaceResolutionPass.java | 10 -
.../externals/pass/ReferenceCompiler.java | 2 -
.../externals/pass/ResolvePackagesPass.java | 2 -
.../externals/reference/BaseReference.java | 20 +-
.../externals/reference/ClassReference.java | 324 +++++++++----------
.../externals/reference/ConstantReference.java | 8 -
9 files changed, 204 insertions(+), 226 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
index d4046cc..047b044 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
@@ -41,72 +41,99 @@ public class ReferenceEmitter
public void emit() throws IOException
{
final File asRoot = model.getConfiguration().getAsRoot();
- asRoot.mkdirs();
+ if (!asRoot.exists())
+ asRoot.mkdirs();
+
+ emitClasses();
+ emitInterfaces();
+ emitTypedefs();
+ emitFunctions();
+ emitConstants();
+ }
+ protected void emitClasses() throws IOException
+ {
+ final StringBuilder sb = new StringBuilder();
for (ClassReference reference : model.getClasses())
{
if (model.isExcludedClass(reference) != null)
continue;
- if (reference.isInterface())
+ if (!reference.isInterface())
continue;
- StringBuilder sb = new StringBuilder();
-
emit(reference, sb);
- File sourceFile = reference.getFile(model.getConfiguration().getAsClassRoot());
+ File sourceFile = reference.getFile(model.getConfiguration().getAsInterfaceRoot());
FileUtils.write(sourceFile, sb.toString());
+
+ sb.setLength(0);
}
+ }
+ protected void emitInterfaces() throws IOException
+ {
+ final StringBuilder sb = new StringBuilder();
for (ClassReference reference : model.getClasses())
{
- StringBuilder sb = new StringBuilder();
-
if (model.isExcludedClass(reference) != null)
continue;
- if (!reference.isInterface())
+ if (reference.isInterface())
continue;
emit(reference, sb);
- File sourceFile = reference.getFile(model.getConfiguration().getAsInterfaceRoot());
+ File sourceFile = reference.getFile(model.getConfiguration().getAsClassRoot());
FileUtils.write(sourceFile, sb.toString());
+
+ sb.setLength(0);
}
+ }
+ protected void emitTypedefs() throws IOException
+ {
+ final StringBuilder sb = new StringBuilder();
// TODO figure out how to resolve/emit @typedef
for (ClassReference reference : model.getTypedefs())
{
if (model.isExcludedClass(reference) != null)
continue;
- StringBuilder sb = new StringBuilder();
-
emit(reference, sb);
File sourceFile = reference.getFile(model.getConfiguration().getAsTypeDefRoot());
FileUtils.write(sourceFile, sb.toString());
+
+ sb.setLength(0);
}
+ }
+ protected void emitFunctions() throws IOException
+ {
+ final StringBuilder sb = new StringBuilder();
for (FunctionReference reference : model.getFunctions())
{
- StringBuilder sb = new StringBuilder();
-
emit(reference, sb);
File sourceFile = reference.getFile(model.getConfiguration().getAsFunctionRoot());
FileUtils.write(sourceFile, sb.toString());
+
+ sb.setLength(0);
}
+ }
+ protected void emitConstants() throws IOException
+ {
+ final StringBuilder sb = new StringBuilder();
for (ConstantReference reference : model.getConstants())
{
- StringBuilder sb = new StringBuilder();
-
emit(reference, sb);
File sourceFile = reference.getFile(model.getConfiguration().getAsConstantRoot());
FileUtils.write(sourceFile, sb.toString());
+
+ sb.setLength(0);
}
}
@@ -117,7 +144,7 @@ public class ReferenceEmitter
public String emit(BaseReference reference)
{
- StringBuilder sb = new StringBuilder();
+ final StringBuilder sb = new StringBuilder();
reference.emit(sb);
return sb.toString();
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
index e82ac12..a9734de 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
@@ -68,5 +68,4 @@ public abstract class AbstractCompilerPass implements CompilerPass, Callback
{
DebugLogUtils.err(message);
}
-
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
index 028e114..c17dacc 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
@@ -43,7 +43,6 @@ public class CollectTypesPass extends AbstractCompilerPass
@Override
public void visit(NodeTraversal t, Node n, Node parent)
{
-
for (Node child : n.children())
{
if (child.isVar())
@@ -153,10 +152,7 @@ public class CollectTypesPass extends AbstractCompilerPass
//System.out.println(child.toStringTree());
model.addConstant(child, first.getString());
}
- //log(child.toStringTree());
}
}
-
}
-
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
index 6944d63..a0711ad 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
@@ -103,18 +103,8 @@ public class NamespaceResolutionPass extends AbstractCompilerPass
err(child);
}
}
-
}
}
-
- // look for @constructor
- // look for @const
-
- // var foo = function () {}
- // var bar = {};
- // bar.goo = {};
- // bar.go.beep = {};
}
}
-
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ReferenceCompiler.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
index e0d236a..c50fab0 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
@@ -90,8 +90,6 @@ public class ReferenceCompiler
public Result compile() throws IOException
{
- //Node script = compiler.parse(SourceFile.fromCode("[test]", source));
-
List<SourceFile> sources = new ArrayList<SourceFile>();
for (ExternalFile externalFile : model.getConfiguration().getExternals())
{
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
index b337adf..d4664d7 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
@@ -32,7 +32,6 @@ import com.google.javascript.rhino.Node;
public class ResolvePackagesPass extends AbstractCompilerPass
{
-
public ResolvePackagesPass(ReferenceModel model, AbstractCompiler compiler)
{
super(model, compiler);
@@ -101,5 +100,4 @@ public class ResolvePackagesPass extends AbstractCompilerPass
public void visit(NodeTraversal arg0, Node arg1, Node arg2)
{
}
-
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
index ec9c6ea..cfbc2e9 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/BaseReference.java
@@ -98,11 +98,6 @@ public abstract class BaseReference
return comment;
}
- // public Compiler getCompiler()
- // {
- // return model.getJSCompiler();
- // }
-
public ReferenceModel getModel()
{
return model;
@@ -117,6 +112,13 @@ public abstract class BaseReference
this.comment = comment;
}
+ public ExcludedMemeber isExcluded()
+ {
+ return null;
+ }
+
+ public abstract void emit(StringBuilder sb);
+
public void emitComment(StringBuilder sb)
{
sb.append(indent);
@@ -143,7 +145,6 @@ public abstract class BaseReference
sb.append(blockDescription.replaceAll("\\n", "\n" + indent + " * "));
sb.append("\n " + indent + "*\n");
}
-
}
protected void emitSee(StringBuilder sb)
@@ -189,13 +190,6 @@ public abstract class BaseReference
sb.append(" * @see " + getNode().getSourceFileName() + "\n");
}
- public ExcludedMemeber isExcluded()
- {
- return null;
- }
-
- public abstract void emit(StringBuilder sb);
-
protected void emitFunctionCommentBody(StringBuilder sb)
{
emitBlockDescription(sb);
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
index 08d333a..b11c6a0 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
@@ -38,7 +38,6 @@ import com.google.javascript.rhino.jstype.JSType;
public class ClassReference extends BaseReference
{
-
private boolean isFinal;
private List<String> imports = new ArrayList<String>();
@@ -202,6 +201,47 @@ public class ClassReference extends BaseReference
}
+ @Override
+ public void emit(StringBuilder sb)
+ {
+ String packageName = getPackageName();
+
+ sb.append("package ");
+ if (!packageName.equals(""))
+ sb.append(packageName + " ");
+ sb.append("{\n");
+ sb.append("\n");
+
+ emitImports(sb);
+ emitComment(sb);
+
+ boolean isInterface = isInterface();
+
+ if (isInterface)
+ {
+ emitInterface(sb);
+ }
+ else
+ {
+ emitClass(sb);
+ }
+
+ sb.append("{\n");
+ sb.append("\n");
+
+ if (!isInterface)
+ {
+ emitConstructor(sb);
+ sb.append("\n");
+ }
+
+ emitFields(sb);
+ emitMethods(sb);
+
+ sb.append("}\n");
+ sb.append("}\n"); // package
+ }
+
public boolean hasSuperField(String fieldName)
{
List<ClassReference> list = getSuperClasses();
@@ -252,10 +292,7 @@ public class ClassReference extends BaseReference
result.add(superClass);
superClass = superClass.getSuperClass();
}
- // ClassReference objectReference = getModel().getClassReference("Object");
- // // TODO tests
- // if (objectReference != null)
- // result.add(objectReference);
+
return result;
}
@@ -280,7 +317,6 @@ public class ClassReference extends BaseReference
for (JSTypeExpression jsTypeExpression : getComment().getImplementedInterfaces())
{
String interfaceName = getModel().evaluate(jsTypeExpression).toAnnotationString();
- //System.out.println(" !!!!!!!! [" + interfaceName + "]");
ClassReference reference = getModel().getClassReference(
interfaceName);
if (reference != null)
@@ -394,58 +430,120 @@ public class ClassReference extends BaseReference
return method;
}
- @Override
- public void emit(StringBuilder sb)
+ public boolean isMethodOverrideFromInterface(MethodReference reference)
{
- String packageName = getPackageName();
+ if (!hasImplementations())
+ return false;
- sb.append("package ");
- if (!packageName.equals(""))
- sb.append(packageName + " ");
- sb.append("{\n");
- sb.append("\n");
+ List<JSTypeExpression> implementedInterfaces = getComment().getImplementedInterfaces();
+ for (JSTypeExpression jsTypeExpression : implementedInterfaces)
+ {
+ String interfaceName = getModel().evaluate(jsTypeExpression).getDisplayName();
+ ClassReference classReference = getModel().getClassReference(
+ interfaceName);
+ return classReference.hasSuperMethod(reference.getQualifiedName());
+ }
- emitImports(sb);
- emitComment(sb);
+ return false;
+ }
- boolean isInterface = isInterface();
+ public MethodReference getMethodOverrideFromInterface(
+ MethodReference reference)
+ {
+ // get all super classes, reverse and search top down
+ List<ClassReference> superClasses = getSuperClasses();
+ superClasses.add(0, this);
+ Collections.reverse(superClasses);
- if (isInterface)
- {
- emitInterface(sb);
- }
- else
+ // for each superclass, get all implemented interfaces
+ for (ClassReference classReference : superClasses)
{
- emitClass(sb);
+ List<ClassReference> interfaces = classReference.getImplementedInterfaces();
+ for (ClassReference interfaceReference : interfaces)
+ {
+ // check for the method on the interface
+ MethodReference method = interfaceReference.getMethod(reference.getBaseName());
+ if (method != null)
+ return method;
+ }
}
- sb.append("{\n");
- sb.append("\n");
+ return null;
+ }
- if (!isInterface)
+ public ClassReference getSuperClass()
+ {
+ if (getBaseName().equals("Object"))
+ return null;
+
+ JSTypeExpression baseType = getComment().getBaseType();
+ if (baseType != null)
{
- emitConstructor(sb);
- sb.append("\n");
+ JSType jsType = getModel().evaluate(baseType);
+ if (jsType != null)
+ return getModel().getClassReference(jsType.getDisplayName());
}
-
- for (Entry<String, FieldReference> fieldSet : getFields().entrySet())
+ else
{
- fieldSet.getValue().emit(sb);
- sb.append("\n");
+ return getModel().getObjectReference();
}
- for (Entry<String, MethodReference> methodSet : getMethods().entrySet())
+ return null;
+ }
+
+ public boolean hasSuperFieldConflict(FieldReference reference)
+ {
+ // ClassReference2 superClass = getSuperClass();
+ // if (superClass != null)
+ // return superClass.getInstanceFields().containsKey(
+ // reference.getName());
+ return false;
+ }
+
+ public boolean isPropertyInterfaceImplementation(FieldReference reference)
+ {
+ // List<ClassReference2> superInterfaces = getSuperInterfaces();
+ // for (ClassReference2 interfaceRef : superInterfaces)
+ // {
+ // if (interfaceRef == null)
+ // {
+ // System.err.println("isPropertyInterfaceImplementation() null");
+ // continue;
+ // }
+ // if (interfaceRef.hasFieldConflict(reference))
+ // return true;
+ // }
+ return false;
+ }
+
+ public boolean hasLocalMethodConflict(String functionName)
+ {
+ return methods.containsKey(functionName);
+ }
+
+ public boolean hasFieldConflict(FieldReference reference)
+ {
+ return getFields().containsKey(reference.getQualifiedName());
+ }
+
+ public void addImport(String qualifiedName)
+ {
+ imports.add(qualifiedName);
+ }
+
+ private boolean hasImplementations()
+ {
+ return getComment().getImplementedInterfaceCount() > 0;
+ }
+
+ private void emitImports(StringBuilder sb)
+ {
+ sb.append("\n");
+ for (String imp : imports)
{
- MethodReference method = methodSet.getValue();
- //if (!method.isOverride())
- //{
- method.emit(sb);
- sb.append("\n");
- //}
+ sb.append("import " + imp + ";\n");
}
-
- sb.append("}\n");
- sb.append("}\n"); // package
+ sb.append("\n");
}
private void emitClass(StringBuilder sb)
@@ -543,14 +641,23 @@ public class ClassReference extends BaseReference
}
}
- private void emitImports(StringBuilder sb)
+ private void emitFields(StringBuilder sb)
{
- sb.append("\n");
- for (String imp : imports)
+ for (Entry<String, FieldReference> fieldSet : getFields().entrySet())
{
- sb.append("import " + imp + ";\n");
+ fieldSet.getValue().emit(sb);
+ sb.append("\n");
+ }
+
+ }
+
+ private void emitMethods(StringBuilder sb)
+ {
+ for (Entry<String, MethodReference> methodSet : getMethods().entrySet())
+ {
+ methodSet.getValue().emit(sb);
+ sb.append("\n");
}
- sb.append("\n");
}
public File getFile(File asSourceRoot)
@@ -578,127 +685,4 @@ public class ClassReference extends BaseReference
return "";
}
-
- public boolean isMethodOverrideFromInterface(MethodReference reference)
- {
- if (!hasImplementations())
- return false;
-
- List<JSTypeExpression> implementedInterfaces = getComment().getImplementedInterfaces();
- for (JSTypeExpression jsTypeExpression : implementedInterfaces)
- {
- String interfaceName = getModel().evaluate(jsTypeExpression).getDisplayName();
- ClassReference classReference = getModel().getClassReference(
- interfaceName);
- return classReference.hasSuperMethod(reference.getQualifiedName());
- }
-
- return false;
- }
-
- public MethodReference getMethodOverrideFromInterface(
- MethodReference reference)
- {
- // get all super classes, reverse and search top down
- List<ClassReference> superClasses = getSuperClasses();
- superClasses.add(0, this);
- Collections.reverse(superClasses);
-
- // for each superclass, get all implemented interfaces
- for (ClassReference classReference : superClasses)
- {
- List<ClassReference> interfaces = classReference.getImplementedInterfaces();
- for (ClassReference interfaceReference : interfaces)
- {
- // check for the method on the interface
- MethodReference method = interfaceReference.getMethod(reference.getBaseName());
- if (method != null)
- return method;
- }
- }
-
- return null;
- }
-
- private boolean hasImplementations()
- {
- return getComment().getImplementedInterfaceCount() > 0;
- }
-
- public boolean _hasImplements(String interfaceName)
- {
- // boolean hasImplements = TagUtils.hasTags(this, "implements");
- // if (hasImplements)
- // {
- // List<DocletTag> impls = TagUtils.getTags(this, "implements");
- // for (DocletTag tag : impls)
- // {
- // String value = tag.getValue();
- // value = value.substring(1, value.indexOf("}"));
- // return value.equals(interfaceName);
- // }
- // }
- return false;
- }
-
- public ClassReference getSuperClass()
- {
- if (getBaseName().equals("Object"))
- return null;
-
- JSTypeExpression baseType = getComment().getBaseType();
- if (baseType != null)
- {
- JSType jsType = getModel().evaluate(baseType);
- if (jsType != null)
- return getModel().getClassReference(jsType.getDisplayName());
- }
- else
- {
- return getModel().getObjectReference();
- }
-
- return null;
- }
-
- public boolean hasSuperFieldConflict(FieldReference reference)
- {
- // ClassReference2 superClass = getSuperClass();
- // if (superClass != null)
- // return superClass.getInstanceFields().containsKey(
- // reference.getName());
- return false;
- }
-
- public boolean isPropertyInterfaceImplementation(FieldReference reference)
- {
- // List<ClassReference2> superInterfaces = getSuperInterfaces();
- // for (ClassReference2 interfaceRef : superInterfaces)
- // {
- // if (interfaceRef == null)
- // {
- // System.err.println("isPropertyInterfaceImplementation() null");
- // continue;
- // }
- // if (interfaceRef.hasFieldConflict(reference))
- // return true;
- // }
- return false;
- }
-
- public boolean hasLocalMethodConflict(String functionName)
- {
- return methods.containsKey(functionName);
- }
-
- public boolean hasFieldConflict(FieldReference reference)
- {
- return getFields().containsKey(reference.getQualifiedName());
- }
-
- public void addImport(String qualifiedName)
- {
- imports.add(qualifiedName);
- }
-
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/28398c9a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
index e69f366..655fe57 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ConstantReference.java
@@ -63,22 +63,14 @@ public class ConstantReference extends BaseReference
@Override
public void emit(StringBuilder sb)
{
- @SuppressWarnings("unused")
- String packageName = "";
-
sb.append("package ");
- //sb.append(packageName + " ");
-
sb.append("{\n");
sb.append("\n");
String type = JSTypeUtils.toConstantTypeString(this);
String value = resolveValue(type);
- // String type = TypeUtils.getType(findDocTagByName("type"));
- // String value = resolveValue(type);
-
if (getQualifiedName().equals("undefined"))
{
sb.append(indent);