Class PrismParserImplNoIO
- java.lang.Object
 - 
- com.evolveum.midpoint.prism.impl.marshaller.PrismParserImplNoIO
 
 
- 
- All Implemented Interfaces:
 PrismParser,PrismParserNoIO
public class PrismParserImplNoIO extends Object implements PrismParserNoIO
 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismParser
PrismParser.ObjectHandler 
 - 
 
- 
Constructor Summary
Constructors Constructor Description PrismParserImplNoIO(ParserSource source, String language, ParsingContext context, PrismContextImpl prismContext, ItemDefinition<?> itemDefinition, QName itemName, QName dataType, Class<?> dataClass) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull PrismParserNoIOcompat()Switches the parser into "compatibility" (or relaxed) parsing mode.@NotNull PrismParserNoIOcontext(@NotNull ParsingContext context)Provides a parsing context for the parser.PrismParserNoIOconvertMissingTypes()@NotNull PrismParserNoIOdefinition(ItemDefinition<?> itemDefinition)Tells parser which definition to use when parsing item (or an item value).@NotNull PrismParserNoIOfastAddOperations()Does not check for existing values during parsing.@NotNull PrismParserNoIOjson()Sets the language of the parser to be JSON.@NotNull PrismParserNoIOlanguage(@Nullable String language)For string inputs: sets the data language that the parser will try to parse; null means auto-detect.@NotNull PrismParserNoIOname(QName itemName)Tells parser what name to use for parsed item.<O extends Objectable>
@NotNull PrismObject<O>parse()Parses the input as a prism object.<IV extends PrismValue,ID extends ItemDefinition<?>>
Item<IV,ID>parseItem()Parses the input as a prism item.ObjectparseItemOrRealValue()Parses either an item, or a real value.<IV extends PrismValue>
IVparseItemValue()Parses the input as a prism value.@NotNull List<PrismObject<? extends Objectable>>parseObjects()Parses the input as a collection of prism objects.voidparseObjectsIteratively(@NotNull PrismParser.ObjectHandler handler)Currently implemented for JSON/YAML only.<T> TparseRealValue()Parses a real value.<T> TparseRealValue(Class<T> clazz)Parses a real value - either property or container value.<T> javax.xml.bind.JAXBElement<T>parseRealValueToJaxbElement()Parses a real value and stores it into JAXBElement, using item name derived in the usual way.RootXNodeImplparseToXNode()Parses the input into RootXNode.@NotNull PrismParserNoIOstrict()Switches the parser into "strict" parsing mode.@NotNull PrismParserNoIOtype(Class<?> typeClass)Tells parser what data type to expect.@NotNull PrismParserNoIOtype(QName typeName)Tells parser what data type to expect.@NotNull PrismParserNoIOxml()Sets the language of the parser to be XML.@NotNull PrismParserNoIOyaml()Sets the language of the parser to be YAML. 
 - 
 
- 
- 
Constructor Detail
- 
PrismParserImplNoIO
public PrismParserImplNoIO(ParserSource source, String language, ParsingContext context, PrismContextImpl prismContext, ItemDefinition<?> itemDefinition, QName itemName, QName dataType, Class<?> dataClass)
 
 - 
 
- 
Method Detail
- 
language
@NotNull public @NotNull PrismParserNoIO language(@Nullable @Nullable String language)
Description copied from interface:PrismParserFor 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:
 languagein interfacePrismParser- Specified by:
 languagein interfacePrismParserNoIO- Parameters:
 language- The language- Returns:
 - Updated parser.
 
 
- 
xml
@NotNull public @NotNull PrismParserNoIO xml()
Description copied from interface:PrismParserSets the language of the parser to be XML.- Specified by:
 xmlin interfacePrismParser- Specified by:
 xmlin interfacePrismParserNoIO- Returns:
 - Updated parser.
 
 
