com.opensymphony.xwork2.config.entities.ResultConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xwork Show documentation
Show all versions of xwork Show documentation
XWork is an command-pattern framework that is used to power WebWork
as well as other applications. XWork provides an Inversion of Control
container, a powerful expression language, data type conversion,
validation, and pluggable configuration.
/*
* Copyright (c) 2002-2006 by OpenSymphony
* All rights reserved.
*/
package com.opensymphony.xwork2.config.entities;
import com.opensymphony.xwork2.util.location.Located;
import com.opensymphony.xwork2.util.location.Location;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Collections;
/**
* Configuration for Result.
*
* In the xml configuration file this is defined as the result
tag.
*
* @author Mike
*/
public class ResultConfig extends Located implements Serializable {
private Map params;
private String className;
private String name;
protected ResultConfig(String name, String className) {
this.name = name;
this.className = className;
params = new LinkedHashMap();
}
protected ResultConfig(ResultConfig orig) {
this.params = orig.params;
this.name = orig.name;
this.className = orig.className;
}
public String getClassName() {
return className;
}
public String getName() {
return name;
}
public Map getParams() {
return params;
}
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof ResultConfig)) {
return false;
}
final ResultConfig resultConfig = (ResultConfig) o;
if ((className != null) ? (!className.equals(resultConfig.className)) : (resultConfig.className != null)) {
return false;
}
if ((name != null) ? (!name.equals(resultConfig.name)) : (resultConfig.name != null)) {
return false;
}
if ((params != null) ? (!params.equals(resultConfig.params)) : (resultConfig.params != null)) {
return false;
}
return true;
}
public int hashCode() {
int result;
result = ((name != null) ? name.hashCode() : 0);
result = (29 * result) + ((className != null) ? className.hashCode() : 0);
result = (29 * result) + ((params != null) ? params.hashCode() : 0);
return result;
}
/**
* The builder for this object. An instance of this object is the only way to construct a new instance. The
* purpose is to enforce the immutability of the object. The methods are structured in a way to support chaining.
* After setting any values you need, call the {@link #build()} method to create the object.
*/
public static final class Builder {
private ResultConfig target;
public Builder(String name, String className) {
target = new ResultConfig(name, className);
}
public Builder(ResultConfig orig) {
target = new ResultConfig(orig);
}
public Builder name(String name) {
target.name = name;
return this;
}
public Builder className(String name) {
target.className = name;
return this;
}
public Builder addParam(String name, String value) {
target.params.put(name, value);
return this;
}
public Builder addParams(Map params) {
target.params.putAll(params);
return this;
}
public Builder location(Location loc) {
target.location = loc;
return this;
}
public ResultConfig build() {
target.params = Collections.unmodifiableMap(target.params);
ResultConfig result = target;
target = new ResultConfig(target);
return result;
}
}
}