package er.extensions.components.conditionals;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOAssociation;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WODynamicElement;
import com.webobjects.appserver.WOElement;
import com.webobjects.appserver.WORequest;
import com.webobjects.appserver.WOResponse;
import com.webobjects.foundation.NSDictionary;
/**
* Contains one case of a {@link ERXWOSwitch}.
*
* @author ak (Java port)
* @author Charles Lloyd
* @binding case
*/
public class ERXWOCase extends WODynamicElement {
protected Object _value;
protected WOElement _children;
public ERXWOCase(String name, NSDictionary<String, WOAssociation> associations, WOElement woelement) {
super(name, associations, woelement);
WOAssociation assoc = associations.objectForKey("case");
if(!assoc.isValueConstant()) {
throw new IllegalStateException("You must bind 'case' to a constant value");
}
_value = assoc.valueInComponent(null);
_children = woelement;
}
public Object caseValue() {
return _value;
}
@Override
public void appendToResponse(WOResponse woresponse, WOContext wocontext) {
_children.appendToResponse(woresponse, wocontext);
}
@Override
public WOActionResults invokeAction(WORequest worequest, WOContext wocontext) {
return _children.invokeAction(worequest, wocontext);
}
@Override
public void takeValuesFromRequest(WORequest worequest, WOContext wocontext) {
_children.takeValuesFromRequest(worequest, wocontext);
}
}