Class AbstractStringIdentityrefCodec

java.lang.Object
org.opendaylight.yangtools.yang.data.api.codec.AbstractIllegalArgumentCodec<String,T>
org.opendaylight.yangtools.yang.data.util.AbstractStringIdentityrefCodec
All Implemented Interfaces:
IdentityrefCodec<String>, IllegalArgumentCodec<String,QName>
Direct Known Subclasses:
AbstractModuleStringIdentityrefCodec

@Beta public abstract class AbstractStringIdentityrefCodec extends AbstractIllegalArgumentCodec<String,T> implements IdentityrefCodec<String>
Abstract utility class for representations which encode Identityref as a prefix:name tuple. Typical uses are RESTCONF/JSON (module:name) and XML (prefix:name).
  • Constructor Details

    • AbstractStringIdentityrefCodec

      public AbstractStringIdentityrefCodec()
  • Method Details

    • serializeImpl

      protected final String serializeImpl(QName data)
      Specified by:
      serializeImpl in class AbstractIllegalArgumentCodec<String,QName>
    • deserializeImpl

      protected final QName deserializeImpl(String data)
      Specified by:
      deserializeImpl in class AbstractIllegalArgumentCodec<String,QName>
    • prefixForNamespace

      protected abstract @Nullable String prefixForNamespace(@NonNull XMLNamespace namespace)
      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

      protected abstract @Nullable QName createQName(@NonNull String prefix, @NonNull String localName)
      Create a QName for a prefix and local name.
      Parameters:
      prefix - Prefix for namespace
      localName - local name
      Returns:
      QName
      Throws:
      IllegalArgumentException - if the prefix cannot be resolved
    • appendQName

      protected final @NonNull StringBuilder appendQName(StringBuilder sb, QName qname)
    • 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 StringBuilder
      qname - QName to append
      lastModule - last QNameModule encountered, may be null
      Returns:
      target StringBuilder
    • parseQName

      protected final QName parseQName(String str)