package com.github.sommeri.less4j.core.ast; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import com.github.sommeri.less4j.core.ast.annotations.NotAstProperty; import com.github.sommeri.less4j.core.parser.HiddenTokenAwareTree; public class SupportsLogicalOperator extends ASTCssNode implements Cloneable { private Operator operator; public SupportsLogicalOperator(HiddenTokenAwareTree underlyingStructure, Operator operator) { super(underlyingStructure); this.operator = operator; } public Operator getOperator() { return operator; } public void setOperator(Operator operator) { this.operator = operator; } public boolean isFaulty() { return operator==null; } @Override public ASTCssNodeType getType() { return ASTCssNodeType.SUPPORTS_LOGICAL_OPERATOR; } @Override @NotAstProperty public List<? extends ASTCssNode> getChilds() { return Collections.emptyList(); } public enum Operator { AND("and"), OR("or"); private final String symbol; private Operator(String symbol) { this.symbol = symbol; } public String getSymbol() { return symbol; } public static Map<String, Operator> getSymbolsMap() { Map<String, Operator> result = new HashMap<String, Operator>(); for (Operator operator : values()) { result.put(operator.getSymbol(), operator); } return result; } } @Override public SupportsLogicalOperator clone() { return (SupportsLogicalOperator) super.clone(); } @Override public String toString() { return "" + operator.getSymbol(); } }