package com.github.sommeri.less4j.core.ast; import java.util.List; import com.github.sommeri.less4j.core.ast.annotations.NotAstProperty; import com.github.sommeri.less4j.core.parser.HiddenTokenAwareTree; import com.github.sommeri.less4j.utils.ArraysUtils; public class SignedExpression extends Expression { private Expression expression; private Sign sign; public SignedExpression(HiddenTokenAwareTree token, Sign sign, Expression expression) { super(token); this.expression = expression; this.sign = sign; } @Override @NotAstProperty public List<? extends ASTCssNode> getChilds() { return ArraysUtils.asNonNullList(expression); } public Expression getExpression() { return expression; } public void setExpression(Expression expression) { this.expression = expression; } public Sign getSign() { return sign; } public void setSign(Sign sign) { this.sign = sign; } @Override public ASTCssNodeType getType() { return ASTCssNodeType.SIGNED_EXPRESSION; } @Override public String toString() { return "-" +expression; } public enum Sign { PLUS("+"), MINUS("-"); private final String symbol; private Sign(String symbol) { this.symbol = symbol; } public String toSymbol() { return symbol; } } @Override public SignedExpression clone() { SignedExpression result = (SignedExpression) super.clone(); result.expression = expression==null?null:expression.clone(); result.configureParentToAllChilds(); return result; } }