- 
json
@NotNull public @NotNull PrismParserNoIO json()
Description copied from interface:PrismParserSets the language of the parser to be JSON.- Specified by:
 jsonin interfacePrismParser- Specified by:
 jsonin interfacePrismParserNoIO- Returns:
 - Updated parser.
 
 
- 
yaml
@NotNull public @NotNull PrismParserNoIO yaml()
Description copied from interface:PrismParserSets the language of the parser to be YAML.- Specified by:
 yamlin interfacePrismParser- Specified by:
 yamlin interfacePrismParserNoIO- Returns:
 - Updated parser.
 
 
- 
context
@NotNull public @NotNull PrismParserNoIO context(@NotNull @NotNull ParsingContext context)
Description copied from interface:PrismParserProvides 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:
 contextin interfacePrismParser- Specified by:
 contextin interfacePrismParserNoIO- Parameters:
 context- The parsing context.- Returns:
 - Updated parser.
 
 
- 
strict
@NotNull public @NotNull PrismParserNoIO strict()
Description copied from interface:PrismParserSwitches the parser into "strict" parsing mode.- Specified by:
 strictin interfacePrismParser- Specified by:
 strictin interfacePrismParserNoIO- Returns:
 - Updated parser.
 
 
- 
compat
@NotNull public @NotNull PrismParserNoIO compat()
Description copied from interface:PrismParserSwitches the parser into "compatibility" (or relaxed) parsing mode. TODO description here- Specified by:
 compatin interfacePrismParser- Specified by:
 compatin interfacePrismParserNoIO- Returns:
 - Updated parser.
 
 
- 
fastAddOperations
@NotNull public @NotNull PrismParserNoIO fastAddOperations()
Description copied from interface:PrismParserDoes not check for existing values during parsing. To be used in situations where the data can be trusted to not contain duplicates - for example, when reading from the repository.- Specified by:
 fastAddOperationsin interfacePrismParser- Specified by:
 fastAddOperationsin interfacePrismParserNoIO
 
- 
definition
@NotNull public @NotNull PrismParserNoIO definition(ItemDefinition<?> itemDefinition)
Description copied from interface:PrismParserTells parser which definition to use when parsing item (or an item value). Optional.- Specified by:
 definitionin interfacePrismParser- Specified by:
 definitionin interfacePrismParserNoIO- Parameters:
 itemDefinition- The definition- Returns:
 - Updated parser.
 
 
- 
name
@NotNull public @NotNull PrismParserNoIO name(QName itemName)
Description copied from interface:PrismParserTells parser what name to use for parsed item. Optional.- Specified by:
 namein interfacePrismParser- Specified by:
 namein interfacePrismParserNoIO- Parameters:
 itemName- Item name to use.- Returns:
 - Updated parser.
 
 
- 
type
@NotNull public @NotNull PrismParserNoIO type(QName typeName)
Description copied from interface:PrismParserTells parser what data type to expect. Optional.- Specified by:
 typein interfacePrismParser- Specified by:
 typein interfacePrismParserNoIO- Parameters:
 typeName- Data type to expect.- Returns:
 - Updated parser.
 
 
- 
type
@NotNull public @NotNull PrismParserNoIO type(Class<?> typeClass)
Description copied from interface:PrismParserTells parser what data type to expect. Optional.- Specified by:
 typein interfacePrismParser- Specified by:
 typein interfacePrismParserNoIO- Parameters:
 typeClass- Data type to expect.- Returns:
 - Updated parser.
 
 
- 
parse
@NotNull public <O extends Objectable> @NotNull PrismObject<O> parse() throws SchemaException
Description copied from interface:PrismParserParses the input as a prism object.- Specified by:
 parsein interfacePrismParser- Specified by:
 parsein interfacePrismParserNoIO- Returns:
 - The object.
 - Throws:
 SchemaException
 
