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 UnknownAtRule extends Directive { private String name; private List<Expression> names = new ArrayList<Expression>(); private GeneralBody body; private SyntaxOnlyElement semicolon; public UnknownAtRule(HiddenTokenAwareTree token, String name) { super(token); this.name = name; } public GeneralBody getBody() { return body; } public void setBody(GeneralBody body) { this.body = body; } public SyntaxOnlyElement getSemicolon() { return semicolon; } public void setSemicolon(SyntaxOnlyElement semicolon) { this.semicolon = semicolon; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Expression> getNames() { return names; } @Override @NotAstProperty public List<ASTCssNode> getChilds() { List<ASTCssNode> childs = new ArrayList<ASTCssNode>(names); ArraysUtils.addIfNonNull(childs, body, semicolon); return childs; } @Override public ASTCssNodeType getType() { return ASTCssNodeType.UNKNOWN_AT_RULE; } @Override public UnknownAtRule clone() { UnknownAtRule result = (UnknownAtRule) super.clone(); result.names = ArraysUtils.deeplyClonedList(names); result.body = body==null? null : body.clone(); result.semicolon = semicolon==null? null : semicolon.clone(); result.configureParentToAllChilds(); return result; } public void addNames(List<Expression> names) { this.names.addAll(names); } }