Repository: flex-falcon
Updated Branches:
  refs/heads/develop c040b5c88 -> b628a01d0


FLEX-35171 handle child selectors in CSS output generation


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

Branch: refs/heads/develop
Commit: b628a01d0e7a7b2943810e97b163c34fbc224456
Parents: c040b5c
Author: Alex Harui <[email protected]>
Authored: Wed Nov 23 22:03:02 2016 -0800
Committer: Alex Harui <[email protected]>
Committed: Wed Nov 23 22:03:02 2016 -0800

----------------------------------------------------------------------
 .../flex/compiler/internal/css/CSSSelector.java | 24 +++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b628a01d/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java
----------------------------------------------------------------------
diff --git 
a/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java 
b/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java
index edb7c7b..b3290b8 100644
--- 
a/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java
+++ 
b/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java
@@ -102,10 +102,32 @@ public class CSSSelector extends CSSNodeBase implements 
ICSSSelector
             result.append(namespacePrefix).append("|");
         if (elementName != null)
             result.append(elementName);
-        result.append(Joiner.on("").join(conditions));
+        result.append(stringifyConditions(conditions));
         return result.toString();
     }
 
+    public String stringifyConditions(List<ICSSSelectorCondition> conditions)
+    {
+       StringBuilder s = new StringBuilder();
+       int n = conditions.size();
+       if (n == 0) return "";
+       if (n == 1) return conditions.get(0).toString();
+       for (int i = 0; i < n; i++)
+       {
+               ICSSSelectorCondition condition = conditions.get(i);
+               if (condition.getConditionType() == ConditionType.CHILD)
+               {
+                       String prefix = condition.getConditionType().prefix + " 
";
+                       s.insert(0, prefix);
+               }
+               else
+               {
+                       s.append(condition.getConditionType().prefix);
+                       s.append(condition.getValue());
+               }
+       }
+       return s.toString();
+    }
     @Override
     public ICSSCombinator getCombinator()
     {

Reply via email to