flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gordonsm...@apache.org
Subject svn commit: r1454275 [1/3] - in /flex/falcon/trunk/compiler/src/org/apache/flex/compiler: internal/parsing/as/ internal/parsing/mxml/ internal/scopes/ internal/tree/mxml/ mxml/ problems/
Date Fri, 08 Mar 2013 08:29:32 GMT
Author: gordonsmith
Date: Fri Mar  8 08:29:30 2013
New Revision: 1454275

URL: http://svn.apache.org/r1454275
Log:
Falcon: Finished abstracting the syntax of an MXML document behind a complete set of interfaces (IMXMLData, IMXMLTagData, IMXMLTagAttributeData, etc.) The other parts of the compiler now access the MXML document only through these interfaces rather than through the concrete classes.

Added:
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLInstructionData.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLNamespaceAttributeData.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeValue.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagBlobData.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextValue.java   (with props)
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLUnitData.java   (with props)
Modified:
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/BaseASParser.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/IncludeHandler.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/BalancingMXMLProcessor.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataDepth.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataPayload.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLUnitDataIterator.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/scopes/MXMLFileScope.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLArrayNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLClassReferenceNodeBase.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLDeferredInstanceNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLEventSpecifierNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLExpressionNodeBase.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLFileNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLMetadataNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLModelPropertyNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBase.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPrivateNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLScriptNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLSpecifierNodeBase.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLStyleNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLXMLListNode.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/XMLBuilder.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLDatabindingData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLDatabindingValue.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLEntityValue.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLInstructionData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLNamespaceAttributeData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTagAttributeData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTagAttributeValue.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTagBlobData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTagData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTextData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLTextValue.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/MXMLUnitData.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/problems/MXMLUnexpectedDatabindingProblem.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/problems/MXMLUnexpectedTextProblem.java
    flex/falcon/trunk/compiler/src/org/apache/flex/compiler/problems/MXMLXMLRequireContentProblem.java

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/BaseASParser.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/BaseASParser.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/BaseASParser.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/BaseASParser.java Fri Mar  8 08:29:30 2013
@@ -99,7 +99,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.VariableNode;
 import org.apache.flex.compiler.internal.tree.as.metadata.MetaTagsNode;
 import org.apache.flex.compiler.internal.workspaces.Workspace;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.AttributesNotAllowedOnPackageDefinitionProblem;
 import org.apache.flex.compiler.problems.CanNotInsertSemicolonProblem;
 import org.apache.flex.compiler.problems.EmbedInitialValueProblem;
