Class PrismParserImplIO

  • All Implemented Interfaces:
    PrismParser

    public class PrismParserImplIO
    extends Object
    Author:
    mederly
    • Method Detail

      • parseItemValue

        public <IV extends PrismValue> IV parseItemValue()
                                                  throws SchemaException,
                                                         IOException
        Description copied from interface: PrismParser
        Parses the input as a prism value. (Container value, reference value, property value.) May return raw property values as part of the prism structure, if definitions are not known.
        Returns:
        The item.
        Throws:
        SchemaException
        IOException
      • parseRealValue

        public <T> T parseRealValue​(Class<T> clazz)
                             throws IOException,
                                    SchemaException
        Description copied from interface: PrismParser
        Parses a real value - either property or container value.
        Parameters:
        clazz - Expected class of the data. May be null if unknown.
        Returns:
        Real value - POJO, Containerable, Objectable or Referencable.
        Throws:
        IOException
        SchemaException
      • parseRealValue

        public <T> T parseRealValue()
                             throws IOException,
                                    SchemaException
        Description copied from interface: PrismParser
        Parses a real value. The class is not supplied by the caller, so it has to be determined from the data source.
        Returns:
        Real value - POJO, Containerable, Objectable or Referencable.
        Throws:
        IOException
        SchemaException
      • parseRealValueToJaxbElement

        public <T> javax.xml.bind.JAXBElement<T> parseRealValueToJaxbElement()
                                                                      throws IOException,
                                                                             SchemaException
        Description copied from interface: PrismParser
        Parses a real value and stores it into JAXBElement, using item name derived in the usual way.
        Throws:
        IOException
        SchemaException
      • parseObjects

        @NotNull
        public @NotNull List<PrismObject<? extends Objectable>> parseObjects()
                                                                      throws SchemaException,
                                                                             IOException
        Description copied from interface: PrismParser
        Parses the input as a collection of prism objects. For XML the input must be formatted as a collection of objects (TODO change this). For other languages the input may contain one or more objects.
        Returns:
        A list of objects.
        Throws:
        SchemaException
        IOException
      • parseItemOrRealValue

        public Object parseItemOrRealValue()
                                    throws IOException,
                                           SchemaException
        Description copied from interface: PrismParser
        Parses either an item, or a real value. It depends on the type declaration or item name in the source data. 1) If explicit type is present, it is taken into account. If it corresponds to a prism item, the input is parsed as a prism item. Otherwise, it is parsed as a real value (containerable or simple POJO), if possible. 2) If there is no type, the item name is consulted. If it corresponds to a prism item, the input is parsed as a prism item. Otherwise, an exception is thrown. Pre-set parameters (itemDefinition, typeName, itemName) must NOT be present. Use with utmost care. If at all possible, avoid it.
        Returns:
        either prism item (Item) or a real value (Object)
        Throws:
        IOException
        SchemaException
      • language

        @NotNull
        public @NotNull PrismParser language​(@Nullable
                                             @Nullable String language)
        Description copied from interface: PrismParser
        For string inputs: sets the data language that the parser will try to parse; null means auto-detect. For other kinds of input (DOM and XNode) the language is fixed to XML or none, respectively.
        Specified by:
        language in interface PrismParser
        Parameters:
        language - The language
        Returns:
        Updated parser.
      • xml

        @NotNull
        public @NotNull PrismParser xml()
        Description copied from interface: PrismParser
        Sets the language of the parser to be XML.
        Specified by:
        xml in interface PrismParser
        Returns:
        Updated parser.
      • json

        @NotNull
        public @NotNull PrismParser json()
        Description copied from interface: PrismParser
        Sets the language of the parser to be JSON.
        Specified by:
        json in interface PrismParser
        Returns:
        Updated parser.
      • yaml

        @NotNull
        public @NotNull PrismParser yaml()
        Description copied from interface: PrismParser
        Sets the language of the parser to be YAML.
        Specified by:
        yaml in interface PrismParser
        Returns:
        Updated parser.
      • context

        @NotNull
        public @NotNull PrismParser context​(@NotNull
                                            @NotNull ParsingContext context)
        Description copied from interface: PrismParser
        Provides a parsing context for the parser. The context contains e.g. selection of strict/compat mode of operation (set by client) or a list of warnings (maintained by the parser).
        Specified by:
        context in interface PrismParser
        Parameters:
        context - The parsing context.
        Returns:
        Updated parser.
      • strict

        @NotNull
        public @NotNull PrismParser strict()
        Description copied from interface: PrismParser
        Switches the parser into "strict" parsing mode.
        Specified by:
        strict in interface PrismParser
        Returns:
        Updated parser.
      • compat

        @NotNull
        public @NotNull PrismParser compat()
        Description copied from interface: PrismParser
        Switches the parser into "compatibility" (or relaxed) parsing mode. TODO description here
        Specified by:
        compat in interface PrismParser
        Returns:
        Updated parser.
      • definition

        @NotNull
        public @NotNull PrismParser definition​(ItemDefinition<?> itemDefinition)
        Description copied from interface: PrismParser
        Tells parser which definition to use when parsing item (or an item value). Optional.
        Specified by:
        definition in interface PrismParser
        Parameters:
        itemDefinition - The definition
        Returns:
        Updated parser.
      • name

        @NotNull
        public @NotNull PrismParser name​(QName itemName)
        Description copied from interface: PrismParser
        Tells parser what name to use for parsed item. Optional.
        Specified by:
        name in interface PrismParser
        Parameters:
        itemName - Item name to use.
        Returns:
        Updated parser.
      • type

        @NotNull
        public @NotNull PrismParser type​(QName typeName)
        Description copied from interface: PrismParser
        Tells parser what data type to expect. Optional.
        Specified by:
        type in interface PrismParser
        Parameters:
        typeName - Data type to expect.
        Returns:
        Updated parser.
      • type

        @NotNull
        public @NotNull PrismParser type​(Class<?> typeClass)
        Description copied from interface: PrismParser
        Tells parser what data type to expect. Optional.
        Specified by:
        type in interface PrismParser
        Parameters:
        typeClass - Data type to expect.
        Returns:
        Updated parser.