package org.apache.struts.config; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; public class ActionConfig implements Serializable { protected boolean configured = false; protected HashMap exceptions = new HashMap(); protected HashMap forwards = new HashMap(); protected ModuleConfig moduleConfig = null; public ModuleConfig getApplicationConfig() { return getModuleConfig(); } public ModuleConfig getModuleConfig() { return this.moduleConfig; } public void setApplicationConfig(ModuleConfig moduleConfig) { setModuleConfig(moduleConfig); } public void setModuleConfig(ModuleConfig moduleConfig) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.moduleConfig = moduleConfig; } protected String attribute = null; public String getAttribute() { if (this.attribute == null) return this.name; return this.attribute; } public void setAttribute(String attribute) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.attribute = attribute; } protected String forward = null; public String getForward() { return this.forward; } public void setForward(String forward) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.forward = forward; } protected String include = null; public String getInclude() { return this.include; } public void setInclude(String include) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.include = include; } protected String input = null; public String getInput() { return this.input; } public void setInput(String input) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.input = input; } protected String multipartClass = null; public String getMultipartClass() { return this.multipartClass; } public void setMultipartClass(String multipartClass) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.multipartClass = multipartClass; } protected String name = null; public String getName() { return this.name; } public void setName(String name) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.name = name; } protected String parameter = null; public String getParameter() { return this.parameter; } public void setParameter(String parameter) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.parameter = parameter; } protected String path = null; public String getPath() { return this.path; } public void setPath(String path) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.path = path; } protected String prefix = null; public String getPrefix() { return this.prefix; } public void setPrefix(String prefix) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.prefix = prefix; } protected String roles = null; public String getRoles() { return this.roles; } public void setRoles(String roles) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.roles = roles; if (roles == null) { this.roleNames = new String[0]; return; } ArrayList list = new ArrayList(); while (true) { int comma = roles.indexOf(','); if (comma < 0) break; list.add(roles.substring(0, comma).trim()); roles = roles.substring(comma + 1); } roles = roles.trim(); if (roles.length() > 0) list.add(roles); this.roleNames = list.toArray(new String[list.size()]); } protected String[] roleNames = new String[0]; public String[] getRoleNames() { return this.roleNames; } protected String scope = "session"; public String getScope() { return this.scope; } public void setScope(String scope) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.scope = scope; } protected String suffix = null; public String getSuffix() { return this.suffix; } public void setSuffix(String suffix) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.suffix = suffix; } protected String type = null; public String getType() { return this.type; } public void setType(String type) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.type = type; } protected boolean unknown = false; public boolean getUnknown() { return this.unknown; } public void setUnknown(boolean unknown) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.unknown = unknown; } protected boolean validate = true; public boolean getValidate() { return this.validate; } public void setValidate(boolean validate) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.validate = validate; } public void addExceptionConfig(ExceptionConfig config) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.exceptions.put(config.getType(), config); } public void addForwardConfig(ForwardConfig config) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.forwards.put(config.getName(), config); } public ExceptionConfig findExceptionConfig(String type) { return (ExceptionConfig)this.exceptions.get(type); } public ExceptionConfig[] findExceptionConfigs() { ExceptionConfig[] results = new ExceptionConfig[this.exceptions.size()]; return (ExceptionConfig[])this.exceptions.values().toArray((Object[])results); } public ForwardConfig findForwardConfig(String name) { return (ForwardConfig)this.forwards.get(name); } public ForwardConfig[] findForwardConfigs() { ForwardConfig[] results = new ForwardConfig[this.forwards.size()]; return (ForwardConfig[])this.forwards.values().toArray((Object[])results); } public void freeze() { this.configured = true; ExceptionConfig[] econfigs = findExceptionConfigs(); for (int i = 0; i < econfigs.length; i++) econfigs[i].freeze(); ForwardConfig[] fconfigs = findForwardConfigs(); for (int j = 0; j < fconfigs.length; j++) fconfigs[j].freeze(); } public void removeExceptionConfig(ExceptionConfig config) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.exceptions.remove(config.getType()); } public void removeForwardConfig(ForwardConfig config) { if (this.configured) throw new IllegalStateException("Configuration is frozen"); this.forwards.remove(config.getName()); } public String toString() { StringBuffer sb = new StringBuffer("ActionConfig["); sb.append("path="); sb.append(this.path); if (this.attribute != null) { sb.append(",attribute="); sb.append(this.attribute); } if (this.forward != null) { sb.append(",forward="); sb.append(this.forward); } if (this.include != null) { sb.append(",include="); sb.append(this.include); } if (this.input != null) { sb.append(",input="); sb.append(this.input); } if (this.multipartClass != null) { sb.append(",multipartClass="); sb.append(this.multipartClass); } if (this.name != null) { sb.append(",name="); sb.append(this.name); } if (this.parameter != null) { sb.append(",parameter="); sb.append(this.parameter); } if (this.prefix != null) { sb.append(",prefix="); sb.append(this.prefix); } if (this.roles != null) { sb.append(",roles="); sb.append(this.roles); } if (this.scope != null) { sb.append(",scope="); sb.append(this.scope); } if (this.suffix != null) { sb.append(",suffix="); sb.append(this.suffix); } if (this.type != null) { sb.append(",type="); sb.append(this.type); } return sb.toString(); } }