You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ja...@apache.org on 2011/02/03 00:27:33 UTC
svn commit: r1066692 -
/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/
Author: jafl
Date: Wed Feb 2 23:27:33 2011
New Revision: 1066692
URL: http://svn.apache.org/viewvc?rev=1066692&view=rev
Log:
XW-387 enable derived classes of config and derived classes of config bulders
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ExceptionMappingConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java Wed Feb 2 23:27:33 2011
@@ -214,7 +214,7 @@ public class ActionConfig extends Locate
*/
public static class Builder implements InterceptorListHolder{
- private ActionConfig target;
+ protected ActionConfig target;
public Builder(ActionConfig toClone) {
target = new ActionConfig(toClone);
@@ -240,12 +240,12 @@ public class ActionConfig extends Locate
}
public Builder defaultClassName(String name) {
- if (StringUtils.isEmpty(target.className)) {
- target.className = name;
- }
+ if (StringUtils.isEmpty(target.className)) {
+ target.className = name;
+ }
return this;
}
-
+
public Builder methodName(String method) {
target.methodName = method;
return this;
@@ -326,14 +326,18 @@ public class ActionConfig extends Locate
}
public ActionConfig build() {
+ embalmTarget();
+ ActionConfig result = target;
+ target = new ActionConfig(target);
+ return result;
+ }
+
+ protected void embalmTarget() {
target.params = Collections.unmodifiableMap(target.params);
target.results = Collections.unmodifiableMap(target.results);
target.interceptors = Collections.unmodifiableList(target.interceptors);
target.exceptionMappings = Collections.unmodifiableList(target.exceptionMappings);
target.allowedMethods = Collections.unmodifiableSet(target.allowedMethods);
- ActionConfig result = target;
- target = new ActionConfig(target);
- return result;
}
}
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ExceptionMappingConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ExceptionMappingConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ExceptionMappingConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ExceptionMappingConfig.java Wed Feb 2 23:27:33 2011
@@ -32,11 +32,10 @@ import java.util.Map;
*/
public class ExceptionMappingConfig extends Located implements Serializable {
- private String name;
- private String exceptionClassName;
- private String result;
- private Map<String,String> params;
-
+ protected String name;
+ protected String exceptionClassName;
+ protected String result;
+ protected Map<String,String> params;
protected ExceptionMappingConfig(String name, String exceptionClassName, String result) {
this.name = name;
@@ -68,7 +67,6 @@ public class ExceptionMappingConfig exte
return params;
}
-
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -121,7 +119,7 @@ public class ExceptionMappingConfig exte
*/
public static class Builder{
- private ExceptionMappingConfig target;
+ protected ExceptionMappingConfig target;
public Builder(ExceptionMappingConfig toClone) {
target = new ExceptionMappingConfig(toClone);
@@ -162,11 +160,15 @@ public class ExceptionMappingConfig exte
}
public ExceptionMappingConfig build() {
- target.params = Collections.unmodifiableMap(target.params);
+ embalmTarget();
ExceptionMappingConfig result = target;
target = new ExceptionMappingConfig(target);
return result;
}
+
+ protected void embalmTarget() {
+ target.params = Collections.unmodifiableMap(target.params);
+ }
}
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorConfig.java Wed Feb 2 23:27:33 2011
@@ -32,10 +32,9 @@ import java.util.Map;
*/
public class InterceptorConfig extends Located implements Serializable {
- Map<String,String> params;
- String className;
- String name;
-
+ protected Map<String,String> params;
+ protected String className;
+ protected String name;
protected InterceptorConfig(String name, String className) {
this.params = new LinkedHashMap<String,String>();
@@ -49,7 +48,6 @@ public class InterceptorConfig extends L
this.params = new LinkedHashMap<String,String>(orig.params);
}
-
public String getClassName() {
return className;
}
@@ -106,7 +104,7 @@ public class InterceptorConfig extends L
* After setting any values you need, call the {@link #build()} method to create the object.
*/
public static final class Builder {
- private InterceptorConfig target;
+ protected InterceptorConfig target;
public Builder(String name, String className) {
target = new InterceptorConfig(name, className);
@@ -142,10 +140,14 @@ public class InterceptorConfig extends L
}
public InterceptorConfig build() {
- target.params = Collections.unmodifiableMap(target.params);
+ embalmTarget();
InterceptorConfig result = target;
target = new InterceptorConfig(target);
return result;
}
+
+ protected void embalmTarget() {
+ target.params = Collections.unmodifiableMap(target.params);
+ }
}
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java Wed Feb 2 23:27:33 2011
@@ -40,9 +40,8 @@ public class InterceptorStackConfig exte
/**
* A list of InterceptorMapping object
*/
- private List<InterceptorMapping> interceptors;
- private String name;
-
+ protected List<InterceptorMapping> interceptors;
+ protected String name;
/**
* Creates an InterceptorStackConfig object.
@@ -130,7 +129,7 @@ public class InterceptorStackConfig exte
* After setting any values you need, call the {@link #build()} method to create the object.
*/
public static class Builder implements InterceptorListHolder {
- private InterceptorStackConfig target;
+ protected InterceptorStackConfig target;
public Builder(String name) {
target = new InterceptorStackConfig();
@@ -164,10 +163,14 @@ public class InterceptorStackConfig exte
}
public InterceptorStackConfig build() {
- target.interceptors = Collections.unmodifiableList(target.interceptors);
+ embalmTarget();
InterceptorStackConfig result = target;
target = new InterceptorStackConfig(target);
return result;
}
+
+ protected void embalmTarget() {
+ target.interceptors = Collections.unmodifiableList(target.interceptors);
+ }
}
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java Wed Feb 2 23:27:33 2011
@@ -36,21 +36,20 @@ public class PackageConfig extends Locat
private static final Logger LOG = LoggerFactory.getLogger(PackageConfig.class);
- private Map<String, ActionConfig> actionConfigs;
- private Map<String, ResultConfig> globalResultConfigs;
- private Map<String, Object> interceptorConfigs;
- private Map<String, ResultTypeConfig> resultTypeConfigs;
- private List<ExceptionMappingConfig> globalExceptionMappingConfigs;
- private List<PackageConfig> parents;
- private String defaultInterceptorRef;
- private String defaultActionRef;
- private String defaultResultType;
- private String defaultClassRef;
- private String name;
- private String namespace = "";
- private boolean isAbstract = false;
- private boolean needsRefresh;
-
+ protected Map<String, ActionConfig> actionConfigs;
+ protected Map<String, ResultConfig> globalResultConfigs;
+ protected Map<String, Object> interceptorConfigs;
+ protected Map<String, ResultTypeConfig> resultTypeConfigs;
+ protected List<ExceptionMappingConfig> globalExceptionMappingConfigs;
+ protected List<PackageConfig> parents;
+ protected String defaultInterceptorRef;
+ protected String defaultActionRef;
+ protected String defaultResultType;
+ protected String defaultClassRef;
+ protected String name;
+ protected String namespace = "";
+ protected boolean isAbstract = false;
+ protected boolean needsRefresh;
protected PackageConfig(String name) {
this.name = name;
@@ -62,7 +61,6 @@ public class PackageConfig extends Locat
parents = new ArrayList<PackageConfig>();
}
-
protected PackageConfig(PackageConfig orig) {
this.defaultInterceptorRef = orig.defaultInterceptorRef;
this.defaultActionRef = orig.defaultActionRef;
@@ -444,7 +442,7 @@ public class PackageConfig extends Locat
*/
public static class Builder implements InterceptorLocator {
- private PackageConfig target;
+ protected PackageConfig target;
public Builder(String name) {
target = new PackageConfig(name);
@@ -588,23 +586,24 @@ public class PackageConfig extends Locat
return target.getAllResultTypeConfigs().get(type);
}
-
-
public Object getInterceptorConfig(String name) {
return target.getAllInterceptorConfigs().get(name);
}
public PackageConfig build() {
+ embalmTarget();
+ PackageConfig result = target;
+ target = new PackageConfig(result);
+ return result;
+ }
+
+ protected void embalmTarget() {
target.actionConfigs = Collections.unmodifiableMap(target.actionConfigs);
target.globalResultConfigs = Collections.unmodifiableMap(target.globalResultConfigs);
target.interceptorConfigs = Collections.unmodifiableMap(target.interceptorConfigs);
target.resultTypeConfigs = Collections.unmodifiableMap(target.resultTypeConfigs);
target.globalExceptionMappingConfigs = Collections.unmodifiableList(target.globalExceptionMappingConfigs);
target.parents = Collections.unmodifiableList(target.parents);
-
- PackageConfig result = target;
- target = new PackageConfig(result);
- return result;
}
@Override
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java Wed Feb 2 23:27:33 2011
@@ -33,10 +33,9 @@ import java.util.Map;
*/
public class ResultConfig extends Located implements Serializable {
- private Map<String,String> params;
- private String className;
- private String name;
-
+ protected Map<String,String> params;
+ protected String className;
+ protected String name;
protected ResultConfig(String name, String className) {
this.name = name;
@@ -62,7 +61,6 @@ public class ResultConfig extends Locate
return params;
}
-
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -106,7 +104,7 @@ public class ResultConfig extends Locate
* After setting any values you need, call the {@link #build()} method to create the object.
*/
public static final class Builder {
- private ResultConfig target;
+ protected ResultConfig target;
public Builder(String name, String className) {
target = new ResultConfig(name, className);
@@ -142,10 +140,14 @@ public class ResultConfig extends Locate
}
public ResultConfig build() {
- target.params = Collections.unmodifiableMap(target.params);
+ embalmTarget();
ResultConfig result = target;
target = new ResultConfig(target);
return result;
}
+
+ protected void embalmTarget() {
+ target.params = Collections.unmodifiableMap(target.params);
+ }
}
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java?rev=1066692&r1=1066691&r2=1066692&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java Wed Feb 2 23:27:33 2011
@@ -35,11 +35,10 @@ import java.util.Map;
*/
public class ResultTypeConfig extends Located implements Serializable {
- private String className;
- private String name;
- private String defaultResultParam;
-
- private Map<String,String> params;
+ protected String className;
+ protected String name;
+ protected String defaultResultParam;
+ protected Map<String,String> params;
protected ResultTypeConfig(String name, String className) {
this.name = name;
@@ -54,13 +53,12 @@ public class ResultTypeConfig extends Lo
this.params = orig.params;
}
-
public void setDefaultResultParam(String defaultResultParam) {
- this.defaultResultParam = defaultResultParam;
+ this.defaultResultParam = defaultResultParam;
}
public String getDefaultResultParam() {
- return this.defaultResultParam;
+ return this.defaultResultParam;
}
/**
@@ -111,7 +109,7 @@ public class ResultTypeConfig extends Lo
* After setting any values you need, call the {@link #build()} method to create the object.
*/
public static final class Builder {
- private ResultTypeConfig target;
+ protected ResultTypeConfig target;
public Builder(String name, String className) {
target = new ResultTypeConfig(name, className);
@@ -152,10 +150,14 @@ public class ResultTypeConfig extends Lo
}
public ResultTypeConfig build() {
- target.params = Collections.unmodifiableMap(target.params);
+ embalmTarget();
ResultTypeConfig result = target;
target = new ResultTypeConfig(target);
return result;
}
+
+ protected void embalmTarget() {
+ target.params = Collections.unmodifiableMap(target.params);
+ }
}
}