Package org.simpleframework.xml.stream
Class PrefixResolver
- All Implemented Interfaces:
Serializable,Cloneable,Iterable<String>,Map<String,,String> SequencedMap<String,,String> NamespaceMap
The
PrefixResolver object will store the namespaces
for an element. Each namespace added to this map can be added
with a prefix. A prefix is added only if the associated reference
has not been added to a parent element. If a parent element has
the associated reference, then the parents prefix is the one that
will be returned when requested from this map.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K, V> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final OutputNodeRepresents the actual XML element this is associated with. -
Constructor Summary
ConstructorsConstructorDescriptionPrefixResolver(OutputNode source) Constructor for thePrefixResolverobject. -
Method Summary
Modifier and TypeMethodDescriptionThis is the prefix that is associated with the source element.This acquires the prefix for the specified namespace reference.getReference(String prefix) This acquires the namespace reference for the specified prefix.iterator()This returns an iterator for the namespace of all the nodes in thisNamespaceMap.private StringresolvePrefix(String reference) This method will resolve the prefix or the specified reference by searching the parent nodes in order.private StringresolveReference(String prefix) This method will resolve the reference or the specified prefix by searching the parent nodes in order.setReference(String reference) This is used to add the namespace reference to the namespace map.setReference(String reference, String prefix) This is used to add the namespace reference to the namespace map.Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, newLinkedHashMap, putFirst, putLast, removeEldestEntry, replaceAll, reversed, sequencedEntrySet, sequencedKeySet, sequencedValues, valuesMethods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, newHashMap, put, putAll, putIfAbsent, remove, remove, replace, replace, sizeMethods inherited from class java.util.AbstractMap
equals, hashCode, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, sizeMethods inherited from interface java.util.SequencedMap
firstEntry, lastEntry, pollFirstEntry, pollLastEntry
-
Field Details
-
source
Represents the actual XML element this is associated with.
-
-
Constructor Details
-
PrefixResolver
Constructor for thePrefixResolverobject. This is used to create a resolver for namespace prefixes using the hierarchy of elements. Resolving the prefix in this way avoids having to redeclare the same namespace with another prefix in a child element if it has already been declared.- Parameters:
source- this is the XML element this is associated to
-
-
Method Details
-
getPrefix
This is the prefix that is associated with the source element. If the source element does not contain a namespace reference then this will return its parents namespace. This ensures that if a namespace has been declared its child elements will inherit its prefix.- Specified by:
getPrefixin interfaceNamespaceMap- Returns:
- this returns the prefix that is currently in scope
-
setReference
This is used to add the namespace reference to the namespace map. If the namespace has been added to a parent node then this will not add the reference. The prefix added to the map will be the default namespace, which is an empty prefix.- Specified by:
setReferencein interfaceNamespaceMap- Parameters:
reference- this is the reference to be added- Returns:
- this returns the prefix that has been replaced
-
setReference
This is used to add the namespace reference to the namespace map. If the namespace has been added to a parent node then this will not add the reference.- Specified by:
setReferencein interfaceNamespaceMap- Parameters:
reference- this is the reference to be addedprefix- this is the prefix to be added to the reference- Returns:
- this returns the prefix that has been replaced
-
getPrefix
This acquires the prefix for the specified namespace reference. If the namespace reference has been set on this node with a given prefix then that prefix is returned, however if it has not been set this will search the parent elements to find the prefix that is in scope for the specified reference.- Specified by:
getPrefixin interfaceNamespaceMap- Parameters:
reference- the reference to find a matching prefix for- Returns:
- this will return the prefix that is is scope
-
getReference
This acquires the namespace reference for the specified prefix. If the provided prefix has been set on this node with a given reference then that reference is returned, however if it has not been set this will search the parent elements to find the reference that is in scope for the specified reference.- Specified by:
getReferencein interfaceNamespaceMap- Parameters:
prefix- the prefix to find a matching reference for- Returns:
- this will return the reference that is is scope
-
resolveReference
This method will resolve the reference or the specified prefix by searching the parent nodes in order. This allows the prefix that is currently in scope for the reference to be acquired.- Parameters:
prefix- the prefix to find a matching reference for- Returns:
- this will return the reference that is is scope
-
resolvePrefix
This method will resolve the prefix or the specified reference by searching the parent nodes in order. This allows the prefix that is currently in scope for the reference to be acquired.- Parameters:
reference- the reference to find a matching prefix for- Returns:
- this will return the prefix that is is scope
-
iterator
This returns an iterator for the namespace of all the nodes in thisNamespaceMap. This allows the namespaces to be iterated within a for each loop in order to extract the prefix values associated with the map.- Specified by:
iteratorin interfaceIterable<String>- Specified by:
iteratorin interfaceNamespaceMap- Returns:
- this returns the namespaces contained in this map
-