package org.appfuse.webapp.form;
import java.io.Serializable;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
import org.apache.struts.validator.ValidatorForm;
public class BaseForm extends ValidatorForm implements Serializable {
public String toString()
{
StringBuffer results = new StringBuffer();
results.append(getClass().getName() + "\n");
results.append(getClassAsString(getClass().getSuperclass()));
results.append(getClassAsString(getClass()));
return results.toString();
}
private StringBuffer getClassAsString(Class clazz) {
StringBuffer results = new StringBuffer();
Field[] fields = clazz.getDeclaredFields();
try {
AccessibleObject.setAccessible(fields, true);
for (int i = 0; i < fields.length; i++) {
results.append("\t" + fields[i].getName() + "=" +
fields[i].get(this) + "\n");
}
} catch (Exception e) {
}
return results;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
String parameter = mapping.getParameter();
if( parameter != null ) {
String method = request.getParameter(parameter);
MessageResources resources =
(MessageResources) request.getAttribute(Globals.MESSAGES_KEY);
String cancel = resources.getMessage("button.cancel");
String goBack = resources.getMessage("button.goBack");
if (method != null && method.equalsIgnoreCase(cancel)
|| method.equalsIgnoreCase(goBack)) {
return null;
}
}
return super.validate(mapping, request);
}
}