
com.opensymphony.xwork2.config.entities.InterceptorStackConfig Maven / Gradle / Ivy
Go to download
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.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* Configuration for InterceptorStack.
*
* In the xml configuration file this is defined as the interceptor-stack
tag.
*
* @author Mike
* @author Rainer Hermanns
*/
public class InterceptorStackConfig extends Located implements Serializable {
private static final long serialVersionUID = 2897260918170270343L;
/**
* A list of InterceptorMapping object
*/
private List interceptors;
private String name;
/**
* Creates an InterceptorStackConfig object.
*/
protected InterceptorStackConfig() {
this.interceptors = new ArrayList();
}
/**
* Creates an InterceptorStackConfig object with a particular name
.
*
* @param name
*/
protected InterceptorStackConfig(InterceptorStackConfig orig) {
this.name = orig.name;
this.interceptors = new ArrayList(orig.interceptors);
}
/**
* Returns a Collection
of InterceptorMapping objects.
*
* @return
*/
public Collection getInterceptors() {
return interceptors;
}
/**
* Get the name of this interceptor stack configuration.
*
* @return String
*/
public String getName() {
return name;
}
/**
* An InterceptorStackConfig object is equals with o
only if
*
* - o is an InterceptorStackConfig object
* - both names are equals
* - all of their
InterceptorMapping
s are equals
*
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof InterceptorStackConfig)) {
return false;
}
final InterceptorStackConfig interceptorStackConfig = (InterceptorStackConfig) o;
if ((interceptors != null) ? (!interceptors.equals(interceptorStackConfig.interceptors)) : (interceptorStackConfig.interceptors != null)) {
return false;
}
if ((name != null) ? (!name.equals(interceptorStackConfig.name)) : (interceptorStackConfig.name != null)) {
return false;
}
return true;
}
/**
* Generate hashcode based on InterceptorStackConfig
's name and its
* InterceptorMapping
s.
*/
@Override
public int hashCode() {
int result;
result = ((name != null) ? name.hashCode() : 0);
result = (29 * result) + ((interceptors != null) ? interceptors.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 class Builder implements InterceptorListHolder {
private InterceptorStackConfig target;
public Builder(String name) {
target = new InterceptorStackConfig();
target.name = name;
}
public Builder name(String name) {
target.name = name;
return this;
}
/**
* Add an InterceptorMapping
object.
*/
public Builder addInterceptor(InterceptorMapping interceptor) {
target.interceptors.add(interceptor);
return this;
}
/**
* Add a List of InterceptorMapping
objects.
*/
public Builder addInterceptors(List interceptors) {
target.interceptors.addAll(interceptors);
return this;
}
public Builder location(Location loc) {
target.location = loc;
return this;
}
public InterceptorStackConfig build() {
target.interceptors = Collections.unmodifiableList(target.interceptors);
InterceptorStackConfig result = target;
target = new InterceptorStackConfig(target);
return result;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy