com.opensymphony.xwork2.ActionSupport类源码

version : xwork-2.1.0
/*
 * Copyright (c) 2002-2006 by OpenSymphony
 * All rights reserved.
 */
package com.opensymphony.xwork2;


import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;


import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;


/**
 * Provides a default implementation for the most common actions.
 * See the documentation for all the interfaces this class implements for more detailed information.
 */
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {


    protected static Logger LOG = LoggerFactory.getLogger(ActionSupport.class);


    private final transient TextProvider textProvider = new TextProviderFactory().createInstance(getClass(), this);
    private final ValidationAwareSupport validationAware = new ValidationAwareSupport();


    public void setActionErrors(Collection errorMessages) {
        validationAware.setActionErrors(errorMessages);
    }


    public Collection getActionErrors() {
        return validationAware.getActionErrors();
    }


    public void setActionMessages(Collection messages) {
        validationAware.setActionMessages(messages);
    }


    public Collection getActionMessages() {
        return validationAware.getActionMessages();
    }


    /**
     * @deprecated Use {@link #getActionErrors()}.
     */
    public Collection getErrorMessages() {
        return getActionErrors();
    }


    /**
     * @deprecated Use {@link #getFieldErrors()}.
     */
    public Map getErrors() {
        return getFieldErrors();
    }


    public void setFieldErrors(Map errorMap) {
        validationAware.setFieldErrors(errorMap);
    }


    public Map getFieldErrors() {
        return validationAware.getFieldErrors();
    }


    public Locale getLocale() {
        ActionContext ctx = ActionContext.getContext();
        if (ctx != null) {
            return ctx.getLocale();
        } else {
            LOG.debug("Action context not initialized");
            return null;
        }
    }


    public String getText(String aTextName) {
        return textProvider.getText(aTextName);
    }


    public String getText(String aTextName, String defaultValue) {
        return textProvider.getText(aTextName, defaultValue);
    }


    public String getText(String aTextName, String defaultValue, String obj) {
        return textProvider.getText(aTextName, defaultValue, obj);
    }


    public String getText(String aTextName, List args) {
        return textProvider.getText(aTextName, args);
    }


    public String getText(String key, String[] args) {
        return textProvider.getText(key, args);
    }


    public String getText(String aTextName, String defaultValue, List args) {
        return textProvider.getText(aTextName, defaultValue, args);
    }


    public String getText(String key, String defaultValue, String[] args) {
        return textProvider.getText(key, defaultValue, args);
    }


    public String getText(String key, String defaultValue, List args, ValueStack stack) {
        return textProvider.getText(key, defaultValue, args, stack);
    }


    public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
        return textProvider.getText(key, defaultValue, args, stack);
    }


    public ResourceBundle getTexts() {
        return textProvider.getTexts();
    }


    public ResourceBundle getTexts(String aBundleName) {
        return textProvider.getTexts(aBundleName);
    }


    public void addActionError(String anErrorMessage) {
        validationAware.addActionError(anErrorMessage);
    }


    public void addActionMessage(String aMessage) {
        validationAware.addActionMessage(aMessage);
    }


    public void addFieldError(String fieldName, String errorMessage) {
        validationAware.addFieldError(fieldName, errorMessage);
    }


    public String input() throws Exception {
        return INPUT;
    }
    
    public String doDefault() throws Exception {
        return SUCCESS;
    }


    /**
     * A default implementation that does nothing an returns "success".
     * 

* Subclasses should override this method to provide their business logic. *

* See also {@link com.opensymphony.xwork2.Action#execute()}. * * @return returns {@link #SUCCESS} * @throws Exception can be thrown by subclasses. */ public String execute() throws Exception { return SUCCESS; } public boolean hasActionErrors() { return validationAware.hasActionErrors(); } public boolean hasActionMessages() { return validationAware.hasActionMessages(); } public boolean hasErrors() { return validationAware.hasErrors(); } public boolean hasFieldErrors() { return validationAware.hasFieldErrors(); } /** * Clears field errors. Useful for Continuations and other situations * where you might want to clear parts of the state on the same action. */ public void clearFieldErrors() { validationAware.clearFieldErrors(); } /** * Clears action errors. Useful for Continuations and other situations * where you might want to clear parts of the state on the same action. */ public void clearActionErrors() { validationAware.clearActionErrors(); } /** * Clears messages. Useful for Continuations and other situations * where you might want to clear parts of the state on the same action. */ public void clearMessages() { validationAware.clearMessages(); } /** * Clears all errors. Useful for Continuations and other situations * where you might want to clear parts of the state on the same action. */ public void clearErrors() { validationAware.clearErrors(); } /** * Clears all errors and messages. Useful for Continuations and other situations * where you might want to clear parts of the state on the same action. */ public void clearErrorsAndMessages() { validationAware.clearErrorsAndMessages(); } /** * A default implementation that validates nothing. * Subclasses should override this method to provide validations. */ public void validate() { } public Object clone() throws CloneNotSupportedException { return super.clone(); } /** * * Stops the action invocation immediately (by throwing a PauseException) and causes the action invocation to return * the specified result, such as {@link #SUCCESS}, {@link #INPUT}, etc. *

* * The next time this action is invoked (and using the same continuation ID), the method will resume immediately * after where this method was called, with the entire call stack in the execute method restored. *

* * Note: this method can only be called within the {@link #execute()} method. * * * @param result the result to return - the same type of return value in the {@link #execute()} method. */ public void pause(String result) { } }



你可能感兴趣的:(java)