You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/04/11 16:00:06 UTC

[39/50] git commit: [flex-falcon] [refs/heads/feature/maven-migration] - compiler.jx: similar to Language, the XML require is now inserted in the postProcess() method of JSFlexJSEmitter

compiler.jx: similar to Language, the XML require is now inserted in the postProcess() method of JSFlexJSEmitter


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

Branch: refs/heads/feature/maven-migration
Commit: 239f935f2a0b35c6d61bc0435e1ea478b6de8784
Parents: 5fc4bfc
Author: Josh Tynjala <jo...@apache.org>
Authored: Thu Apr 7 16:37:55 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Thu Apr 7 16:37:55 2016 -0700

----------------------------------------------------------------------
 .../codegen/js/flexjs/JSFlexJSEmitter.java      | 36 +++++++++-
 .../mxml/flexjs/MXMLFlexJSPublisher.java        | 70 --------------------
 2 files changed, 33 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/239f935f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index 64d3a29..f23f83a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -144,6 +144,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
     	String[] lines = output.split("\n");
     	ArrayList<String> finalLines = new ArrayList<String>();
         boolean foundLanguage = false;
+        boolean foundXML = false;
     	boolean sawRequires = false;
     	boolean stillSearching = true;
         int addIndex = -1;
@@ -168,10 +169,14 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
                     addIndex = -1;
 	                int c2 = line.indexOf(")");
 	                String s = line.substring(c + 14, c2 - 1);
-                    if(s.equals(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken()))
+                    if (s.equals(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken()))
                     {
                         foundLanguage = true;
                     }
+                    else if (s.equals(IASLanguageConstants.XML))
+                    {
+                        foundXML = true;
+                    }
 	    			sawRequires = true;
 	    			if (!usedNames.contains(s))
                     {
@@ -190,8 +195,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
                     ICompilerProject project = getWalker().getProject();
                     if (project instanceof FlexJSProject)
                     {
-                        boolean needLanguage = ((FlexJSProject) project).needLanguage;
-                        if(needLanguage && !foundLanguage)
+                        FlexJSProject flexJSProject = (FlexJSProject) project;
+                        boolean needLanguage = flexJSProject.needLanguage;
+                        if (needLanguage && !foundLanguage)
                         {
                             StringBuilder appendString = new StringBuilder();
                             appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
@@ -214,6 +220,30 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
                                 addLineToMappings(i);
                             }
                         }
+                        boolean needXML = flexJSProject.needXML;
+                        if (needXML && !foundXML)
+                        {
+                            StringBuilder appendString = new StringBuilder();
+                            appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+                            appendString.append(ASEmitterTokens.PAREN_OPEN.getToken());
+                            appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+                            appendString.append(IASLanguageConstants.XML);
+                            appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+                            appendString.append(ASEmitterTokens.PAREN_CLOSE.getToken());
+                            appendString.append(ASEmitterTokens.SEMICOLON.getToken());
+                            if(addIndex != -1)
+                            {
+                                // if we didn't find other requires, this index
+                                // points to the line after goog.provide
+                                finalLines.add(addIndex, appendString.toString());
+                                addLineToMappings(addIndex);
+                            }
+                            else
+                            {
+                                finalLines.add(appendString.toString());
+                                addLineToMappings(i);
+                            }
+                        }
                     }
                 }
     		}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/239f935f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
index 4dcc1be..dcd1507 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
@@ -279,7 +279,6 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
 
         appendExportSymbol(projectIntermediateJSFilePath, projectName);
         appendEncodedCSS(projectIntermediateJSFilePath, projectName);
-        appendLanguageAndXML(projectIntermediateJSFilePath, projectName);
 
         // if (!subsetGoog)
         // {
@@ -527,75 +526,6 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
         }
     }
 
-    private void appendLanguageAndXML(String path, String projectName) throws IOException
-    {
-        StringBuilder appendString = new StringBuilder();
-        appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
-        appendString.append(ASEmitterTokens.PAREN_OPEN.getToken());
-        appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
-        appendString.append(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
-        appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
-        appendString.append(ASEmitterTokens.PAREN_CLOSE.getToken());
-        appendString.append(ASEmitterTokens.SEMICOLON.getToken());
-        appendString.append("\n");
-
-        String fileData = readCode(new File(path));
-        int reqidx = fileData.indexOf(appendString.toString());
-        if (reqidx == -1 && project.needLanguage)
-        {
-	    	boolean afterProvide = false;
-            reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
-            if (reqidx == -1)
-            {
-            	afterProvide = true;
-                reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
-            }
-            reqidx = fileData.indexOf(";", reqidx);
-            String after = fileData.substring(reqidx + 1);
-            String before = fileData.substring(0, reqidx + 1);
-            if (afterProvide)
-            	before += "\n";
-            String s = before + "\n" + appendString.toString() + after;
-            writeFile(path, s, false);
-        }
-        
-        StringBuilder appendStringXML = new StringBuilder();
-        appendStringXML.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
-        appendStringXML.append(ASEmitterTokens.PAREN_OPEN.getToken());
-        appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
-        appendStringXML.append(IASLanguageConstants.XML);
-        appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
-        appendStringXML.append(ASEmitterTokens.PAREN_CLOSE.getToken());
-        appendStringXML.append(ASEmitterTokens.SEMICOLON.getToken());
-        appendStringXML.append("\n");
-
-        if (project.needXML)
-        {
-	        fileData = readCode(new File(path));
-	        reqidx = fileData.indexOf(appendStringXML.toString());
-	        if (reqidx == -1)
-	        {
-		    	boolean afterProvide = false;
-	            reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
-	            if (reqidx == -1)
-	            {
-	            	afterProvide = true;
-	                reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
-	            }
-	            reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
-	            if (reqidx == -1)
-	                reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
-	            reqidx = fileData.indexOf(";", reqidx);
-	            String after = fileData.substring(reqidx + 1);
-	            String before = fileData.substring(0, reqidx + 1);
-	            if (afterProvide)
-	            	before += "\n";
-	            String s = before + "\n" + appendStringXML.toString() + after;
-	            writeFile(path, s, false);
-	        }
-        }
-    }
-
     protected String readCode(File file)
     {
         String code = "";