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 Nth extends ASTCssNode {
private NumberExpression repeater;
private NumberExpression mod;
private Form form;
public Nth(HiddenTokenAwareTree underlyingStructure, NumberExpression repeater, NumberExpression mod) {
this(underlyingStructure, repeater, mod, Form.STANDARD);
}
public Nth(HiddenTokenAwareTree underlyingStructure, NumberExpression repeater, NumberExpression mod, Form form) {
super(underlyingStructure);
this.repeater = repeater;
this.mod = mod;
this.form = form;
}
public NumberExpression getRepeater() {
return repeater;
}
public NumberExpression getMod() {
return mod;
}
public void setRepeater(NumberExpression repeater) {
this.repeater = repeater;
}
public void setMod(NumberExpression mod) {
this.mod = mod;
}
public Form getForm() {
return form;
}
public void setForm(Form form) {
this.form = form;
}
@Override
public ASTCssNodeType getType() {
return ASTCssNodeType.NTH;
}
@Override
@NotAstProperty
public List<? extends ASTCssNode> getChilds() {
return ArraysUtils.asNonNullList(repeater, mod);
}
public enum Form {
EVEN, ODD, STANDARD;
}
@Override
public Nth clone() {
Nth result = (Nth) super.clone();
result.repeater = repeater==null?null:repeater.clone();
result.mod = mod==null?null:mod.clone();
result.configureParentToAllChilds();
return result;
}
}