Class AbstractStringInstanceIdentifierCodec
java.lang.Object
org.opendaylight.yangtools.yang.data.api.codec.AbstractIllegalArgumentCodec<String,T>
org.opendaylight.yangtools.yang.data.util.AbstractStringInstanceIdentifierCodec
- All Implemented Interfaces:
IllegalArgumentCodec<String,
,YangInstanceIdentifier> InstanceIdentifierCodec<String>
- Direct Known Subclasses:
AbstractModuleStringInstanceIdentifierCodec
@Beta
public abstract class AbstractStringInstanceIdentifierCodec
extends AbstractIllegalArgumentCodec<String,T>
implements InstanceIdentifierCodec<String>
Abstract utility class for representations which encode
YangInstanceIdentifier
as a
prefix:name tuple. Typical uses are RESTCONF/JSON (module:name) and XML (prefix:name).-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final @NonNull StringBuilder
appendQName
(StringBuilder sb, QName qname) protected StringBuilder
appendQName
(StringBuilder sb, QName qname, @Nullable QNameModule lastModule) Append a QName, potentially taking into account last QNameModule encountered in the serialized path.protected abstract @Nullable QName
createQName
(@NonNull String prefix, @NonNull String localName) Create a QName for a prefix and local name.protected QName
createQName
(@Nullable QNameModule lastModule, String localName) Create QName from unprefixed name, potentially taking last QNameModule encountered into account.protected final YangInstanceIdentifier
deserializeImpl
(String data) protected Object
deserializeKeyValue
(DataSchemaNode schemaNode, LeafrefResolver resolver, String value) protected abstract @NonNull DataSchemaContextTree
Returns DataSchemaContextTree associated with SchemaContext for which serialization / deserialization occurs.protected final QName
parseQName
(String str) protected abstract @Nullable String
prefixForNamespace
(@NonNull XMLNamespace namespace) Return string prefix for a particular namespace, allocating a new one if necessary.protected final String
Methods inherited from class org.opendaylight.yangtools.yang.data.api.codec.AbstractIllegalArgumentCodec
deserialize, serialize
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.opendaylight.yangtools.yang.data.api.codec.IllegalArgumentCodec
deserialize, serialize
-
Constructor Details
-
AbstractStringInstanceIdentifierCodec
public AbstractStringInstanceIdentifierCodec()
-
-
Method Details
-
serializeImpl
- Specified by:
serializeImpl
in classAbstractIllegalArgumentCodec<String,
YangInstanceIdentifier>
-
getDataContextTree
Returns DataSchemaContextTree associated with SchemaContext for which serialization / deserialization occurs.Implementations MUST provide non-null Data Tree context, in order for correct serialization / deserialization of PathArguments, since XML representation does not have Augmentation arguments and does not provide path arguments for cases.
This effectively means same input XPath representation of Path Argument may result in different YangInstanceIdentifiers if models are different in uses of choices and cases.
- Returns:
- DataSchemaContextTree associated with SchemaContext for which serialization / deserialization occurs.
-
deserializeKeyValue
protected Object deserializeKeyValue(DataSchemaNode schemaNode, LeafrefResolver resolver, String value) -
deserializeImpl
- Specified by:
deserializeImpl
in classAbstractIllegalArgumentCodec<String,
YangInstanceIdentifier>
-
createQName
Create QName from unprefixed name, potentially taking last QNameModule encountered into account.- Parameters:
lastModule
- last QNameModule encountered, potentially nulllocalName
- Local name string- Returns:
- A newly-created QName
-
prefixForNamespace
Return string prefix for a particular namespace, allocating a new one if necessary.- Parameters:
namespace
- Namespace to map- Returns:
- Allocated unique prefix, or null if the prefix cannot be mapped.
-
createQName
Create a QName for a prefix and local name.- Parameters:
prefix
- Prefix for namespacelocalName
- local name- Returns:
- QName
- Throws:
IllegalArgumentException
- if the prefix cannot be resolved
-
appendQName
-
appendQName
protected StringBuilder appendQName(StringBuilder sb, QName qname, @Nullable QNameModule lastModule) Append a QName, potentially taking into account last QNameModule encountered in the serialized path.- Parameters:
sb
- target StringBuilderqname
- QName to appendlastModule
- last QNameModule encountered, may be null- Returns:
- target StringBuilder
-
parseQName
-