Interface ValueParser<T>

Type Parameters:
T -
All Known Implementing Classes:
JsonNullValueParser, JsonValueParser

public interface ValueParser<T>
Objects of type ValueParser should be immutable. (E.g. when cloning PrimitiveXNode, they are copied, not cloned.)
  • Method Details

    • parse

      T parse(QName typeName, XNodeProcessorEvaluationMode mode) throws SchemaException
      Throws:
      SchemaException
    • canParseAs

      boolean canParseAs(QName typeName)
      Checks if this parser can (by itself) parse the value as given type. (If it cannot, the parsing must be done by higher layers.) This method should be efficient. It may bring some performance penalty (when coupled with following parse() call) but we assume this situation is quite rare and performance effect is negligible.
    • isEmpty

      boolean isEmpty()
    • getStringValue

      String getStringValue()
      Returns the value represented as string - in the best format that we can. This has to work even without knowing the exact data type. Therefore there is no guarantee that the returned value will be precise. This method is used as a "last instance" if everything else fails. Invocation of this method will not change the state of the xnode, e.g. it will NOT cause it to be parsed. It can be invoked without any side effects.
    • getPotentiallyRelevantNamespaces

      Map<String,String> getPotentiallyRelevantNamespaces()
      Returns namespaces that could be relevant when serializing unparsed string value of this item. Used to preserve xmlns declarations for QNames and ItemPaths in unparsed data. (MID-2196)
      Returns:
      May return null if not supported or no namespace declarations are present.
    • freeze

      ValueParser<T> freeze()
      Returns:
      Frozen version of this parser.