@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> args, ErrorManager errorManager) throws GssFunctionException { CssValueNode functionToEval = args.get(0); SourceCodeLocation sourceCodeLocation = extractSourceCodeLocation(functionToEval); CssJavaExpressionNode result = new CssJavaExpressionNode(functionToEval.getValue(), sourceCodeLocation); return ImmutableList.of((CssValueNode) result); }
@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> args, ErrorManager errorManager) throws GssFunctionException { if (args.size() == 0 || args.size() > 3) { throw new GssFunctionException(getName() + " function takes one, two or three arguments"); } String functionPath = args.get(0).getValue(); String prefix = null; String suffix = null; if (args.size() > 1) { suffix = args.get(1).getValue(); } if (args.size() > 2) { prefix = args.get(2).getValue(); } CssDotPathNode cssDotPathNode = new CssDotPathNode(functionPath, prefix, suffix, args.get(0).getSourceCodeLocation()); return ImmutableList.of((CssValueNode) cssDotPathNode); }
@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> cssValueNodes, ErrorManager errorManager) throws GssFunctionException { CssValueNode functionToEval = cssValueNodes.get(0); String value = functionToEval.getValue(); SourceCodeLocation location = functionToEval.getSourceCodeLocation(); String javaExpression = buildJavaExpression(value, location, errorManager); CssFunctionNode urlNode = buildUrlNode(javaExpression, location); return ImmutableList.<CssValueNode>of(urlNode); }
private CssDeclarationNode buildOverflowDeclaration(SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("overflow", location); CssValueNode valueNode = new CssLiteralNode("hidden", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssDeclarationNode buildWidthDeclaration(String imageResource, SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("width", location); CssValueNode valueNode = new CssDotPathNode(resourceThisPrefix, imageResource + ".getWidth", null, "px", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssDeclarationNode createDeclarationNode(CssPropertyNode propertyNode, CssPropertyValueNode propertyValueNode, SourceCodeLocation location, boolean useAlternate) { CssDeclarationNode replaceNode = new CssDeclarationNode(propertyNode, propertyValueNode); replaceNode.setSourceCodeLocation(location); if (useAlternate) { replaceNode.setComments(ImmutableList.of(new CssCommentNode(ALTERNATE, location))); } return replaceNode; }
private CssDeclarationNode buildHeightDeclaration(String imageResource, SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("height", location); CssValueNode valueNode = new CssDotPathNode(resourceThisPrefix, imageResource + ".getHeight", null, "px", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssFunctionNode buildUrlNode(String javaExpression, SourceCodeLocation location) { CssFunctionNode urlNode = GssFunctions.createUrlNode("", location); CssJavaExpressionNode cssJavaExpressionNode = new CssJavaExpressionNode(javaExpression); CssFunctionArgumentsNode arguments = new CssFunctionArgumentsNode(ImmutableList.<CssValueNode>of(cssJavaExpressionNode)); urlNode.setArguments(arguments); return urlNode; } }
private void setRuntimeCondition(CssJavaExpressionNode condition) { Preconditions.checkState(getType() != Type.ELSE); Preconditions.checkState(getParametersCount() <= 1); this.setParameters(ImmutableList.<CssValueNode>of(condition)); }
private CssDeclarationNode buildBackgroundDeclaration(String imageResource, String repeatText, SourceCodeLocation location) { // build the url function CssFunctionNode urlFunction = new CssFunctionNode(Function.byName("url"), location); CssDotPathNode imageUrl = new CssDotPathNode(resourceThisPrefix, imageResource + ".getSafeUri" + ".asString", null, null, location); CssFunctionArgumentsNode urlFunctionArguments = new CssFunctionArgumentsNode(); urlFunctionArguments.addChildToBack(imageUrl); urlFunction.setArguments(urlFunctionArguments); // build left offset CssDotPathNode left = new CssDotPathNode(resourceThisPrefix, imageResource + ".getLeft", "-", "px", location); // build top offset CssDotPathNode top = new CssDotPathNode(resourceThisPrefix, imageResource + ".getTop", "-", "px", location); // build repeat CssLiteralNode repeat = new CssLiteralNode(repeatText, location); CssPropertyNode propertyNode = new CssPropertyNode("background", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(urlFunction, left, top, repeat)); propertyValueNode.setSourceCodeLocation(location); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> args, ErrorManager errorManager) throws GssFunctionException { CssValueNode functionToEval = args.get(0); SourceCodeLocation sourceCodeLocation = extractSourceCodeLocation(functionToEval); CssJavaExpressionNode result = new CssJavaExpressionNode(functionToEval.getValue(), sourceCodeLocation); return ImmutableList.of((CssValueNode) result); }
@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> cssValueNodes, ErrorManager errorManager) throws GssFunctionException { CssValueNode functionToEval = cssValueNodes.get(0); String value = functionToEval.getValue(); SourceCodeLocation location = functionToEval.getSourceCodeLocation(); String javaExpression = buildJavaExpression(value, location, errorManager); CssFunctionNode urlNode = buildUrlNode(javaExpression, location); return ImmutableList.<CssValueNode>of(urlNode); }
@Override public List<CssValueNode> getCallResultNodes(List<CssValueNode> cssValueNodes, ErrorManager errorManager) throws GssFunctionException { CssValueNode functionToEval = cssValueNodes.get(0); String value = functionToEval.getValue(); SourceCodeLocation location = functionToEval.getSourceCodeLocation(); String javaExpression = buildJavaExpression(value, location, errorManager); CssFunctionNode urlNode = buildUrlNode(javaExpression, location); return ImmutableList.<CssValueNode>of(urlNode); }
private CssFunctionNode buildUrlNode(String javaExpression, SourceCodeLocation location) { CssFunctionNode urlNode = GssFunctions.createUrlNode("", location); CssJavaExpressionNode cssJavaExpressionNode = new CssJavaExpressionNode(javaExpression); CssFunctionArgumentsNode arguments = new CssFunctionArgumentsNode(ImmutableList.<CssValueNode>of(cssJavaExpressionNode)); urlNode.setArguments(arguments); return urlNode; } }
private CssDeclarationNode createDeclarationNode(CssPropertyNode propertyNode, CssPropertyValueNode propertyValueNode, SourceCodeLocation location, boolean useAlternate) { CssDeclarationNode replaceNode = new CssDeclarationNode(propertyNode, propertyValueNode); replaceNode.setSourceCodeLocation(location); if (useAlternate) { replaceNode.setComments(ImmutableList.of(new CssCommentNode(ALTERNATE, location))); } return replaceNode; }
private CssDeclarationNode buildOverflowDeclaration(SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("overflow", location); CssValueNode valueNode = new CssLiteralNode("hidden", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssDeclarationNode buildWidthDeclaration(String imageResource, SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("width", location); CssValueNode valueNode = new CssDotPathNode(resourceThisPrefix, imageResource + ".getWidth", null, "px", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssDeclarationNode buildOverflowDeclaration(SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("overflow", location); CssValueNode valueNode = new CssLiteralNode("hidden", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private CssDeclarationNode buildWidthDeclaration(String imageResource, SourceCodeLocation location) { CssPropertyNode propertyNode = new CssPropertyNode("width", location); CssValueNode valueNode = new CssDotPathNode(resourceThisPrefix, imageResource + ".getWidth", null, "px", location); CssPropertyValueNode propertyValueNode = new CssPropertyValueNode(ImmutableList.of(valueNode)); return createDeclarationNode(propertyNode, propertyValueNode, location, true); }
private void setRuntimeCondition(CssJavaExpressionNode condition) { Preconditions.checkState(getType() != Type.ELSE); Preconditions.checkState(getParametersCount() <= 1); this.setParameters(ImmutableList.<CssValueNode>of(condition)); }