package com.github.sommeri.less4j.core.ast; import java.util.ArrayList; 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 SupportsLogicalCondition extends SupportsCondition { private List<SupportsLogicalOperator> logicalOperators = new ArrayList<SupportsLogicalOperator>(); private List<SupportsCondition> conditions = new ArrayList<SupportsCondition>(); public SupportsLogicalCondition(HiddenTokenAwareTree token, SupportsCondition firstCondition) { super(token); conditions.add(firstCondition); } public void addCondition(SupportsLogicalOperator logicalOperator, SupportsCondition condition) { logicalOperators.add(logicalOperator); conditions.add(condition); } public List<SupportsLogicalOperator> getLogicalOperators() { return logicalOperators; } public List<SupportsCondition> getConditions() { return conditions; } @Override @NotAstProperty public List<? extends ASTCssNode> getChilds() { List<ASTCssNode> childs = new ArrayList<ASTCssNode>(logicalOperators); childs.addAll(conditions); return childs; } @Override public ASTCssNodeType getType() { return ASTCssNodeType.SUPPORTS_CONDITION_LOGICAL; } @Override public SupportsLogicalCondition clone() { SupportsLogicalCondition result = (SupportsLogicalCondition) super.clone(); result.logicalOperators = ArraysUtils.deeplyClonedList(logicalOperators); result.conditions = ArraysUtils.deeplyClonedList(conditions); result.configureParentToAllChilds(); return result; } }