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 SelectorAttribute extends ElementSubsequent { private String name; private SelectorOperator operator; private Expression value; public SelectorAttribute(HiddenTokenAwareTree token, String name) { this(token, name, new SelectorOperator(new HiddenTokenAwareTree(token.getSource()), SelectorOperator.Operator.NONE), null); } public SelectorAttribute(HiddenTokenAwareTree token, String name, SelectorOperator operator, Expression value) { super(token); this.name = name; this.operator = operator; this.value = value; } public String getName() { return name; } public String getFullName() { return getName(); } @Override public void extendName(String extension) { setName(getName() + extension); } public SelectorOperator getOperator() { return operator; } public void setOperator(SelectorOperator operator) { this.operator = operator; } public Expression getValue() { return value; } public void setValue(Expression value) { this.value = value; } public void setName(String name) { this.name = name; } @Override public ASTCssNodeType getType() { return ASTCssNodeType.SELECTOR_ATTRIBUTE; } @Override @NotAstProperty public List<? extends ASTCssNode> getChilds() { return ArraysUtils.asNonNullList(operator, value); } @Override public SelectorAttribute clone() { SelectorAttribute result = (SelectorAttribute) super.clone(); result.operator = operator==null?null:operator.clone(); result.value = value==null?null:value.clone(); result.configureParentToAllChilds(); return result; } @Override public boolean isInterpolated() { return false; } @Override public String toString() { return "[" + name + operator + value + "]"; } }