Package er.extensions.components.conditionals

Source Code of er.extensions.components.conditionals.ERXElse

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);
    }
  }
}
TOP

Related Classes of er.extensions.components.conditionals.ERXElse

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.