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 Document extends Directive {
private String dialect;
private List<FunctionExpression> urlMatchFunction = new ArrayList<FunctionExpression>();
private GeneralBody body;
public Document(HiddenTokenAwareTree token, String dialect) {
super(token);
this.dialect = dialect;
}
public boolean bubleUpWithoutChanges() {
return false;
}
public GeneralBody getBody() {
return body;
}
public void setBody(GeneralBody body) {
this.body = body;
}
public String getDialect() {
return dialect;
}
public void setDialect(String dialect) {
this.dialect = dialect;
}
public List<FunctionExpression> getUrlMatchFunctions() {
return urlMatchFunction;
}
@Override
@NotAstProperty
public List<ASTCssNode> getChilds() {
List<ASTCssNode> childs = new ArrayList<ASTCssNode>(urlMatchFunction);
childs.add(body);
return childs;
}
@Override
public ASTCssNodeType getType() {
return ASTCssNodeType.DOCUMENT;
}
@Override
public Document clone() {
Document result = (Document) super.clone();
result.urlMatchFunction = ArraysUtils.deeplyClonedList(urlMatchFunction);
result.body = body==null? null : body.clone();
result.configureParentToAllChilds();
return result;
}
public void addUrlMatchFunctions(List<FunctionExpression> urlMatchFunctions) {
this.urlMatchFunction.addAll(urlMatchFunctions);
}
}