blob: 881f96a812c52e4411514ece3b0c467bf75b8ba7 [file] [log] [blame]
package org.apache.chemistry.opencmis.commons.spi;
import java.util.HashMap;
import java.util.Map;
/**
* Holder for IN/OUT parameters that can hold extra values.
*/
public class ExtendedHolder<T> extends Holder<T> {
private Map<String, Object> extraValues = new HashMap<String, Object>();
/**
* Constructs a holder with a {@code null} value.
*/
public ExtendedHolder() {
super();
}
/**
* Constructs a holder with the given value.
*/
public ExtendedHolder(T value) {
super(value);
}
/**
* Sets an extra value.
*
* @param name
* the name of the value
* @param value
* the value
*/
public void setExtraValue(String name, Object value) {
extraValues.put(name, value);
}
/**
* Gets an extra value,
*
* @param name
* the name of the value
* @return the value or {@code null} if a value with the given name doesn't
* exist
*/
public Object getExtraValue(String name) {
return extraValues.get(name);
}
@Override
public String toString() {
return "ExtendedHolder(" + getValue() + ", " + extraValues.toString() + ")";
}
}