- 
parseItem
public <IV extends PrismValue,ID extends ItemDefinition<?>> Item<IV,ID> parseItem() throws SchemaException
Description copied from interface:PrismParserParses the input as a prism item. (Object, container, reference, value.) May return raw property values as part of the prism structure, if definitions are not known.- Specified by:
 parseItemin interfacePrismParser- Specified by:
 parseItemin interfacePrismParserNoIO- Returns:
 - The item.
 - Throws:
 SchemaException
 
- 
parseItemValue
public <IV extends PrismValue> IV parseItemValue() throws SchemaException
Description copied from interface:PrismParserParses 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.- Specified by:
 parseItemValuein interfacePrismParser- Specified by:
 parseItemValuein interfacePrismParserNoIO- Returns:
 - The item.
 - Throws:
 SchemaException
 
- 
parseRealValue
public <T> T parseRealValue(Class<T> clazz) throws SchemaException
Description copied from interface:PrismParserParses a real value - either property or container value.- Specified by:
 parseRealValuein interfacePrismParser- Specified by:
 parseRealValuein interfacePrismParserNoIO- Parameters:
 clazz- Expected class of the data. May be null if unknown.- Returns:
 - Real value - POJO, Containerable, Objectable or Referencable.
 - Throws:
 SchemaException
 
- 
parseRealValue
public <T> T parseRealValue() throws SchemaExceptionDescription copied from interface:PrismParserParses a real value. The class is not supplied by the caller, so it has to be determined from the data source.- Specified by:
 parseRealValuein interfacePrismParser- Specified by:
 parseRealValuein interfacePrismParserNoIO- Returns:
 - Real value - POJO, Containerable, Objectable or Referencable.
 - Throws:
 SchemaException
 
- 
parseRealValueToJaxbElement
public <T> javax.xml.bind.JAXBElement<T> parseRealValueToJaxbElement() throws SchemaExceptionDescription copied from interface:PrismParserParses a real value and stores it into JAXBElement, using item name derived in the usual way.- Specified by:
 parseRealValueToJaxbElementin interfacePrismParser- Specified by:
 parseRealValueToJaxbElementin interfacePrismParserNoIO- Throws:
 SchemaException
 
- 
parseToXNode
public RootXNodeImpl parseToXNode() throws SchemaException
Description copied from interface:PrismParserParses the input into RootXNode. This is a bit unusual approach, skipping the unmarshalling phase altogether. But it is useful at some places.- Specified by:
 parseToXNodein interfacePrismParser- Specified by:
 parseToXNodein interfacePrismParserNoIO- Returns:
 - RootXNode corresponding to the input.
 - Throws:
 SchemaException
 
- 
parseObjects
@NotNull public @NotNull List<PrismObject<? extends Objectable>> parseObjects() throws SchemaException
Description copied from interface:PrismParserParses 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.- Specified by:
 parseObjectsin interfacePrismParser- Specified by:
 parseObjectsin interfacePrismParserNoIO- Returns:
 - A list of objects.
 - Throws:
 SchemaException
 
- 
parseObjectsIteratively
public void parseObjectsIteratively(@NotNull @NotNull PrismParser.ObjectHandler handler) throws SchemaExceptionDescription copied from interface:PrismParserCurrently implemented for JSON/YAML only. For XML, use old Validator code.- Specified by:
 parseObjectsIterativelyin interfacePrismParser- Specified by:
 parseObjectsIterativelyin interfacePrismParserNoIO- Throws:
 SchemaException
 
- 
parseItemOrRealValue
public Object parseItemOrRealValue() throws SchemaException
Description copied from interface:PrismParserParses 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.- Specified by:
 parseItemOrRealValuein interfacePrismParser- Specified by:
 parseItemOrRealValuein interfacePrismParserNoIO- Returns:
 - either prism item (Item) or a real value (Object)
 - Throws:
 SchemaException
 
- 
convertMissingTypes
public PrismParserNoIO convertMissingTypes()
- Specified by:
 convertMissingTypesin interfacePrismParser- Specified by:
 convertMissingTypesin interfacePrismParserNoIO
 
 - 
 
 -