Class SimpleAttributedConfigurationNode
- java.lang.Object
-
- ninja.leaping.configurate.SimpleConfigurationNode
-
- ninja.leaping.configurate.commented.SimpleCommentedConfigurationNode
-
- ninja.leaping.configurate.attributed.SimpleAttributedConfigurationNode
-
- All Implemented Interfaces:
AttributedConfigurationNode
,CommentedConfigurationNode
,ConfigurationNode
public class SimpleAttributedConfigurationNode extends SimpleCommentedConfigurationNode implements AttributedConfigurationNode
Basic implementation ofAttributedConfigurationNode
.
-
-
Field Summary
-
Fields inherited from interface ninja.leaping.configurate.ConfigurationNode
NUMBER_DEF
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SimpleAttributedConfigurationNode(@NonNull String tagName, @Nullable Object path, @Nullable SimpleConfigurationNode parent, @NonNull ConfigurationOptions options)
protected
SimpleAttributedConfigurationNode(@NonNull String tagName, @Nullable SimpleConfigurationNode parent, @NonNull SimpleConfigurationNode copyOf)
-
Method Summary
-
Methods inherited from class ninja.leaping.configurate.commented.SimpleCommentedConfigurationNode
getComment, root, setCommentIfAbsent
-
Methods inherited from class ninja.leaping.configurate.SimpleConfigurationNode
attachChildIfAbsent, attachIfNecessary, clear, getChild, getKey, getList, getList, getList, getList, getList, getNode, getOptions, getPath, getValue, getValue, getValue, getValue, getValue, getValue, getValueType, isVirtual, removeChild, visit, visit
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ninja.leaping.configurate.attributed.AttributedConfigurationNode
act, getComment
-
Methods inherited from interface ninja.leaping.configurate.commented.CommentedConfigurationNode
setCommentIfAbsent
-
Methods inherited from interface ninja.leaping.configurate.ConfigurationNode
getBoolean, getBoolean, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getKey, getList, getList, getList, getList, getList, getList, getLong, getLong, getNode, getOptions, getPath, getString, getString, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValueType, hasListChildren, hasMapChildren, isList, isMap, isVirtual, removeChild, setValue, visit, visit, visit, visit
-
-
-
-
Constructor Detail
-
SimpleAttributedConfigurationNode
protected SimpleAttributedConfigurationNode(@NonNull String tagName, @Nullable Object path, @Nullable SimpleConfigurationNode parent, @NonNull ConfigurationOptions options)
-
SimpleAttributedConfigurationNode
protected SimpleAttributedConfigurationNode(@NonNull String tagName, @Nullable SimpleConfigurationNode parent, @NonNull SimpleConfigurationNode copyOf)
-
-
Method Detail
-
root
@Deprecated public static @NonNull SimpleAttributedConfigurationNode root()
Deprecated.UseAttributedConfigurationNode.root()
insteadCreate a new node with no parent.- Returns:
- a new node
-
root
@Deprecated public static @NonNull SimpleAttributedConfigurationNode root(@NonNull String tagName)
Deprecated.UseAttributedConfigurationNode.root(String)
insteadCreate a new node with no parent.- Parameters:
tagName
- The name of the tag to be used to represent this node- Returns:
- a new node
-
root
@Deprecated public static @NonNull SimpleAttributedConfigurationNode root(@NonNull String tagName, @NonNull ConfigurationOptions options)
Deprecated.Create a new node with no parent, a specified tag name, and specific options.- Parameters:
tagName
- The name of the tag to be used to represent this nodeoptions
- The options to use within this node- Returns:
- a new node
-
getTagName
public @NonNull String getTagName()
Description copied from interface:AttributedConfigurationNode
Gets the tag name of this node.- Specified by:
getTagName
in interfaceAttributedConfigurationNode
- Returns:
- The tag name
-
setTagName
public @NonNull SimpleAttributedConfigurationNode setTagName(@NonNull String tagName)
Description copied from interface:AttributedConfigurationNode
Sets the tag name of this node.Will have no effect when called on nodes which are direct values of a
child map
, as the corresponding key is used as the tag name.- Specified by:
setTagName
in interfaceAttributedConfigurationNode
- Parameters:
tagName
- The name to set, cannot be null- Returns:
- this
-
addAttribute
public @NonNull SimpleAttributedConfigurationNode addAttribute(@NonNull String name, @NonNull String value)
Description copied from interface:AttributedConfigurationNode
Adds an attribute to this node.- Specified by:
addAttribute
in interfaceAttributedConfigurationNode
- Parameters:
name
- The name of the attributevalue
- The value of the attribute- Returns:
- this
-
removeAttribute
public @NonNull SimpleAttributedConfigurationNode removeAttribute(@NonNull String name)
Description copied from interface:AttributedConfigurationNode
Removes an attribute from this node.- Specified by:
removeAttribute
in interfaceAttributedConfigurationNode
- Parameters:
name
- The name of the attribute to remove- Returns:
- this
-
setAttributes
public @NonNull SimpleAttributedConfigurationNode setAttributes(@NonNull Map<String,String> attributes)
Description copied from interface:AttributedConfigurationNode
Sets the attributes of this node.- Specified by:
setAttributes
in interfaceAttributedConfigurationNode
- Parameters:
attributes
- the attributes to set- Returns:
- this
-
hasAttributes
public boolean hasAttributes()
Description copied from interface:AttributedConfigurationNode
Gets if this node has any attributes.- Specified by:
hasAttributes
in interfaceAttributedConfigurationNode
- Returns:
- true if this node has any attributes
-
getAttribute
public @Nullable String getAttribute(@NonNull String name)
Description copied from interface:AttributedConfigurationNode
Gets the value of an attribute, or null if this node doesn't have the given attribute.- Specified by:
getAttribute
in interfaceAttributedConfigurationNode
- Parameters:
name
- The name of the attribute to get- Returns:
- this
-
getAttributes
public @NonNull Map<String,String> getAttributes()
Description copied from interface:AttributedConfigurationNode
Gets the attributes this node has.The returned map is immutable.
- Specified by:
getAttributes
in interfaceAttributedConfigurationNode
- Returns:
- The map of attributes
-
isEmpty
public boolean isEmpty()
Description copied from interface:ConfigurationNode
Return true when this node has a null or empty value. Values that may result in this method returning true include:null
- the empty string
- an empty map
- an empty list
- Any other type of empty collection
ConfigurationNode.isVirtual()
. Emptiness refers to the value of this node itself, while virtuality refers to whether or not this node is attached to its parent and the rest of the configuration structure.- Specified by:
isEmpty
in interfaceConfigurationNode
- Overrides:
isEmpty
in classSimpleConfigurationNode
- Returns:
- Whether this node is empty
-
getParent
public @Nullable SimpleAttributedConfigurationNode getParent()
Description copied from interface:ConfigurationNode
Gets the parent of this node.If this node is currently
virtual
, this method's result may be inaccurate.- Specified by:
getParent
in interfaceAttributedConfigurationNode
- Specified by:
getParent
in interfaceCommentedConfigurationNode
- Specified by:
getParent
in interfaceConfigurationNode
- Overrides:
getParent
in classSimpleCommentedConfigurationNode
- Returns:
- The nodes parent
-
createNode
protected SimpleAttributedConfigurationNode createNode(Object path)
- Overrides:
createNode
in classSimpleCommentedConfigurationNode
-
setValue
public @NonNull SimpleAttributedConfigurationNode setValue(@Nullable Object value)
Description copied from interface:ConfigurationNode
Set this node's value to the given value.If the provided value is a
This method only accepts native types as values. If the type of a value is unknown at runtime,Collection
or aMap
, it will be unwrapped into the appropriate configuration node structure.ConfigurationOptions.acceptsType(Class)
will return whether or not it is a native type.- Specified by:
setValue
in interfaceAttributedConfigurationNode
- Specified by:
setValue
in interfaceCommentedConfigurationNode
- Specified by:
setValue
in interfaceConfigurationNode
- Overrides:
setValue
in classSimpleCommentedConfigurationNode
- Parameters:
value
- The value to set- Returns:
- this
- See Also:
to set a value with any type conversion necessary
-
mergeValuesFrom
public @NonNull SimpleAttributedConfigurationNode mergeValuesFrom(@NonNull ConfigurationNode other)
Description copied from interface:ConfigurationNode
Set all the values from the given node that are not present in this node to their values in the provided node.Map keys will be merged. Lists and scalar values will be replaced.
- Specified by:
mergeValuesFrom
in interfaceAttributedConfigurationNode
- Specified by:
mergeValuesFrom
in interfaceCommentedConfigurationNode
- Specified by:
mergeValuesFrom
in interfaceConfigurationNode
- Overrides:
mergeValuesFrom
in classSimpleCommentedConfigurationNode
- Parameters:
other
- The node to merge values from- Returns:
- this
-
getNode
public @NonNull SimpleAttributedConfigurationNode getNode(@NonNull Object... path)
Description copied from interface:ConfigurationNode
Gets the node at the given (relative) path, possibly traversing multiple levels of nodes.This is the main method used to navigate through the configuration.
The path parameter effectively consumes an array of keys, which locate the unique position of a given node within the structure. Each element will navigate one level down in the configration hierarchy
A node is always returned by this method. If the given node does not exist in the structure, a
virtual
node will be returned which represents the position.- Specified by:
getNode
in interfaceAttributedConfigurationNode
- Specified by:
getNode
in interfaceCommentedConfigurationNode
- Specified by:
getNode
in interfaceConfigurationNode
- Overrides:
getNode
in classSimpleCommentedConfigurationNode
- Parameters:
path
- The path to fetch the node at- Returns:
- The node at the given path, possibly virtual
-
getChildrenList
public @NonNull List<? extends SimpleAttributedConfigurationNode> getChildrenList()
Description copied from interface:ConfigurationNode
Gets the "list children" attached to this node, if it has any.If this node does not
have list children
, an empty list is returned. For example, if the value of this node is a map, this will return an empty result.- Specified by:
getChildrenList
in interfaceAttributedConfigurationNode
- Specified by:
getChildrenList
in interfaceCommentedConfigurationNode
- Specified by:
getChildrenList
in interfaceConfigurationNode
- Overrides:
getChildrenList
in classSimpleCommentedConfigurationNode
- Returns:
- The list children currently attached to this node
-
getChildrenMap
public @NonNull Map<Object,? extends SimpleAttributedConfigurationNode> getChildrenMap()
Description copied from interface:ConfigurationNode
Gets the "map children" attached to this node, if it has any.If this node does not
have map children
, an empty map returned.- Specified by:
getChildrenMap
in interfaceAttributedConfigurationNode
- Specified by:
getChildrenMap
in interfaceCommentedConfigurationNode
- Specified by:
getChildrenMap
in interfaceConfigurationNode
- Overrides:
getChildrenMap
in classSimpleCommentedConfigurationNode
- Returns:
- The map children currently attached to this node
-
getAppendedNode
@Deprecated public @NonNull SimpleAttributedConfigurationNode getAppendedNode()
Deprecated.Description copied from interface:ConfigurationNode
Gets a new child node created as the next entry in the list.- Specified by:
getAppendedNode
in interfaceAttributedConfigurationNode
- Specified by:
getAppendedNode
in interfaceCommentedConfigurationNode
- Specified by:
getAppendedNode
in interfaceConfigurationNode
- Overrides:
getAppendedNode
in classSimpleCommentedConfigurationNode
- Returns:
- A new child created as the next entry in the list when it is attached
-
appendListNode
public @NonNull SimpleAttributedConfigurationNode appendListNode()
Description copied from interface:ConfigurationNode
Gets a new child node created as the next entry in the list.- Specified by:
appendListNode
in interfaceAttributedConfigurationNode
- Specified by:
appendListNode
in interfaceCommentedConfigurationNode
- Specified by:
appendListNode
in interfaceConfigurationNode
- Overrides:
appendListNode
in classSimpleCommentedConfigurationNode
- Returns:
- A new child created as the next entry in the list when it is attached
-
copy
public @NonNull SimpleAttributedConfigurationNode copy()
Description copied from interface:ConfigurationNode
Creates a deep copy of this node.If this node has child nodes (is a list or map), the child nodes will also be copied. This action is performed recursively.
The resultant node will (initially) contain the same value(s) as this node, and will therefore be
equal
, however, changes made to the original will not be reflected in the copy, and vice versa.The actual scalar values that back the configuration will not be copied - only the node structure that forms the configuration. This is not a problem in most cases, as the scalar values stored in configurations are usually immutable. (e.g. strings, numbers, booleans).
- Specified by:
copy
in interfaceAttributedConfigurationNode
- Specified by:
copy
in interfaceCommentedConfigurationNode
- Specified by:
copy
in interfaceConfigurationNode
- Overrides:
copy
in classSimpleCommentedConfigurationNode
- Returns:
- A copy of this node
-
copy
protected @NonNull SimpleAttributedConfigurationNode copy(@Nullable SimpleConfigurationNode parent)
- Overrides:
copy
in classSimpleCommentedConfigurationNode
-
setComment
public @NonNull SimpleAttributedConfigurationNode setComment(@Nullable String comment)
Description copied from interface:CommentedConfigurationNode
Sets the comment for this configuration node.- Specified by:
setComment
in interfaceAttributedConfigurationNode
- Specified by:
setComment
in interfaceCommentedConfigurationNode
- Overrides:
setComment
in classSimpleCommentedConfigurationNode
- Parameters:
comment
- The comment to set. Line breaks should be represented as LFs (\n)- Returns:
- this
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classSimpleCommentedConfigurationNode
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classSimpleCommentedConfigurationNode
-
toString
public String toString()
- Overrides:
toString
in classSimpleCommentedConfigurationNode
-
-