Top Description Fields Constructors Methods
liquibase.parser.core

public Class ParsedNode

extends Object
Class Inheritance
Imports
liquibase.exception.UnexpectedLiquibaseException, liquibase.statement.DatabaseFunction, .SequenceCurrentValueFunction, .SequenceNextValueFunction, liquibase.util.ISODateFormat, .StringUtil, java.math.BigDecimal, .BigInteger, java.util.*

Acts as a standard abstract syntax layer for changelogs defined in different formats. liquibase.parser.ChangeLogParser implementations and other classes that work with multiple formats can create objects directs or create instances of this class which can then be passed to the load() method of the object they want to configure. For example, liquibase.change.Change#load(ParsedNode, liquibase.resource.ResourceAccessor).

ParsedNodes are a simple key/value structure with the following characteristics:

Field Summary

Modifier and TypeField and Description
private final List<ParsedNode>
private final String
private final String
private Object

Constructor Summary

AccessConstructor and Description
public
ParsedNode(String namespace, String name)

Method Summary

Modifier and TypeMethod and Description
public ParsedNode
addChild(String namespace, String nodeName, Object value)

Convenience method to add a new ParsedNode with the passed namespace/name and value

public ParsedNode
addChild(ParsedNode node)

Adds the given ParsedNode as a child

public ParsedNode
addChildren(Map<String, Object> child)

Adds the given map as children of this node.

protected <T> T
convertObject(Object rawValue, Class<T> type)

protected ParsedNode
createNode(String namespace, String nodeName)

public boolean
equals(Object
the reference object with which to compare.
obj
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public ParsedNode
getChild(String namespace, String name)

Returns the ParsedNode defined by the given namespace and name.

public List<ParsedNode>
getChildren()

Returns the child ParsedNodes of this node.

public List<ParsedNode>
getChildren(String namespace, String nodename)

Returns all child nodes with the given namespace and name.

public <T> T
getChildValue(String namespace, String nodename, T defaultValue)

Convenience method for getChildValue(String, String, Class) but returns the passed defaultValue if the given node is null or not defined.

public <T> T
getChildValue(String namespace, String nodename, Class<T> type)

Returns the value of the given node, converted to the passed type.

public Object
getChildValue(String namespace, String nodename)

Returns the value of the given node with no conversion attempted.

public String
getName()

Each node key contains both a namespace and a name which together identifies the node.

public String
getNamespace()

Each node key contains both a namespace and a name which together identifies the node.

public Object
getValue()

Return the value associated with this node.

public <T> T
getValue(Class<T> type)

Return the value associated with this node converted to the given type.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

protected boolean
protected boolean

Returns:

true if the namespace and name of the node match the specified namespace and name, ignoring case; false otherwise.
nodeMatches
(ParsedNode
The node to match against.
node
,
String
The namespace to match against.
namespace
,
String
The name to match against.
nodename
)

Matches the namespace and name of this node.

public ParsedNode
removeChild(String namespace, String name)

public ParsedNode
setValue(Object value)

Sets the value of this ParsedNode.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

childrenback to summary
private final List<ParsedNode> children
nameback to summary
private final String name
namespaceback to summary
private final String namespace
valueback to summary
private Object value

Constructor Detail

ParsedNodeback to summary
public ParsedNode(String namespace, String name)

Method Detail

addChildback to summary
public ParsedNode addChild(String namespace, String nodeName, Object value) throws ParsedNodeException

Convenience method to add a new ParsedNode with the passed namespace/name and value

addChildback to summary
public ParsedNode addChild(ParsedNode node) throws ParsedNodeException

Adds the given ParsedNode as a child

addChildrenback to summary
public ParsedNode addChildren(Map<String, Object> child) throws ParsedNodeException

Adds the given map as children of this node. If the passed map is empty, it is a no-op For each key in the map, a new child is added with the key as the name and the value (with all setValue(Object)) logic) is the value.

convertObjectback to summary
protected <T> T convertObject(Object rawValue, Class<T> type) throws ParsedNodeException
createNodeback to summary
protected ParsedNode createNode(String namespace, String nodeName)
equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getChildback to summary
public ParsedNode getChild(String namespace, String name) throws ParsedNodeException

Returns the ParsedNode defined by the given namespace and name.

Exceptions
ParsedNodeException:
if multiple nodes match.
getChildrenback to summary
public List<ParsedNode> getChildren()

Returns the child ParsedNodes of this node. Returned list is unmodifiableList.

getChildrenback to summary
public List<ParsedNode> getChildren(String namespace, String nodename)

Returns all child nodes with the given namespace and name. If none match, an empty list is returned. Returned list is unmodifiableList.

getChildValueback to summary
public <T> T getChildValue(String namespace, String nodename, T defaultValue) throws ParsedNodeException

Convenience method for getChildValue(String, String, Class) but returns the passed defaultValue if the given node is null or not defined.

getChildValueback to summary
public <T> T getChildValue(String namespace, String nodename, Class<T> type) throws ParsedNodeException

Returns the value of the given node, converted to the passed type.

Exceptions
ParsedNodeException:
if there is an error converting the value
getChildValueback to summary
public Object getChildValue(String namespace, String nodename) throws ParsedNodeException

Returns the value of the given node with no conversion attempted.

getNameback to summary
public String getName()

Each node key contains both a namespace and a name which together identifies the node.

getNamespaceback to summary
public String getNamespace()

Each node key contains both a namespace and a name which together identifies the node.

getValueback to summary
public Object getValue()

Return the value associated with this node.

getValueback to summary
public <T> T getValue(Class<T> type) throws ParsedNodeException

Return the value associated with this node converted to the given type.

Exceptions
ParsedNodeException:
if the current value type cannot be converted
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
namespaceMatchesback to summary
protected boolean namespaceMatches(ParsedNode node, String namespace)
nodeMatchesback to summary
protected boolean nodeMatches(ParsedNode node, String namespace, String nodename)

Matches the namespace and name of this node. Matching is performed case-insensitively.

Parameters
node:ParsedNode

The node to match against.

namespace:String

The namespace to match against.

nodename:String

The name to match against.

Returns:boolean

true if the namespace and name of the node match the specified namespace and name, ignoring case; false otherwise.

removeChildback to summary
public ParsedNode removeChild(String namespace, String name) throws ParsedNodeException
setValueback to summary
public ParsedNode setValue(Object value) throws ParsedNodeException

Sets the value of this ParsedNode. If the passed value is a ParsedNode, it is added as a child, not as the value. If the passed value is a Map, it is converted to a ParsedNode and added as a child, not as the value. If the passed value is a Collection, each object is added as a child if it is a ParsedNode or a Map. If there are multiple simple values in a passed collection, value is set to a List. If there is a single value in a collection, value is set to the single value.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override