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 abstract class AbstractVariableDeclaration extends ASTCssNode { private Variable variable; private Expression value; public AbstractVariableDeclaration(AbstractVariableDeclaration copy) { this(copy.getUnderlyingStructure(), copy.getVariable(), copy.getValue()); } public AbstractVariableDeclaration(HiddenTokenAwareTree underlyingStructure, Variable variable, Expression value) { super(underlyingStructure); this.variable = variable; this.value = value; } public Variable getVariable() { return variable; } public void setVariable(Variable variable) { this.variable = variable; } public Expression getValue() { return value; } public void setValue(Expression value) { this.value = value; } @NotAstProperty public boolean isCollector() { return getVariable().isCollector(); } @NotAstProperty public void setCollector(boolean collector) { getVariable().setCollector(collector); } @Override @NotAstProperty public List<? extends ASTCssNode> getChilds() { return ArraysUtils.asNonNullList(variable, value); } @Override public String toString() { return "" +variable + ": " + value; } @Override public AbstractVariableDeclaration clone() { AbstractVariableDeclaration clone = (AbstractVariableDeclaration) super.clone(); clone.variable = variable==null? null : variable.clone(); clone.value = value==null? null : value.clone(); clone.configureParentToAllChilds(); return clone; } }