@@ -500,7 +500,7 @@ abstract class BaseASParser extends LLkP
      */
     public static ScopedBlockNode parseInlineScript(
             final IFileNodeAccumulator fileNodeAccumulator,
-            final MXMLTextData mxmlTextData,
+            final IMXMLTextData mxmlTextData,
             final Collection<ICompilerProblem> problems,
             final ASScope containingScope,
             final IProjectConfigVariables variables,

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/IncludeHandler.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/IncludeHandler.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/IncludeHandler.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/as/IncludeHandler.java Fri Mar  8 08:29:30 2013
@@ -31,7 +31,7 @@ import org.apache.flex.compiler.filespec
 import org.apache.flex.compiler.filespecs.IFileSpecification;
 import org.apache.flex.compiler.internal.parsing.mxml.MXMLScopeBuilder;
 import org.apache.flex.compiler.internal.projects.CompilerProject;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.units.ICompilationUnit;
 import org.apache.flex.utils.FilenameNormalization;
@@ -228,7 +228,7 @@ public class IncludeHandler
 
     /**
      * True if this {@code IncludeHandler} tracks not only {@link ASToken} but
-     * also {@link MXMLUnitData}. This flag tells {@link #onNextToken(ASToken)}
+     * also {@link IMXMLUnitData}. This flag tells {@link #onNextToken(ASToken)}
      * not to check whether {@code currentNode.tokenEnd} increases
      * monotonically. Before CMP-1490 is fixed, this is a workaround for
      * CMP-1368.
@@ -510,13 +510,13 @@ public class IncludeHandler
 
     /**
      * Update the {@code IncludeHandler}'s current offset counter with the next
-     * {@code MXMLUnitData}
+     * {@code IMXMLUnitData}
      * 
-     * @param unitData Next {@code MXMLUnitData} object.
+     * @param unitData Next {@code IMXMLUnitData} object.
      */
-    public void onNextMXMLUnitData(final MXMLUnitData unitData)
+    public void onNextMXMLUnitData(final IMXMLUnitData unitData)
     {
-        assert unitData != null : "MXMLUnitData can't be null.";
+        assert unitData != null : "IMXMLUnitData can't be null.";
         hasMXMLUnits = true;
 
         if (currentNode != null)

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/BalancingMXMLProcessor.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/BalancingMXMLProcessor.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/BalancingMXMLProcessor.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/BalancingMXMLProcessor.java Fri Mar  8 08:29:30 2013
@@ -28,14 +28,14 @@ import java.util.Map;
 
 import org.apache.flex.compiler.common.PrefixMap;
 import org.apache.flex.compiler.filespecs.IFileSpecification;
-import org.apache.flex.compiler.mxml.MXMLData;
-import org.apache.flex.compiler.mxml.MXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLData;
+import org.apache.flex.compiler.mxml.IMXMLTagData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 
 /**
  * The BalancingMXMLProcessor performs a balancing operation over a collection of 
- * {@link MXMLTagData} objects.  It looks for un-balanced MXML and attempts to 
+ * {@link IMXMLTagData} objects.  It looks for un-balanced MXML and attempts to 
  * add open and close tags in order to create a well-formed, or better-formed, DOM.
  * 
  * The method used is to track tags by their depth, and going from inside out, to check for matches
@@ -60,17 +60,17 @@ public class BalancingMXMLProcessor {
      * Initialize our balancing structures from a full MXMLUnitData array. 
      * @param data the array to use to populate our balancing structures
      */
-    public void initialize(MXMLUnitData[] data) {
+    public void initialize(IMXMLUnitData[] data) {
         int index = 0;
         for(int i = 0; i < data.length; i++) {
-            if(data[i] instanceof MXMLTagData) {
-                if(!((MXMLTagData)data[i]).isEmptyTag()) {
-                    if( ((MXMLTagData)data[i]).isOpenTag()) {
-                        addOpenTag((MXMLTagData)data[i], index);
+            if(data[i] instanceof IMXMLTagData) {
+                if(!((IMXMLTagData)data[i]).isEmptyTag()) {
+                    if( ((IMXMLTagData)data[i]).isOpenTag()) {
+                        addOpenTag((IMXMLTagData)data[i], index);
                         index++;
                     } else {
                         index--;
-                        addCloseTag((MXMLTagData)data[i], index);
+                        addCloseTag((IMXMLTagData)data[i], index);
                     }
                 }
             }
@@ -81,7 +81,7 @@ public class BalancingMXMLProcessor {
         spec = specification;
     }
 	
-	public MXMLUnitData[] balance(MXMLUnitData[] data, MXMLData mxmlData, Map<MXMLTagData, PrefixMap> map) {
+	public IMXMLUnitData[] balance(IMXMLUnitData[] data, IMXMLData mxmlData, Map<IMXMLTagData, PrefixMap> map) {
         ArrayList<MXMLTagDataPayload> payload = new ArrayList<MXMLTagDataPayload>();
         for(int i = depths.size() - 1; i >= 0 ; i--) {
             boolean b = depths.get(i).balance(payload, map, mxmlData, data, problems, spec);
@@ -92,13 +92,13 @@ public class BalancingMXMLProcessor {
         Collections.sort(payload, Collections.reverseOrder());
         if(payload.size() > 0) {
             wasRepaired = true;        // If any payload returned, then that also means repairing occurred
-            List<MXMLUnitData> newTags = new ArrayList<MXMLUnitData>(Arrays.asList(data));
+            List<IMXMLUnitData> newTags = new ArrayList<IMXMLUnitData>(Arrays.asList(data));
             for(int i = payload.size() - 1; i >=0; i--) {
                 MXMLTagDataPayload tokenPayload = payload.get(i);
                 newTags.add(tokenPayload.getPosition(), tokenPayload.getTagData());
                 
             }
-            return newTags.toArray(new MXMLUnitData[0]);
+            return newTags.toArray(new IMXMLUnitData[0]);
         }
         return data;
     }
@@ -127,12 +127,12 @@ public class BalancingMXMLProcessor {
 		return dep;
 	}
 	
-	public void addOpenTag(MXMLTagData openTag, int depth) {
+	public void addOpenTag(IMXMLTagData openTag, int depth) {
 		MXMLTagDataDepth dep = getDepth(depth);
 		dep.addOpenTag(openTag);
 	}
 	
-	public void addCloseTag(MXMLTagData closeTag, int depth) {
+	public void addCloseTag(IMXMLTagData closeTag, int depth) {
 		MXMLTagDataDepth dep = getDepth(depth);
 		dep.addCloseTag(closeTag);
 	}

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java Fri Mar  8 08:29:30 2013
@@ -56,14 +56,14 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.workspaces.Workspace;
 import org.apache.flex.compiler.mxml.IMXMLData;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
-import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
 import org.apache.flex.compiler.mxml.IMXMLLanguageConstants;
+import org.apache.flex.compiler.mxml.IMXMLTagAttributeValue;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
 import org.apache.flex.compiler.mxml.IMXMLTypeConstants;
-import org.apache.flex.compiler.mxml.MXMLNamespaceAttributeData;
-import org.apache.flex.compiler.mxml.MXMLTagAttributeValue;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLNamespaceAttributeData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLLibraryTagNotTheFirstChildProblem;
 import com.google.common.collect.ImmutableSet;
@@ -269,14 +269,14 @@ public class MXMLScopeBuilder
         int nameEnd = -1;
         for (IMXMLTagAttributeData attr : definitionTagAttrs)
         {
-            if ((!(attr instanceof MXMLNamespaceAttributeData)) && (attr.hasValue()))
+            if ((!(attr instanceof IMXMLNamespaceAttributeData)) && (attr.hasValue()))
             {
                if ((attr.getURI() == null) && (ATTRIBUTE_NAME.equals(attr.getName())))
                {
                    if (definitionName == null)
                    {
                        definitionName = attr.getRawValue();
-                       MXMLTagAttributeValue[] values = attr.getValues();
+                       IMXMLTagAttributeValue[] values = attr.getValues();
                        nameStart = values[0].getAbsoluteStart() + 1; //attr.getValueStart();
                        nameEnd = values[values.length - 1].getAbsoluteEnd() - 1; // attr.getValueEnd();
                    }
@@ -324,7 +324,7 @@ public class MXMLScopeBuilder
     
     private void processTag(IMXMLTagData tag)
     {
-        includeHandler.onNextMXMLUnitData((MXMLUnitData)tag);
+        includeHandler.onNextMXMLUnitData((IMXMLUnitData)tag);
         
         boolean recurse = true;
                 
@@ -489,11 +489,11 @@ public class MXMLScopeBuilder
         else
         {
             final List<ScopedBlockNode> nodes = new ArrayList<ScopedBlockNode>(2);
-            for (MXMLUnitData unit = scriptTag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+            for (IMXMLUnitData unit = scriptTag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
             {
-                if (unit instanceof MXMLTextData)
+                if (unit instanceof IMXMLTextData)
                 {
-                    final MXMLTextData mxmlTextData = (MXMLTextData)unit;
+                    final IMXMLTextData mxmlTextData = (IMXMLTextData)unit;
                     if (mxmlTextData.getTextType() != TextType.WHITESPACE)
                     {
                         final EnumSet<PostProcessStep> postProcess = EnumSet.of(
@@ -526,11 +526,11 @@ public class MXMLScopeBuilder
     {
         assert fileScope.isMetadataTag(metadataTag);
         
-        for (MXMLUnitData unit = metadataTag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = metadataTag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
         {
-            if (unit instanceof MXMLTextData)
+            if (unit instanceof IMXMLTextData)
             {
-                final MXMLTextData mxmlTextData = (MXMLTextData)unit;
+                final IMXMLTextData mxmlTextData = (IMXMLTextData)unit;
                 if (mxmlTextData.getTextType() != TextType.WHITESPACE)
                 {
                     MetaTagsNode metaTagNodes = ASParser.parseMetadata(project.getWorkspace(), mxmlTextData.getCompilableText(),
@@ -584,14 +584,14 @@ public class MXMLScopeBuilder
         int nameEnd = -1;
         for (IMXMLTagAttributeData attr : definitionTagAttrs)
         {
-            if ((!(attr instanceof MXMLNamespaceAttributeData)) && (attr.hasValue()))
+            if ((!(attr instanceof IMXMLNamespaceAttributeData)) && (attr.hasValue()))
             {
                if ((attr.getURI() == null) && (attr.getName().equals("className")))
                {
                    if (className == null)
                    {
                        className = attr.getRawValue();
-                       MXMLTagAttributeValue[] values = attr.getValues();
+                       IMXMLTagAttributeValue[] values = attr.getValues();
                        nameStart = values[0].getAbsoluteStart() + 1; //attr.getValueStart();
                        nameEnd = values[values.length - 1].getAbsoluteEnd() - 1; // attr.getValueEnd();
                    }

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataDepth.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataDepth.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataDepth.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataDepth.java Fri Mar  8 08:29:30 2013
@@ -28,10 +28,11 @@ import java.util.Map;
 
 import org.apache.flex.compiler.common.PrefixMap;
 import org.apache.flex.compiler.filespecs.IFileSpecification;
-import org.apache.flex.compiler.mxml.MXMLData;
-import org.apache.flex.compiler.mxml.MXMLTagAttributeData;
+import org.apache.flex.compiler.mxml.IMXMLData;
+import org.apache.flex.compiler.mxml.IMXMLTagData;
+import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.mxml.MXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
 import org.apache.flex.compiler.parsing.MXMLTokenTypes;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.SyntaxProblem;
@@ -44,12 +45,12 @@ import org.apache.flex.utils.FastStack;
  */
 class MXMLTagDataDepth {
 	
-    private static final MXMLTagAttributeData[] MXML_TAG_ATTRIBUTE_DATAS = new MXMLTagAttributeData[0];
+    private static final IMXMLTagAttributeData[] MXML_TAG_ATTRIBUTE_DATAS = new IMXMLTagAttributeData[0];
     
-    final class MXMLTagDataComparator implements Comparator<MXMLTagData> {
+    final class MXMLTagDataComparator implements Comparator<IMXMLTagData> {
 
         @Override
-        public final int compare(final MXMLTagData o1, final MXMLTagData o2)
+        public final int compare(final IMXMLTagData o1, final IMXMLTagData o2)
         {
             if(o1.getIndex() == o2.getIndex()) return 0;
             if(o1.getIndex() < o2.getIndex()) return -1;
@@ -81,7 +82,7 @@ class MXMLTagDataDepth {
         }
 
         @Override
-        public MXMLTagAttributeData[] getAttributeDatas()
+        public IMXMLTagAttributeData[] getAttributeDatas()
         {
             //return empty array since our value for children is null
             return MXML_TAG_ATTRIBUTE_DATAS;
@@ -96,29 +97,29 @@ class MXMLTagDataDepth {
     
     
     private MXMLTagDataDepth parent;
-	private ArrayList<MXMLTagData> openTags;
-	private FastStack<MXMLTagData> closeTags;
+	private ArrayList<IMXMLTagData> openTags;
+	private FastStack<IMXMLTagData> closeTags;
 	private int depth;
 	
 	public MXMLTagDataDepth(int depth) {
 		this.depth = depth;
-		openTags = new ArrayList<MXMLTagData>();
-		closeTags = new FastStack<MXMLTagData>();
+		openTags = new ArrayList<IMXMLTagData>();
+		closeTags = new FastStack<IMXMLTagData>();
 	}
 	
 	/**
 	 * Adds an open tag to our list of tags we are tracking
-	 * @param openTag the {@link MXMLTagData} that is open
+	 * @param openTag the {@link IMXMLTagData} that is open
 	 */
-	public final void addOpenTag(final MXMLTagData openTag) {
+	public final void addOpenTag(final IMXMLTagData openTag) {
 		openTags.add(openTag);
 	} 
 	
 	/**
      * Adds a close tag to our list of tags we are tracking
-     * @param closeTag the {@link MXMLTagData} that is close
+     * @param closeTag the {@link IMXMLTagData} that is close
      */
-	public final void addCloseTag(final MXMLTagData closeTag) {
+	public final void addCloseTag(final IMXMLTagData closeTag) {
 		closeTags.push(closeTag);
 	}
 	
@@ -151,20 +152,20 @@ class MXMLTagDataDepth {
 	 *  did_repair = ret | !payload.isEmpty()
 	 *  
 	 */
-	public final boolean balance(List<MXMLTagDataPayload> payload, Map<MXMLTagData, PrefixMap> prefixMap, MXMLData mxmlData, MXMLUnitData[] data, Collection<ICompilerProblem> problems, IFileSpecification fileSpec) {
+	public final boolean balance(List<MXMLTagDataPayload> payload, Map<IMXMLTagData, PrefixMap> prefixMap, IMXMLData mxmlData, IMXMLUnitData[] data, Collection<ICompilerProblem> problems, IFileSpecification fileSpec) {
 		ensureOrder();
 		final int size = openTags.size();
 		boolean didNonPayloadRepair = false;
 		
 		for(int i = 0; i < size; i++) {
-			MXMLTagData openTag = openTags.get(i);
+			IMXMLTagData openTag = openTags.get(i);
 			if(!closeTags.isEmpty()) {
-				final MXMLTagData closeTag = closeTags.peek();
+				final IMXMLTagData closeTag = closeTags.peek();
 				if(closeTag.getName().compareTo(openTag.getName()) != 0) {
 					//let's determine where to end, and then move all of our tags to our parent
 					int insertOffset = -1;
 					while(!closeTags.isEmpty()) {
-						final MXMLTagData pop = closeTags.pop();
+						final IMXMLTagData pop = closeTags.pop();
 						if(pop.getName().compareTo(openTag.getName()) != 0) {
 							insertOffset = pop.getIndex();
 							if(parent != null) {
@@ -192,7 +193,7 @@ class MXMLTagDataDepth {
 					    {
     					    // we have an open with no matching close, so let's just make
                             // it an empty tag. CMP-916
-                            openTag.setEmptyTag();
+                            ((MXMLTagData)openTag).setEmptyTag();
                             didNonPayloadRepair = true;     // note a repair, so we can alert caller
                             problems.add(produceProblemFromToken(openTag, fileSpec));
                             // TODO: below (line 230) the old code used to make up a new fake tag and
@@ -221,7 +222,7 @@ class MXMLTagDataDepth {
 					int pos = openTag.getIndex();
 					int tokenSize = data.length;
 					while(pos < tokenSize) {
-						MXMLUnitData currToken = data[pos];
+						IMXMLUnitData currToken = data[pos];
 						if(currToken instanceof MXMLTagData && !((MXMLTagData)currToken).hasExplicitCloseTag()) {
 						    problems.add(new SyntaxProblem(currToken, ((MXMLTagData)currToken).getName()));
 						    FakeMXMLTagData fakeMXMLTagData = new FakeMXMLTagData((MXMLTagData)currToken, true);
@@ -248,7 +249,7 @@ class MXMLTagDataDepth {
 		return didNonPayloadRepair;
  	}
 
-    private ICompilerProblem produceProblemFromToken(MXMLTagData tagData, IFileSpecification fileSpec)
+    private ICompilerProblem produceProblemFromToken(IMXMLTagData tagData, IFileSpecification fileSpec)
     {
         return new SyntaxProblem(tagData, tagData.getName());
     }

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataPayload.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataPayload.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataPayload.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLTagDataPayload.java Fri Mar  8 08:29:30 2013
@@ -19,7 +19,7 @@
 
 package org.apache.flex.compiler.internal.parsing.mxml;
 
-import org.apache.flex.compiler.mxml.MXMLTagData;
+import org.apache.flex.compiler.mxml.IMXMLTagData;
 
 /**
  * This class stores the new MXMLTagData object, as well as the index
@@ -28,19 +28,19 @@ import org.apache.flex.compiler.mxml.MXM
  */
 class MXMLTagDataPayload implements Comparable<MXMLTagDataPayload>{
 	
-    private MXMLTagData tagData;
+    private IMXMLTagData tagData;
 	private int offset;
 	
-	public MXMLTagDataPayload(MXMLTagData token, int position) {
+	public MXMLTagDataPayload(IMXMLTagData token, int position) {
         offset = position;
         tagData = token;
     }
 	
 	/**
-	 * @return the {@link MXMLTagData} that should be inserted into its parent
+	 * @return the {@link IMXMLTagData} that should be inserted into its parent
 	 * MXMLData object
 	 */
-	public MXMLTagData getTagData() {
+	public IMXMLTagData getTagData() {
 		return tagData;
 	}
 	

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLUnitDataIterator.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLUnitDataIterator.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLUnitDataIterator.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLUnitDataIterator.java Fri Mar  8 08:29:30 2013
@@ -21,18 +21,18 @@ package org.apache.flex.compiler.interna
 
 import java.util.Iterator;
 
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 
 /**
  * Faster iterator for dealing with MXMLUnitData objects
  */
-public class MXMLUnitDataIterator implements Iterator<MXMLUnitData> {
+public class MXMLUnitDataIterator implements Iterator<IMXMLUnitData> {
 
 	private int index = -1;
 	
-	private MXMLUnitData[] list;
+	private IMXMLUnitData[] list;
 	
-	public MXMLUnitDataIterator(MXMLUnitData[] list) {
+	public MXMLUnitDataIterator(IMXMLUnitData[] list) {
 		this.list = list;
 	}
 	
@@ -43,7 +43,7 @@ public class MXMLUnitDataIterator implem
 	}
 
 	@Override
-    public MXMLUnitData next() {
+    public IMXMLUnitData next() {
 		return list[index];
 	}
 

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/scopes/MXMLFileScope.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/scopes/MXMLFileScope.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/scopes/MXMLFileScope.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/scopes/MXMLFileScope.java Fri Mar  8 08:29:30 2013
@@ -37,8 +37,8 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.units.MXMLCompilationUnit;
 import org.apache.flex.compiler.mxml.IMXMLData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.mxml.IXMLNameResolver;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -587,7 +587,7 @@ public class MXMLFileScope extends ASFil
         return tagName.equals(reparentTagName);
     }
 
-    public boolean isScriptTag(MXMLUnitData unitData)
+    public boolean isScriptTag(IMXMLUnitData unitData)
     {
         if (unitData instanceof IMXMLTagData)
             return isScriptTag((IMXMLTagData)unitData);

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLArrayNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLArrayNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLArrayNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLArrayNode.java Fri Mar  8 08:29:30 2013
@@ -37,8 +37,8 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.projects.FlexProject;
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLIncompatibleArrayElementProblem;
 import org.apache.flex.compiler.problems.MXMLUnexpectedTagProblem;
@@ -167,7 +167,7 @@ class MXMLArrayNode extends MXMLInstance
 
     @Override
     protected void processChildWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                              MXMLTextData text,
+                                              IMXMLTextData text,
                                               MXMLNodeInfo info)
     {
         accumulateTextFragments(builder, text, info);
@@ -175,7 +175,7 @@ class MXMLArrayNode extends MXMLInstance
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         accumulateTextFragments(builder, text, info);
@@ -211,7 +211,7 @@ class MXMLArrayNode extends MXMLInstance
     }
 
     void initializeDefaultProperty(MXMLTreeBuilder builder, IVariableDefinition defaultPropertyDefinition,
-                                   List<MXMLUnitData> contentUnits)
+                                   List<IMXMLUnitData> contentUnits)
     {
         FlexProject project = builder.getProject();
 
@@ -222,7 +222,7 @@ class MXMLArrayNode extends MXMLInstance
         setClassReference(project, IASLanguageConstants.Array);
 
         List<IMXMLNode> children = new ArrayList<IMXMLNode>();
-        for (MXMLUnitData unit : contentUnits)
+        for (IMXMLUnitData unit : contentUnits)
         {
             if (unit instanceof IMXMLTagData)
             {

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLClassReferenceNodeBase.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLClassReferenceNodeBase.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLClassReferenceNodeBase.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLClassReferenceNodeBase.java Fri Mar  8 08:29:30 2013
@@ -39,8 +39,8 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLDuplicateChildTagProblem;
 import org.apache.flex.compiler.projects.ICompilerProject;
@@ -180,7 +180,7 @@ abstract class MXMLClassReferenceNodeBas
     /**
      * A list that accumulates content units for the default property.
      */
-    private List<MXMLUnitData> defaultPropertyContentUnits;
+    private List<IMXMLUnitData> defaultPropertyContentUnits;
 
     @Override
     public IASNode getChild(int i)
@@ -521,10 +521,10 @@ abstract class MXMLClassReferenceNodeBas
             info.addChildNode(defaultPropertyNode);
 
             // Create a list in which we'll accumulate the tags for the default property.
-            defaultPropertyContentUnits = new ArrayList<MXMLUnitData>(1);
+            defaultPropertyContentUnits = new ArrayList<IMXMLUnitData>(1);
         }
 
-        defaultPropertyContentUnits.add((MXMLUnitData)childTag);
+        defaultPropertyContentUnits.add((IMXMLUnitData)childTag);
     }
 
     /**
@@ -553,15 +553,15 @@ abstract class MXMLClassReferenceNodeBas
             int lastNonScriptTagIndex;
             for (lastNonScriptTagIndex = (defaultPropertyContentUnits.size() - 1); lastNonScriptTagIndex > 0; --lastNonScriptTagIndex)
             {
-                MXMLUnitData unitData = defaultPropertyContentUnits.get(lastNonScriptTagIndex);
+                IMXMLUnitData unitData = defaultPropertyContentUnits.get(lastNonScriptTagIndex);
                 if (!builder.getFileScope().isScriptTag(unitData))
                     break;
             }
             assert lastNonScriptTagIndex >= 0;
             assert lastNonScriptTagIndex < defaultPropertyContentUnits.size();
 
-            List<MXMLUnitData> trailingScriptTags = defaultPropertyContentUnits.subList(lastNonScriptTagIndex + 1, defaultPropertyContentUnits.size());
-            List<MXMLUnitData> defaultPropertyContentUnitsWithoutTrailingScriptTags =
+            List<IMXMLUnitData> trailingScriptTags = defaultPropertyContentUnits.subList(lastNonScriptTagIndex + 1, defaultPropertyContentUnits.size());
+            List<IMXMLUnitData> defaultPropertyContentUnitsWithoutTrailingScriptTags =
                     defaultPropertyContentUnits.subList(0, lastNonScriptTagIndex + 1);
 
             // process the default property content units with the trailing
@@ -572,7 +572,7 @@ abstract class MXMLClassReferenceNodeBas
                     builder, defaultPropertyDefinition, defaultPropertyContentUnitsWithoutTrailingScriptTags);
 
             // Now create MXMLScriptNode's for all the trailing script tags.
-            for (MXMLUnitData scriptTagData : trailingScriptTags)
+            for (IMXMLUnitData scriptTagData : trailingScriptTags)
             {
                 assert builder.getFileScope().isScriptTag(scriptTagData);
                 MXMLScriptNode scriptNode = new MXMLScriptNode(this);
@@ -584,7 +584,7 @@ abstract class MXMLClassReferenceNodeBas
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         // Non-whitespace may be the value of a default property.

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLDeferredInstanceNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLDeferredInstanceNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLDeferredInstanceNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLDeferredInstanceNode.java Fri Mar  8 08:29:30 2013
@@ -31,7 +31,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.projects.FlexProject;
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
 import org.apache.flex.compiler.tree.mxml.IMXMLClassNode;
@@ -107,7 +107,7 @@ class MXMLDeferredInstanceNode extends M
     }
 
     void initializeDefaultProperty(MXMLTreeBuilder builder, IVariableDefinition defaultPropertyDefinition,
-                                   List<MXMLUnitData> contentUnits)
+                                   List<IMXMLUnitData> contentUnits)
     {
         FlexProject project = builder.getProject();
 

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLEventSpecifierNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLEventSpecifierNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLEventSpecifierNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLEventSpecifierNode.java Fri Mar  8 08:29:30 2013
@@ -40,7 +40,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.workspaces.Workspace;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLEmptyEventHandlerProblem;
 import org.apache.flex.compiler.scopes.IASScope;
@@ -188,7 +188,7 @@ class MXMLEventSpecifierNode extends MXM
      */
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         // Don't report non-whitespace as a problem.

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLExpressionNodeBase.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLExpressionNodeBase.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLExpressionNodeBase.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLExpressionNodeBase.java Fri Mar  8 08:29:30 2013
@@ -29,7 +29,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.semantics.SemanticUtils;
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.ImplicitCoercionToUnrelatedTypeProblem;
 import org.apache.flex.compiler.projects.ICompilerProject;
@@ -113,14 +113,14 @@ abstract class MXMLExpressionNodeBase ex
 
     @Override
     protected void processChildWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                              MXMLTextData text, MXMLNodeInfo info)
+                                              IMXMLTextData text, MXMLNodeInfo info)
     {
         accumulateTextFragments(builder, text, info);
     }
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text, MXMLNodeInfo info)
+                                                 IMXMLTextData text, MXMLNodeInfo info)
     {
         info.hasDualContent = true;
 

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLFileNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLFileNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLFileNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLFileNode.java Fri Mar  8 08:29:30 2013
@@ -45,11 +45,11 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.ImportNode;
 import org.apache.flex.compiler.internal.units.MXMLCompilationUnit;
 import org.apache.flex.compiler.mxml.IMXMLData;
+import org.apache.flex.compiler.mxml.IMXMLInstructionData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
 import org.apache.flex.compiler.mxml.IMXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLInstructionData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLConstructorHasParametersProblem;
 import org.apache.flex.compiler.problems.MXMLContentAfterRootTagProblem;
@@ -169,12 +169,12 @@ public class MXMLFileNode extends MXMLNo
             return;
 
         boolean foundRootTag = false;
-        MXMLTextData asDoc = null;
+        IMXMLTextData asDoc = null;
 
         // Walk the top-level units of the MXMLData.
-        for (MXMLUnitData unit = mxmlData.getUnit(0); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = mxmlData.getUnit(0); unit != null; unit = unit.getNextSiblingUnit())
         {
-            if (unit instanceof MXMLInstructionData)
+            if (unit instanceof IMXMLInstructionData)
             {
                 if (unit.getStart() > 0)
                 {
@@ -195,10 +195,10 @@ public class MXMLFileNode extends MXMLNo
                     builder.addProblem(problem);
                 }
             }
-            else if (unit instanceof MXMLTextData)
+            else if (unit instanceof IMXMLTextData)
             {
-                MXMLTextData textData = (MXMLTextData)unit;
-                if (textData.getTextType().equals(IMXMLTextData.TextType.ASDOC))
+                IMXMLTextData textData = (IMXMLTextData)unit;
+                if (textData.getTextType().equals(TextType.ASDOC))
                     asDoc = textData;
                 if (!builder.getMXMLDialect().isWhitespace(textData.getCompilableText()))
                 {
@@ -223,7 +223,7 @@ public class MXMLFileNode extends MXMLNo
         }
     }
 
-    private void processRootTag(MXMLTreeBuilder builder, IMXMLTagData rootTag, MXMLTextData asDoc)
+    private void processRootTag(MXMLTreeBuilder builder, IMXMLTagData rootTag, IMXMLTextData asDoc)
     {
         ClassDefinition fileDef = fileScope.getMainClassDefinition();
         assert fileDef != null;

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLMetadataNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLMetadataNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLMetadataNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLMetadataNode.java Fri Mar  8 08:29:30 2013
@@ -24,9 +24,9 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.metadata.MetaTagsNode;
 import org.apache.flex.compiler.mxml.IMXMLLanguageConstants;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
 import org.apache.flex.compiler.tree.metadata.IMetaTagNode;
@@ -79,7 +79,7 @@ class MXMLMetadataNode extends MXMLNodeB
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         // <fx:Metadata> allows metadata text, so don't do anything here.
@@ -90,11 +90,11 @@ class MXMLMetadataNode extends MXMLNodeB
                                           MXMLNodeInfo info)
     {
         // Parse the event handling code.
-        for (MXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
         {
-            if (unit instanceof MXMLTextData)
+            if (unit instanceof IMXMLTextData)
             {
-                final MXMLTextData mxmlTextData = (MXMLTextData)unit;
+                final IMXMLTextData mxmlTextData = (IMXMLTextData)unit;
                 if (mxmlTextData.getTextType() != TextType.WHITESPACE)
                 {
                     MetaTagsNode metaTagsNode = ASParser.parseMetadata(builder.getWorkspace(),

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLModelPropertyNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLModelPropertyNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLModelPropertyNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLModelPropertyNode.java Fri Mar  8 08:29:30 2013
@@ -31,7 +31,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
@@ -120,7 +120,7 @@ class MXMLModelPropertyNode extends MXML
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         Collection<ICompilerProblem> problems = builder.getProblems();

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBase.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBase.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBase.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBase.java Fri Mar  8 08:29:30 2013
@@ -48,13 +48,13 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.internal.tree.as.ScopedBlockNode;
 import org.apache.flex.compiler.internal.workspaces.Workspace;
+import org.apache.flex.compiler.mxml.IMXMLData;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
-import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
+import org.apache.flex.compiler.mxml.IMXMLNamespaceAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLData;
-import org.apache.flex.compiler.mxml.MXMLNamespaceAttributeData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.parsing.IASToken;
 import org.apache.flex.compiler.parsing.IMXMLToken;
 import org.apache.flex.compiler.parsing.MXMLTokenTypes;
@@ -274,7 +274,7 @@ public abstract class MXMLNodeBase exten
         }
 
         // Process each content unit.
-        for (MXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
         {
             processContentUnit(builder, tag, unit, info);
         }
@@ -376,8 +376,8 @@ public abstract class MXMLNodeBase exten
                                   IMXMLTagAttributeData attribute,
                                   MXMLNodeInfo info)
     {
-        if (attribute instanceof MXMLNamespaceAttributeData)
-            processNamespaceAttribute(builder, tag, (MXMLNamespaceAttributeData)attribute);
+        if (attribute instanceof IMXMLNamespaceAttributeData)
+            processNamespaceAttribute(builder, tag, (IMXMLNamespaceAttributeData)attribute);
 
         else if (isPrivateAttribute(attribute))
             processPrivateAttribute(builder, tag, attribute);
@@ -401,11 +401,11 @@ public abstract class MXMLNodeBase exten
      * representing the attribute.
      */
     private void processNamespaceAttribute(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                           MXMLNamespaceAttributeData attribute)
+                                           IMXMLNamespaceAttributeData attribute)
     {
         String attributeURI = attribute.getNamespace();
 
-        MXMLData mxmlData = attribute.getParent().getParent();
+        IMXMLData mxmlData = attribute.getParent().getParent();
         String languageURI = mxmlData.getMXMLDialect().getLanguageNamespace();
 
         if (MXMLDialect.isLanguageNamespace(attributeURI) &&
@@ -437,7 +437,7 @@ public abstract class MXMLNodeBase exten
 
         String tagURI = attribute.getParent().getURI();
 
-        MXMLData mxmlData = attribute.getParent().getParent();
+        IMXMLData mxmlData = attribute.getParent().getParent();
         MXMLDialect mxmlDialect = mxmlData.getMXMLDialect();
         String languageURI = mxmlDialect.getLanguageNamespace();
 
@@ -514,14 +514,14 @@ public abstract class MXMLNodeBase exten
      * @param unit An {@code MXMLUnitData} object representing the content unit.
      */
     private void processContentUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                    MXMLUnitData unit,
+                                    IMXMLUnitData unit,
                                     MXMLNodeInfo info)
     {
         if (unit instanceof IMXMLTagData)
             processChildTag(builder, tag, (IMXMLTagData)unit, info);
 
-        else if (unit instanceof MXMLTextData)
-            processChildTextUnit(builder, tag, (MXMLTextData)unit, info);
+        else if (unit instanceof IMXMLTextData)
+            processChildTextUnit(builder, tag, (IMXMLTextData)unit, info);
     }
 
     /**
@@ -559,7 +559,7 @@ public abstract class MXMLNodeBase exten
      * Subclasses do not need to override this method so it is private.
      */
     private void processChildTextUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                      MXMLTextData text,
+                                      IMXMLTextData text,
                                       MXMLNodeInfo info)
     {
         switch (text.getTextType())
@@ -606,7 +606,7 @@ public abstract class MXMLNodeBase exten
      * unit.
      */
     protected void processChildWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                              MXMLTextData text,
+                                              IMXMLTextData text,
                                               MXMLNodeInfo info)
     {
     }
@@ -624,7 +624,7 @@ public abstract class MXMLNodeBase exten
      * unit.
      */
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         ICompilerProblem problem = new MXMLUnexpectedTextProblem(text);
@@ -633,7 +633,7 @@ public abstract class MXMLNodeBase exten
 
     /**
      * Processes all the children of the given {@link IMXMLTagData} unit that are
-     * {@link MXMLTextData} nodes. Each node will be processes separately, in
+     * {@link IMXMLTextData} nodes. Each node will be processes separately, in
      * the order in which the appear in the document.
      * <p>
      * This method is only used by MXML AST building. To parse an ActionScript
@@ -641,7 +641,7 @@ public abstract class MXMLNodeBase exten
      * 
      * @param tag the {@link IMXMLTagData} to process
      * @return a {@link List} of {@link ScopedBlockNode}s for each
-     * {@link MXMLTextData} we encountered.
+     * {@link IMXMLTextData} we encountered.
      */
     public static List<ScopedBlockNode> processUnitAsAS(
             MXMLTreeBuilder builder,
@@ -653,11 +653,11 @@ public abstract class MXMLNodeBase exten
     {
         assert buildOrReconnect == PostProcessStep.POPULATE_SCOPE || buildOrReconnect == PostProcessStep.RECONNECT_DEFINITIONS;
         List<ScopedBlockNode> nodes = new ArrayList<ScopedBlockNode>(2);
-        for (MXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
         {
-            if (unit instanceof MXMLTextData)
+            if (unit instanceof IMXMLTextData)
             {
-                final MXMLTextData mxmlTextData = (MXMLTextData)unit;
+                final IMXMLTextData mxmlTextData = (IMXMLTextData)unit;
                 if (mxmlTextData.getTextType() != TextType.WHITESPACE)
                 {
                     final Workspace workspace = builder.getWorkspace();
@@ -728,7 +728,7 @@ public abstract class MXMLNodeBase exten
      * 
      * @param unit The MXML unit from which this node was created.
      */
-    protected void setLocation(MXMLUnitData unit)
+    protected void setLocation(IMXMLUnitData unit)
     {
         String sourcePath = unit.getSourcePath();
         int start = unit.getAbsoluteStart();
@@ -771,19 +771,19 @@ public abstract class MXMLNodeBase exten
      * 
      * @param units A list of MXML content units.
      */
-    protected void setLocation(MXMLTreeBuilder builder, List<MXMLUnitData> units)
+    protected void setLocation(MXMLTreeBuilder builder, List<IMXMLUnitData> units)
     {
         int n = units.size();
 
-        MXMLUnitData firstUnit = units.get(0);
-        MXMLUnitData lastUnit = units.get(n - 1);
+        IMXMLUnitData firstUnit = units.get(0);
+        IMXMLUnitData lastUnit = units.get(n - 1);
 
         // we only store the open tags in the units
         // and the end offset should be the end of the last close tag
         // check this here and fetch the end tag if the last tag is an open and non-empty tag
         if (lastUnit instanceof IMXMLTagData && lastUnit.isOpenAndNotEmptyTag())
         {
-            MXMLUnitData endTag = (MXMLUnitData)((IMXMLTagData)lastUnit).findMatchingEndTag();
+            IMXMLUnitData endTag = (IMXMLUnitData)((IMXMLTagData)lastUnit).findMatchingEndTag();
             if (endTag != null)
                 lastUnit = endTag;
         }
@@ -804,7 +804,7 @@ public abstract class MXMLNodeBase exten
      * processing.
      */
     protected void accumulateTextFragments(MXMLTreeBuilder builder,
-                                           MXMLTextData text,
+                                           IMXMLTextData text,
                                            MXMLNodeInfo info)
     {
         Collection<ICompilerProblem> problems = builder.getProblems();

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPrivateNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPrivateNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPrivateNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPrivateNode.java Fri Mar  8 08:29:30 2013
@@ -22,7 +22,7 @@ package org.apache.flex.compiler.interna
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLLanguageConstants;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.mxml.IMXMLPrivateNode;
 
@@ -63,7 +63,7 @@ class MXMLPrivateNode extends MXMLNodeBa
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text, MXMLNodeInfo info)
+                                                 IMXMLTextData text, MXMLNodeInfo info)
     {
         // Allow child text, but ignore it.
     }

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNode.java Fri Mar  8 08:29:30 2013
@@ -38,8 +38,8 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLUnresolvedTagProblem;
 import org.apache.flex.compiler.tree.ASTNodeID;
@@ -261,7 +261,7 @@ class MXMLPropertySpecifierNode extends 
      */
     @Override
     protected void initializeFromText(MXMLTreeBuilder builder,
-                                      MXMLTextData text,
+                                      IMXMLTextData text,
                                       MXMLNodeInfo info)
     {
         super.initializeFromText(builder, text, info);
@@ -273,7 +273,7 @@ class MXMLPropertySpecifierNode extends 
     }
 
     void initializeDefaultProperty(MXMLTreeBuilder builder, IVariableDefinition defaultPropertyDefinition,
-                                   List<MXMLUnitData> contentUnits)
+                                   List<IMXMLUnitData> contentUnits)
     {
         FlexProject project = builder.getProject();
 
@@ -379,7 +379,7 @@ class MXMLPropertySpecifierNode extends 
      */
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         accumulateTextFragments(builder, text, info);

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLScriptNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLScriptNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLScriptNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLScriptNode.java Fri Mar  8 08:29:30 2013
@@ -43,8 +43,8 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.mxml.IMXMLLanguageConstants;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
 import org.apache.flex.compiler.tree.mxml.IMXMLScriptNode;
@@ -175,7 +175,7 @@ class MXMLScriptNode extends MXMLNodeBas
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         info.hasDualContent = true;
@@ -213,11 +213,11 @@ class MXMLScriptNode extends MXMLNodeBas
         {
             // parse inline ActionScript
             final List<ScopedBlockNode> scriptNodes = new ArrayList<ScopedBlockNode>();
-            for (MXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+            for (IMXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
             {
-                if (unit instanceof MXMLTextData)
+                if (unit instanceof IMXMLTextData)
                 {
-                    final MXMLTextData mxmlTextData = (MXMLTextData)unit;
+                    final IMXMLTextData mxmlTextData = (IMXMLTextData)unit;
                     String text = mxmlTextData.getCompilableText();
                     if (!mxmlDialect.isWhitespace(text))
                     {

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLSpecifierNodeBase.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLSpecifierNodeBase.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLSpecifierNodeBase.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLSpecifierNodeBase.java Fri Mar  8 08:29:30 2013
@@ -22,7 +22,7 @@ package org.apache.flex.compiler.interna
 import org.apache.flex.compiler.definitions.IDefinition;
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.tree.mxml.IMXMLSpecifierNode;
 
 /**
@@ -167,7 +167,7 @@ abstract class MXMLSpecifierNodeBase ext
      * node start and end offset from local to absolute offsets.
      */
     protected void initializeFromText(MXMLTreeBuilder builder,
-                                      MXMLTextData text,
+                                      IMXMLTextData text,
                                       MXMLNodeInfo info)
     {
         setLocation(text);

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLStyleNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLStyleNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLStyleNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLStyleNode.java Fri Mar  8 08:29:30 2013
@@ -30,7 +30,7 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.mxml.IMXMLLanguageConstants;
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.problems.MXMLDualContentProblem;
 import org.apache.flex.compiler.tree.ASTNodeID;
@@ -124,7 +124,7 @@ class MXMLStyleNode extends MXMLNodeBase
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                                 MXMLTextData text,
+                                                 IMXMLTextData text,
                                                  MXMLNodeInfo info)
     {
         info.hasDualContent = true;

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLXMLListNode.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLXMLListNode.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLXMLListNode.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/MXMLXMLListNode.java Fri Mar  8 08:29:30 2013
@@ -22,7 +22,7 @@ package org.apache.flex.compiler.interna
 import org.apache.flex.compiler.constants.IASLanguageConstants;
 import org.apache.flex.compiler.internal.tree.as.NodeBase;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
+import org.apache.flex.compiler.mxml.IMXMLTextData;
 import org.apache.flex.compiler.problems.MXMLXMLListMixedContentProblem;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.mxml.IMXMLXMLListNode;
@@ -83,7 +83,7 @@ class MXMLXMLListNode extends MXMLInstan
 
     @Override
     protected void processChildNonWhitespaceUnit(MXMLTreeBuilder builder, IMXMLTagData tag,
-                                      MXMLTextData text,
+                                      IMXMLTextData text,
                                       MXMLNodeInfo info)
     {
         builder.addProblem(new MXMLXMLListMixedContentProblem(tag));

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/XMLBuilder.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/XMLBuilder.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/XMLBuilder.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/internal/tree/mxml/XMLBuilder.java Fri Mar  8 08:29:30 2013
@@ -29,8 +29,9 @@ import org.apache.flex.compiler.internal
 import org.apache.flex.compiler.mxml.IMXMLTagAttributeData;
 import org.apache.flex.compiler.mxml.IMXMLTagData;
 import org.apache.flex.compiler.mxml.IMXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLTextData;
-import org.apache.flex.compiler.mxml.MXMLUnitData;
+import org.apache.flex.compiler.mxml.IMXMLTextData.TextType;
+import org.apache.flex.compiler.mxml.IMXMLUnitData;
+import org.apache.flex.compiler.tree.mxml.IMXMLBindingNode;
 import org.apache.flex.compiler.tree.mxml.IMXMLSingleDataBindingNode;
 
 import java.io.StringWriter;
@@ -74,7 +75,7 @@ class XMLBuilder
      */
     Set<String> referencedPrefixes = new HashSet<String>();
 
-    private List<MXMLBindingNode> databindings = new ArrayList<MXMLBindingNode>();
+    private List<IMXMLBindingNode> databindings = new ArrayList<IMXMLBindingNode>();
 
     /**
      * Process an MXMLTagData - this will write a String representation of the
@@ -115,7 +116,7 @@ class XMLBuilder
         }
 
         StringWriter childrenSW = new StringWriter();
-        for (MXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
+        for (IMXMLUnitData unit = tag.getFirstChildUnit(); unit != null; unit = unit.getNextSiblingUnit())
         {
             processNode(unit, childrenSW);
         }
@@ -188,7 +189,7 @@ class XMLBuilder
     }
 
     /**
-     * Process an MXMLTextData - this will write a String representation of the
+     * Process an IMXMLTextData - this will write a String representation of the
      * tag into the StringWriter passed in. This will strip out any databinding
      * expressions from the String. This will write out only CDATA and TEXT
      * TextDatas Other kinds of text data are not output into the resulting XML
@@ -197,7 +198,7 @@ class XMLBuilder
      * those are (these are the expressions to set the value in the XML object
      * when the TODO: PropertyChange event fires).
      */
-    void processNode(MXMLTextData tag,
+    void processNode(IMXMLTextData tag,
                      StringWriter sw)
     {
         switch (tag.getTextType())
@@ -237,14 +238,14 @@ class XMLBuilder
 
     /**
      * Generate an MXMLBindingNode to represent the binding expression in the
-     * MXMLTextData passed in.
+     * IMXMLTextData passed in.
      * 
      * @param tag the TextData that is the destination of the binding expression
      * @param dbnode the DataBinding Node that contains the source expression
      * @return An MXMLBindingNode with expressions for the source and
      * destination
      */
-    private MXMLBindingNode generateBindingNode(MXMLTextData tag, IMXMLSingleDataBindingNode dbnode)
+    private MXMLBindingNode generateBindingNode(IMXMLTextData tag, IMXMLSingleDataBindingNode dbnode)
     {
         return generateBindingNode(tag, null, dbnode);
     }
@@ -275,7 +276,7 @@ class XMLBuilder
      * @param dbnode The DataBindingNode that contains the source expression
      * @return An MXMLBindingNode with the source and destination expressions
      */
-    private MXMLBindingNode generateBindingNode(MXMLUnitData tag, IMXMLTagAttributeData attr, IMXMLSingleDataBindingNode dbnode)
+    private MXMLBindingNode generateBindingNode(IMXMLUnitData tag, IMXMLTagAttributeData attr, IMXMLSingleDataBindingNode dbnode)
     {
         // Build the destination expression
         InstructionListNode destExpr = getTargetExprNode(tag, attr);
@@ -299,7 +300,7 @@ class XMLBuilder
      * @return An IMXMLDataBindingNode that was parsed from text, or null if no
      * databinding expression was found
      */
-    private IMXMLSingleDataBindingNode parseBindingExpression(MXMLTextData text)
+    private IMXMLSingleDataBindingNode parseBindingExpression(IMXMLTextData text)
     {
         Object o = MXMLDataBindingParser.parse(parent, text, text.getFragments(builder.getProblems()), builder.getProblems(), builder.getWorkspace(), builder.getMXMLDialect());
         if (o instanceof IMXMLSingleDataBindingNode)
@@ -336,7 +337,7 @@ class XMLBuilder
      * @return An InstructionListNode that can be used as the destination
      * expression for an MXMLBindingNode
      */
-    private InstructionListNode getTargetExprNode(MXMLUnitData data, IMXMLTagAttributeData attr)
+    private InstructionListNode getTargetExprNode(IMXMLUnitData data, IMXMLTagAttributeData attr)
     {
         InstructionListNode expr = null;
         InstructionList il = getTargetInstructions(data, attr);
@@ -361,10 +362,10 @@ class XMLBuilder
      * @return An InstructionList that contains the instructions to set the
      * target expression
      */
-    private InstructionList getTargetInstructions(MXMLUnitData data, IMXMLTagAttributeData attr)
+    private InstructionList getTargetInstructions(IMXMLUnitData data, IMXMLTagAttributeData attr)
     {
-        MXMLUnitData d = data;
-        Stack<MXMLUnitData> parentStack = new Stack<MXMLUnitData>();
+        IMXMLUnitData d = data;
+        Stack<IMXMLUnitData> parentStack = new Stack<IMXMLUnitData>();
 
         if (isOnlyTextChild(d))
         {
@@ -372,7 +373,7 @@ class XMLBuilder
             // as that is what we'll be setting
             d = d.getParentUnitData();
         }
-        MXMLUnitData target = d;
+        IMXMLUnitData target = d;
 
         // push parents onto a stack, so we can walk down from the parent later
         while (d != null)
@@ -389,7 +390,7 @@ class XMLBuilder
         // except for the last one, which is the one we're targeting
         while (parentStack.size() > 1)
         {
-            MXMLUnitData unitData = parentStack.pop();
+            IMXMLUnitData unitData = parentStack.pop();
             if (unitData instanceof IMXMLTagData)
             {
                 generateGetInstructions(il, (IMXMLTagData)unitData);
@@ -412,10 +413,10 @@ class XMLBuilder
                 generateSetInstructions(il, attr);
             }
         }
-        else if (target instanceof MXMLTextData)
+        else if (target instanceof IMXMLTextData)
         {
             // We're targeting a TextData
-            generateSetInstructions(il, (MXMLTextData)target);
+            generateSetInstructions(il, (IMXMLTextData)target);
         }
 
         return il;
@@ -496,7 +497,7 @@ class XMLBuilder
      * code will be in a function that has 1 argument, which is the new value,
      * so we know it's passed in as the first local.
      */
-    private void generateSetInstructions(InstructionList il, MXMLTextData text)
+    private void generateSetInstructions(InstructionList il, IMXMLTextData text)
     {
         il.addInstruction(ABCConstants.OP_callproperty, new Object[] {new Name("text"), 0});
         il.addInstruction(ABCConstants.OP_getlocal1);
@@ -528,20 +529,20 @@ class XMLBuilder
      * Get the index of a text data. Grabs the parent, and iterates it's
      * children to find out what the index of the text data passed in should be
      */
-    private int getIndexOfText(MXMLTextData text)
+    private int getIndexOfText(IMXMLTextData text)
     {
-        MXMLUnitData parent = text.getParentUnitData();
+        IMXMLUnitData parent = text.getParentUnitData();
 
         IMXMLTagData parentTag = parent instanceof IMXMLTagData ? (IMXMLTagData)parent : null;
         int index = 0;
 
         if (parentTag != null)
         {
-            for (MXMLUnitData d = parentTag.getFirstChildUnit(); d != null; d = d.getNextSiblingUnit())
+            for (IMXMLUnitData d = parentTag.getFirstChildUnit(); d != null; d = d.getNextSiblingUnit())
             {
                 if (d == text)
                     break;
-                else if (d instanceof MXMLTextData && ((MXMLTextData)d).getTextType() == IMXMLTextData.TextType.CDATA)
+                else if (d instanceof IMXMLTextData && ((IMXMLTextData)d).getTextType() == TextType.CDATA)
                     ++index;
             }
         }
@@ -553,11 +554,11 @@ class XMLBuilder
      * MXMLTagData This implies special, different processing from normal Text
      * Datas.
      */
-    private boolean isOnlyTextChild(MXMLUnitData child)
+    private boolean isOnlyTextChild(IMXMLUnitData child)
     {
-        if (child instanceof MXMLTextData && ((MXMLTextData)child).getTextType() == IMXMLTextData.TextType.TEXT)
+        if (child instanceof IMXMLTextData && ((IMXMLTextData)child).getTextType() == TextType.TEXT)
         {
-            MXMLUnitData p = child.getParentUnitData();
+            IMXMLUnitData p = child.getParentUnitData();
             IMXMLTagData parent = p instanceof IMXMLTagData ? (IMXMLTagData)p : null;
             if (parent != null)
             {
@@ -688,15 +689,15 @@ class XMLBuilder
         return Collections.emptyList();
     }
 
-    void processNode(MXMLUnitData node, StringWriter sw)
+    void processNode(IMXMLUnitData node, StringWriter sw)
     {
         if (node instanceof IMXMLTagData)
             processNode((IMXMLTagData)node, sw);
-        else if (node instanceof MXMLTextData)
-            processNode((MXMLTextData)node, sw);
+        else if (node instanceof IMXMLTextData)
+            processNode((IMXMLTextData)node, sw);
     }
 
-    public List<MXMLBindingNode> getDatabindings()
+    public List<IMXMLBindingNode> getDatabindings()
     {
         return databindings;
     }

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLData.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLData.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLData.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLData.java Fri Mar  8 08:29:30 2013
@@ -21,13 +21,18 @@ package org.apache.flex.compiler.mxml;
 
 import java.util.Collection;
 
+import org.apache.flex.compiler.common.PrefixMap;
 import org.apache.flex.compiler.filespecs.IFileSpecification;
 import org.apache.flex.compiler.internal.mxml.MXMLDialect;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 
 /**
- * Encapsulation of an MXML file, with individual units for each open tag, close tag,
- * and block of text.
+ * Represents the syntax, but not the semantics, of an MXML file.
+ * <p>
+ * The file is represented as a sequence of "units",
+ * one for each open tag, close tag, and block of text.
+ * <p>
+ * No meaning is assigned to any tag, attribute, or text.
  */
 public interface IMXMLData
 {
@@ -51,6 +56,13 @@ public interface IMXMLData
      * @return An {@code MXMLDialect}.
      */
     MXMLDialect getMXMLDialect();
+    
+    /**
+     * Get the MXML units found in this {@link IMXMLData}.
+     * 
+     * @return An array of the {@link IMXMLUnitData}.
+     */
+    IMXMLUnitData[] getUnits();
 
     /**
      * Gets the number of MXML "units".
@@ -68,7 +80,7 @@ public interface IMXMLData
      * @param i The index into the list of MXML units.
      * @return The specified MXML unit, or <code>null</code> if the index is out of range.
      */
-    MXMLUnitData getUnit(int i);
+    IMXMLUnitData getUnit(int i);
     
     /**
      * Gets the compiler problems found during the creation of this {@code MXMLData}.
@@ -88,4 +100,22 @@ public interface IMXMLData
      * @return An {@code MXMLTagData} for the root tag. 
      */
     IMXMLTagData getRootTag();
+    
+    /**
+     * Similar to findTagContainingOffset, but if the unit inside offset is a text node,
+     * will return the surrounding tag instead.
+     *
+     * @param offset offset
+     * @return the containing/surrounding tag, or null if one can not be found
+     */
+    IMXMLTagData findTagOrSurroundingTagContainingOffset(int offset);
+    
+    /**
+     * Returns the PrefixMap for the given {@link IMXMLTagData}.
+     * This will not walk up the chain of prefix maps if this tag does not physically have uri->namespace mappings.
+     * 
+     * @param data the {@link IMXMLTagData} to find the {@link PrefixMap} for
+     * @return a {@link PrefixMap} or null
+     */
+    PrefixMap getPrefixMapForData(IMXMLTagData data);
 }

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingData.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingData.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingData.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingData.java Fri Mar  8 08:29:30 2013
@@ -22,12 +22,12 @@ package org.apache.flex.compiler.mxml;
 import org.apache.flex.compiler.parsing.IASToken;
 
 /**
- * Represents an MXML databinding expression
+ * Represents a text unit which is an MXML databinding expression.
  */
-public interface IMXMLDatabindingData extends IMXMLTextData
+public interface IMXMLDatabindingData extends IMXMLUnitData
 {
     /**
-     * Returns the tokens that are contained within this databinding expression
+     * Returns the tokens that are contained within this databinding expression.
      */
 	IASToken[] getDatabindingContent();
 }

Added: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java?rev=1454275&view=auto
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java (added)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java Fri Mar  8 08:29:30 2013
@@ -0,0 +1,33 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.mxml;
+
+import org.apache.flex.compiler.parsing.IASToken;
+
+/**
+ * Represents an attribute value which is an MXML databinding expression.
+ */
+public interface IMXMLDatabindingValue extends IMXMLTagAttributeValue
+{
+    /**
+     * Returns the tokens that are contained within this databinding expression.
+     */
+    IASToken[] getDatabindingContent();
+}

Propchange: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLDatabindingValue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityData.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityData.java?rev=1454275&r1=1454274&r2=1454275&view=diff
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityData.java (original)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityData.java Fri Mar  8 08:29:30 2013
@@ -20,13 +20,14 @@
 package org.apache.flex.compiler.mxml;
 
 /**
- * Represents an MXML entity encountered in MXML source
+ * Represents a text unit that is an XML entity.
  */
-public interface IMXMLEntityData
+public interface IMXMLEntityData extends IMXMLTextData
 {
 	/**
-	 * Returns the in its decided form
-	 * @return the decoded entity, or null if a problem occurs
+	 * Returns the entity in its decoded form.
+	 * 
+	 * @return The decoded entity, or <code>null</code> if a problem occurs.
 	 */
 	String getDecodedContent();
 }
\ No newline at end of file

Added: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java?rev=1454275&view=auto
==============================================================================
--- flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java (added)
+++ flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java Fri Mar  8 08:29:30 2013
@@ -0,0 +1,33 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.mxml;
+
+/**
+ * Represents an attribute value which is an XML entity.
+ */
+public interface IMXMLEntityValue extends IMXMLTagAttributeValue
+{
+    /**
+     * Returns the entity in its decoded form.
+     * 
+     * @return The decoded entity, or <code>null</code> if a problem occurs.
+     */
+    String getDecodedContent();
+}

Propchange: flex/falcon/trunk/compiler/src/org/apache/flex/compiler/mxml/IMXMLEntityValue.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message