Top Description Methods
liquibase

public Interface ExtensibleObject

extends Cloneable
Known Direct Subinterfaces
liquibase.change.Change, liquibase.logging.Logger, liquibase.ui.UIService
Known Direct Implementers
liquibase.AbstractExtensibleObject
Imports
java.util.List, .SortedSet

This interface defines how objects can be extended with additional attributes at runtime without subclassing and exposes the ability to query attributes without resorting to reflection.

If creating an ExtensibleObject, it is usually best to extend liquibase.AbstractExtensibleObject rather than this interface directly. You should also create a test that extends from AbstractExtensibleObjectTest.

Method Summary

Modifier and TypeMethod and Description
public Object
clone()

Expose Cloneable#clone() as public

public String
describe()

Output a full description of this object.

public <T> T
get(String attribute, Class<T> type)

Return the current value of the given attribute name, converted to the passed type.

public <T> T
get(String attribute, T defaultValue)

Works like get(String, Class) but if the attribute is null or not defined, returns the passed defaultValue.

public SortedSet<String>
getAttributes()

Return the names of all the set attributes.

public ObjectMetaData
getObjectMetaData()

Returns the ObjectMetaData describing this instance.

public List<E>
getValuePath(String attributePath, Class<T>
the type to convert the last value in the list to.
lastType
)

Traverses dot-separated attributes in the attributePath and returns a list containing all the intermediate values.

public boolean
has(String attribute)

Returns true if the given attribute is set and not null.

public ExtensibleObject
set(String attribute, Object value)

Sets the value of the given attribute.

Method Detail

cloneback to summary
public Object clone()

Expose Cloneable#clone() as public

describeback to summary
public String describe()

Output a full description of this object. Should include all attributes and values.

getback to summary
public <T> T get(String attribute, Class<T> type)

Return the current value of the given attribute name, converted to the passed type. If the passed attribute is null or not defined, returns null. If you do not know the type to convert to, pass Object.class as the type. Conversion is done using liquibase.util.ObjectUtil#convert(Object, Class). Should traverse dot-separated attributes.

getback to summary
public <T> T get(String attribute, T defaultValue)

Works like get(String, Class) but if the attribute is null or not defined, returns the passed defaultValue. Uses the type of defaultValue to determine the type to convert the current value to.

If null is passed to the default value, no conversion of attribute is made if it is set. If traversing a dot-separated attribute path, return the default value if any along the path are null.

getAttributesback to summary
public SortedSet<String> getAttributes()

Return the names of all the set attributes. If an attribute is null the name should not be returned. Should return both "standard" attributes and any custom attributes that have been set.

getObjectMetaDataback to summary
public ObjectMetaData getObjectMetaData()

Returns the ObjectMetaData describing this instance.

getValuePathback to summary
public List<E> getValuePath(String attributePath, Class<T> lastType)

Traverses dot-separated attributes in the attributePath and returns a list containing all the intermediate values.

Parameters
lastType:Class<T>

the type to convert the last value in the list to.

hasback to summary
public boolean has(String attribute)

Returns true if the given attribute is set and not null.

setback to summary
public ExtensibleObject set(String attribute, Object value)

Sets the value of the given attribute. Subclasses can override this method to provide conversion business logic, but must remember that fields can be set directly when no type conversion is needed.