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.core.problems.BugHappened;
public class NestedSelectorAppender extends SelectorPart {
public NestedSelectorAppender(HiddenTokenAwareTree underlyingStructure, SelectorCombinator leadingCombinator) {
super(underlyingStructure, leadingCombinator);
}
@Override
@NotAstProperty
public List<ASTCssNode> getChilds() {
return super.getChilds();
}
public boolean isDirectlyAfter() {
return !hasLeadingCombinator();
}
@Override
public ASTCssNodeType getType() {
return ASTCssNodeType.NESTED_SELECTOR_APPENDER;
}
@Override
public NestedSelectorAppender clone() {
return (NestedSelectorAppender)super.clone();
}
public boolean isAppender() {
return true;
}
@Override
public void setParent(ASTCssNode parent) {
if (parent!=null && !(parent instanceof Selector))
throw new BugHappened("Nested selector appender must belong to selector.", this);
super.setParent(parent);
}
public Selector getParentAsSelector() {
return (Selector) super.getParent();
}
//FIXME (now) proper toString
@Override
public String toString() {
StringBuilder builder = new StringBuilder("\"");
if (!isDirectlyAfter())
builder.append(" ");
builder.append("&");
builder.append("\"");
return builder.toString();
}
}