diff options
Diffstat (limited to 'theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java')
-rw-r--r-- | theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java index a8fa87eb0a..e9886e6871 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java @@ -57,19 +57,13 @@ public class RuleNode extends Node implements IVariableNode { } @Override - public String toString() { - String stringValue = value.toString() - + (important ? " !important" : ""); - if (!"".equals(stringValue.trim())) { - stringValue = variable + ": " + stringValue + ";"; - } else { - stringValue = ""; - } + public String printState() { + return buildString(PRINT_STRATEGY); + } - if (comment != null) { - stringValue += comment; - } - return stringValue; + @Override + public String toString() { + return "Rule node [" + buildString(TO_STRING_STRATEGY) + "]"; } public boolean isImportant() { @@ -104,12 +98,12 @@ public class RuleNode extends Node implements IVariableNode { if (value.getParameters() != null) { if (StringUtil.containsVariable(value.getParameters() - .toString(), node.getName())) { + .printState(), node.getName())) { LexicalUnitImpl param = value.getParameters(); while (param != null) { if (param.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE - && param.getValue().toString() - .equals(node.getName())) { + && param.getValueAsString().equals( + node.getName())) { param.replaceValue(node.getExpr()); } param = param.getNextLexicalUnit(); @@ -120,11 +114,9 @@ public class RuleNode extends Node implements IVariableNode { && value.getStringValue().contains(interpolation)) { LexicalUnitImpl current = value; while (current != null) { - if (current.getValue().toString().contains(interpolation)) { + if (current.getValueAsString().contains(interpolation)) { - current.setStringValue(current - .getValue() - .toString() + current.setStringValue(current.getValueAsString() .replaceAll(Pattern.quote(interpolation), node.getExpr().unquotedString())); } @@ -134,7 +126,7 @@ public class RuleNode extends Node implements IVariableNode { LexicalUnitImpl current = value; while (current != null) { if (current.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE - && current.getValue().toString() + && current.getValueAsString() .equals(node.getName())) { current.replaceValue(node.getExpr()); @@ -163,4 +155,21 @@ public class RuleNode extends Node implements IVariableNode { replaceVariables(ScssStylesheet.getVariables()); } } + + private String buildString(BuildStringStrategy strategy) { + String stringValue = strategy.build(value) + + (important ? " !important" : ""); + StringBuilder builder = new StringBuilder(); + if (!"".equals(stringValue.trim())) { + builder.append(variable); + builder.append(": "); + builder.append(stringValue); + builder.append(';'); + } + + if (comment != null) { + builder.append(comment); + } + return builder.toString(); + } } |