package er.extensions.components.conditionals;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOElement;
import com.webobjects.appserver.WORequest;
import com.webobjects.appserver.WOResponse;
import com.webobjects.appserver._private.WODynamicGroup;
import com.webobjects.foundation.NSDictionary;
/**
* ERXElse can be used like a Java "else" after a preceding conditional.
*
* @author mschrag
*/
public class ERXElse extends WODynamicGroup {
public ERXElse(String s, NSDictionary nsdictionary, WOElement woelement) {
super(s, nsdictionary, woelement);
}
@Override
public String toString() {
return "<ERXElse>";
}
public static boolean lastConditionChecked() {
Boolean lastCondition = ERXWOConditional.lastCondition();
if (lastCondition == null) {
throw new IllegalStateException("You attempted to use an ERXElse without a preceding conditional.");
}
return lastCondition.booleanValue();
}
@Override
public void takeValuesFromRequest(WORequest worequest, WOContext wocontext) {
if (!ERXElse.lastConditionChecked()) {
super.takeValuesFromRequest(worequest, wocontext);
ERXWOConditional.setLastCondition(null);
}
}
@Override
public WOActionResults invokeAction(WORequest worequest, WOContext wocontext) {
WOActionResults results = null;
if (!ERXElse.lastConditionChecked()) {
results = super.invokeAction(worequest, wocontext);
ERXWOConditional.setLastCondition(null);
}
return results;
}
@Override
public void appendToResponse(WOResponse woresponse, WOContext wocontext) {
if (!ERXElse.lastConditionChecked()) {
super.appendToResponse(woresponse, wocontext);
ERXWOConditional.setLastCondition(null);
}
}
}