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 Page extends Directive {
private Name name;
private boolean dockedPseudopage = true;
private Name pseudopage;
private GeneralBody body;
public Page(HiddenTokenAwareTree token) {
super(token);
}
public Page(HiddenTokenAwareTree token, Name name, Name pseudopage) {
super(token);
this.name = name;
this.pseudopage = pseudopage;
}
public boolean hasDockedPseudopage() {
return dockedPseudopage;
}
public void setDockedPseudopage(boolean dockedPseudopage) {
this.dockedPseudopage = dockedPseudopage;
}
public Name getName() {
return name;
}
public boolean hasName() {
return getName()!=null;
}
public void setName(Name name) {
this.name = name;
}
public Name getPseudopage() {
return pseudopage;
}
public boolean hasPseudopage() {
return getPseudopage()!=null;
}
public void setPseudopage(Name pseudopage) {
this.pseudopage = pseudopage;
}
public GeneralBody getBody() {
return body;
}
public void setBody(GeneralBody body) {
this.body = body;
}
@Override
@NotAstProperty
public List<ASTCssNode> getChilds() {
return ArraysUtils.asNonNullList((ASTCssNode)name, pseudopage, body);
}
@Override
public ASTCssNodeType getType() {
return ASTCssNodeType.PAGE;
}
@Override
public Page clone() {
Page result = (Page) super.clone();
result.body = body==null? null : body.clone();
result.name = name==null? null : name.clone();
result.pseudopage = pseudopage==null? null : pseudopage.clone();
result.configureParentToAllChilds();
return result;
}
}