package com.floreysoft.jmte.token;
import com.floreysoft.jmte.TemplateContext;
public class ElseToken extends AbstractToken {
public static final String ELSE = "else";
protected IfToken ifToken = null;
@Override
public String getText() {
if (text == null) {
text = ELSE + getIfToken() != null ? "(" + getIfToken().getText()
+ ")" : "";
}
return text;
}
@Override
public Object evaluate(TemplateContext context) {
Boolean evaluated = !(Boolean) getIfToken().evaluate(context);
return evaluated;
}
public void setIfToken(IfToken ifToken) {
this.ifToken = ifToken;
}
public IfToken getIfToken() {
if (ifToken == null) {
throw new IllegalStateException(
"An else token can only be evaluated using an associated if token - which is missing");
}
return ifToken;
}
@Override
public String emit() {
return ELSE;
}
}