Package com.evolveum.midpoint.prism.impl
Class PrismContextImpl
- java.lang.Object
-
- com.evolveum.midpoint.prism.impl.PrismContextImpl
-
- All Implemented Interfaces:
ProtectorCreator,PrismContext
public final class PrismContextImpl extends Object implements PrismContext
- Author:
- semancik
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.prism.PrismContext
LANG_JSON, LANG_XML, LANG_YAML
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidadopt(Containerable containerable)<T extends Objectable>
voidadopt(ObjectDelta<T> delta)voidadopt(Objectable objectable)<C extends Containerable>
voidadopt(PrismContainer<C> container)<C extends Containerable>
voidadopt(PrismContainer<C> container, Class<C> declaredType)Set up the specified object with prism context instance and schema definition.voidadopt(PrismContainerValue value)<C extends Containerable,O extends Objectable>
voidadopt(PrismContainerValue<C> prismContainerValue, Class<O> type, ItemPath path)<C extends Containerable,O extends Objectable>
voidadopt(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path)<C extends Containerable,O extends Objectable>
voidadopt(C containerable, Class<O> type, ItemPath path)booleancanSerialize(Object value)TODOvoidconfigurePolyStringNormalizer(PolyStringNormalizerConfigurationType configuration)static PrismContextImplcreate(SchemaRegistryImpl schemaRegistry)CanonicalItemPathcreateCanonicalItemPath(ItemPath itemPath)TemporaryCanonicalItemPathcreateCanonicalItemPath(ItemPath itemPath, Class<? extends Containerable> clazz)Temporarystatic PrismContextImplcreateEmptyContext(SchemaRegistryImpl schemaRegistry)KeyStoreBasedProtectorcreateInitializedProtector(KeyStoreBasedProtectorBuilder builder)Creates initialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.<O extends Objectable>
PrismObject<O>createKnownObject(Class<O> clazz)Creates a new PrismObject of a given static type.<O extends Objectable>
OcreateKnownObjectable(Class<O> clazz)Creates a new Objectable of a given static type.<T extends Objectable>
PrismObject<T>createObject(Class<T> clazz)Creates a new PrismObject of a given type.<T extends Objectable>
TcreateObjectable(Class<T> clazz)Creates a new Objectable of a given type.ParsingContextcreateParsingContextForAllowMissingRefTypes()ParsingContextcreateParsingContextForCompatibilityMode()KeyStoreBasedProtectorcreateProtector(KeyStoreBasedProtectorBuilder builder)Creates uninitialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.DefinitionFactorydefinitionFactory()DeltaFactorydeltaFactory()<C extends Containerable>
S_ItemEntrydeltaFor(Class<C> objectClass)StringdetectLanguage(File file)PrismSerializer<Element>domSerializer()Creates a serializer for DOM.UniformItemPathemptyPath()BeanMarshallergetBeanMarshaller()WARNING! This is not really public method.BeanUnmarshallergetBeanUnmarshaller()ParsingContextgetDefaultParsingContext()PolyStringNormalizergetDefaultPolyStringNormalizer()Returns the default PolyString normalizer.ProtectorgetDefaultProtector()Returns the default protector.QNamegetDefaultReferenceTypeName()Type name for serialization of Referencable that's not of XML type (e.g.QNamegetDefaultRelation()If defined, it is considered to be the same as the relation of 'null'.SchemaDefinitionFactorygetDefinitionFactory()XmlEntityResolvergetEntityResolver()Do not use.JaxbDomHackgetJaxbDomHack()TODO eliminate this methodLexicalProcessorRegistrygetLexicalProcessorRegistry()PrismMonitorgetMonitor()QNamegetObjectsElementName()If defined, marks the 'multiple objects' element.DomLexicalProcessorgetParserDom()WARNING! This is not really public method.ParsingMigratorgetParsingMigrator()PrismMarshallergetPrismMarshaller()PrismUnmarshallergetPrismUnmarshaller()WARNING! This is not really public method.QueryConvertergetQueryConverter()SchemaRegistrygetSchemaRegistry()Returns the schema registry.Hackshacks()voidinitialize()Initializes the prism context, e.g.static booleanisAllowSchemalessSerialization()booleanisDefaultRelation(QName relation)static booleanisExtraValidation()ItemFactoryitemFactory()ItemPathParseritemPathParser()PrismSerializer<String>jsonSerializer()Creates a serializer for JSON language.PrismParserNoIOparserFor(RootXNode xnode)Creates a parser ready to process data from the given XNode tree.PrismParserparserFor(File file)Creates a parser ready to process the given file.PrismParserparserFor(InputStream stream)Creates a parser ready to process data from the given input stream.PrismParserNoIOparserFor(String data)Creates a parser ready to process data from the given string.PrismParserNoIOparserFor(Element data)Deprecated.UniformItemPathpath(Object... namesOrIdsOrSegments)QueryFactoryqueryFactory()S_FilterEntryOrEmptyqueryFor(Class<? extends Containerable> queryClass)booleanrelationMatches(List<QName> relationQuery, QName relation)Returns true of any of the relation in the relationQuery list matches specified relation.booleanrelationMatches(QName relationQuery, QName relation)booleanrelationsEquivalent(QName relation1, QName relation2)SchemaFactoryschemaFactory()<O extends Objectable>
StringserializeObjectToString(PrismObject<O> object, String language)PrismSerializer<String>serializerFor(String language)Creates a serializer for the given language.static voidsetAllowSchemalessSerialization(boolean allowSchemalessSerialization)voidsetDefaultProtector(Protector defaultProtector)voidsetDefaultReferenceTypeName(QName defaultReferenceTypeName)voidsetDefaultRelation(QName defaultRelation)voidsetDefinitionFactory(SchemaDefinitionFactory schemaDefinitionFactory)voidsetExtraValidation(boolean value)voidsetMonitor(PrismMonitor monitor)voidsetObjectsElementName(QName objectsElementName)voidsetParsingMigrator(ParsingMigrator parsingMigrator)UniformItemPathtoUniformPath(ItemPath path)TemporaryUniformItemPathtoUniformPath(ItemPathType path)UniformItemPathtoUniformPathKeepNull(ItemPath path)PrismSerializer<String>xmlSerializer()Creates a serializer for XML language.XNodeFactoryxnodeFactory()XNodeMutatorxnodeMutator()PrismSerializer<RootXNode>xnodeSerializer()Creates a serializer for XNode.PrismSerializer<String>yamlSerializer()Creates a serializer for YAML language.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContext
parseObject, parseObject, toPath
-
-
-
-
Method Detail
-
create
public static PrismContextImpl create(@NotNull SchemaRegistryImpl schemaRegistry)
-
createEmptyContext
public static PrismContextImpl createEmptyContext(@NotNull SchemaRegistryImpl schemaRegistry)
-
initialize
public void initialize() throws SchemaException, SAXException, IOExceptionDescription copied from interface:PrismContextInitializes the prism context, e.g. loads and parses all the schemas.- Specified by:
initializein interfacePrismContext- Throws:
SchemaExceptionSAXExceptionIOException
-
configurePolyStringNormalizer
public void configurePolyStringNormalizer(PolyStringNormalizerConfigurationType configuration) throws ClassNotFoundException, InstantiationException, IllegalAccessException
- Specified by:
configurePolyStringNormalizerin interfacePrismContext- Throws:
ClassNotFoundExceptionInstantiationExceptionIllegalAccessException
-
isAllowSchemalessSerialization
public static boolean isAllowSchemalessSerialization()
-
setAllowSchemalessSerialization
public static void setAllowSchemalessSerialization(boolean allowSchemalessSerialization)
-
isExtraValidation
public static boolean isExtraValidation()
-
getEntityResolver
public XmlEntityResolver getEntityResolver()
Description copied from interface:PrismContextDo not use.- Specified by:
getEntityResolverin interfacePrismContext
-
getSchemaRegistry
@NotNull public SchemaRegistry getSchemaRegistry()
Description copied from interface:PrismContextReturns the schema registry.- Specified by:
getSchemaRegistryin interfacePrismContext
-
getPrismUnmarshaller
public PrismUnmarshaller getPrismUnmarshaller()
WARNING! This is not really public method. It should NOT not used outside the prism implementation.
-
getPrismMarshaller
@NotNull public PrismMarshaller getPrismMarshaller()
-
getParserDom
public DomLexicalProcessor getParserDom()
WARNING! This is not really public method. It should NOT not used outside the prism implementation.
-
getBeanMarshaller
@NotNull public BeanMarshaller getBeanMarshaller()
WARNING! This is not really public method. It should NOT not used outside the prism implementation.
-
getBeanUnmarshaller
@NotNull public BeanUnmarshaller getBeanUnmarshaller()
-
getJaxbDomHack
@NotNull public JaxbDomHack getJaxbDomHack()
Description copied from interface:PrismContextTODO eliminate this method- Specified by:
getJaxbDomHackin interfacePrismContext
-
getDefinitionFactory
@NotNull public SchemaDefinitionFactory getDefinitionFactory()
-
setDefinitionFactory
public void setDefinitionFactory(SchemaDefinitionFactory schemaDefinitionFactory)
-
getDefaultPolyStringNormalizer
@NotNull public PolyStringNormalizer getDefaultPolyStringNormalizer()
Description copied from interface:PrismContextReturns the default PolyString normalizer.- Specified by:
getDefaultPolyStringNormalizerin interfacePrismContext
-
getDefaultProtector
public Protector getDefaultProtector()
Description copied from interface:PrismContextReturns the default protector. (TODO)- Specified by:
getDefaultProtectorin interfacePrismContext
-
setDefaultProtector
public void setDefaultProtector(Protector defaultProtector)
-
getQueryConverter
@NotNull public QueryConverter getQueryConverter()
- Specified by:
getQueryConverterin interfacePrismContext
-
getMonitor
public PrismMonitor getMonitor()
- Specified by:
getMonitorin interfacePrismContext
-
setMonitor
public void setMonitor(PrismMonitor monitor)
- Specified by:
setMonitorin interfacePrismContext
-
getDefaultRelation
public QName getDefaultRelation()
Description copied from interface:PrismContextIf defined, it is considered to be the same as the relation of 'null'. Currently in midPoint, it is the value of org:default.- Specified by:
getDefaultRelationin interfacePrismContext
-
setDefaultRelation
public void setDefaultRelation(QName defaultRelation)
- Specified by:
setDefaultRelationin interfacePrismContext
-
getObjectsElementName
public QName getObjectsElementName()
Description copied from interface:PrismContextIf defined, marks the 'multiple objects' element.- Specified by:
getObjectsElementNamein interfacePrismContext
-
setObjectsElementName
public void setObjectsElementName(QName objectsElementName)
-
getDefaultReferenceTypeName
public QName getDefaultReferenceTypeName()
Description copied from interface:PrismContextType name for serialization of Referencable that's not of XML type (e.g. DefaultReferencableImpl). In midPoint it's c:ObjectReferenceType. VERY EXPERIMENTAL. Maybe we should simply use t:ObjectReferenceType in such cases.- Specified by:
getDefaultReferenceTypeNamein interfacePrismContext
-
setDefaultReferenceTypeName
public void setDefaultReferenceTypeName(QName defaultReferenceTypeName)
-
parserFor
@NotNull public PrismParser parserFor(@NotNull File file)
Description copied from interface:PrismContextCreates a parser ready to process the given file.- Specified by:
parserForin interfacePrismContext- Parameters:
file- File to be parsed.- Returns:
- Parser that can be invoked to retrieve the (parsed) content of the file.
-
parserFor
@NotNull public PrismParser parserFor(@NotNull InputStream stream)
Description copied from interface:PrismContextCreates a parser ready to process data from the given input stream.- Specified by:
parserForin interfacePrismContext- Parameters:
stream- Input stream to be parsed.- Returns:
- Parser that can be invoked to retrieve the (parsed) content of the input stream.
-
parserFor
@NotNull public PrismParserNoIO parserFor(@NotNull String data)
Description copied from interface:PrismContextCreates a parser ready to process data from the given string.- Specified by:
parserForin interfacePrismContext- Parameters:
data- String with the data to be parsed. It has be in UTF-8 encoding. (For other encodings please use InputStream or File source.)- Returns:
- Parser that can be invoked to retrieve the (parsed) content.
-
parserFor
@NotNull public PrismParserNoIO parserFor(@NotNull RootXNode xnode)
Description copied from interface:PrismContextCreates a parser ready to process data from the given XNode tree.- Specified by:
parserForin interfacePrismContext- Parameters:
xnode- XNode tree with the data to be parsed.- Returns:
- Parser that can be invoked to retrieve the (parsed) content.
-
parserFor
@NotNull @Deprecated public PrismParserNoIO parserFor(@NotNull Element data)
Deprecated.Description copied from interface:PrismContextCreates a parser ready to process data from the given DOM element.- Specified by:
parserForin interfacePrismContext- Parameters:
data- Element with the data to be parsed.- Returns:
- Parser that can be invoked to retrieve the (parsed) content.
-
detectLanguage
@NotNull public String detectLanguage(@NotNull File file) throws IOException
- Specified by:
detectLanguagein interfacePrismContext- Throws:
IOException
-
getParsingMigrator
public ParsingMigrator getParsingMigrator()
- Specified by:
getParsingMigratorin interfacePrismContext
-
setParsingMigrator
public void setParsingMigrator(ParsingMigrator parsingMigrator)
- Specified by:
setParsingMigratorin interfacePrismContext
-
adopt
public <C extends Containerable> void adopt(PrismContainer<C> container, Class<C> declaredType) throws SchemaException
Set up the specified object with prism context instance and schema definition.- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public <C extends Containerable> void adopt(PrismContainer<C> container) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public void adopt(Objectable objectable) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public void adopt(Containerable containerable) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public void adopt(PrismContainerValue value) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public <T extends Objectable> void adopt(ObjectDelta<T> delta) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public <C extends Containerable,O extends Objectable> void adopt(C containerable, Class<O> type, ItemPath path) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public <C extends Containerable,O extends Objectable> void adopt(PrismContainerValue<C> prismContainerValue, Class<O> type, ItemPath path) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
public <C extends Containerable,O extends Objectable> void adopt(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path) throws SchemaException
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
serializeObjectToString
public <O extends Objectable> String serializeObjectToString(PrismObject<O> object, String language) throws SchemaException
- Specified by:
serializeObjectToStringin interfacePrismContext- Throws:
SchemaException
-
serializerFor
@NotNull public PrismSerializer<String> serializerFor(@NotNull String language)
Description copied from interface:PrismContextCreates a serializer for the given language.- Specified by:
serializerForin interfacePrismContext- Parameters:
language- Language (like xml, json, yaml).- Returns:
- The serializer.
-
xmlSerializer
@NotNull public PrismSerializer<String> xmlSerializer()
Description copied from interface:PrismContextCreates a serializer for XML language.- Specified by:
xmlSerializerin interfacePrismContext- Returns:
- The serializer.
-
jsonSerializer
@NotNull public PrismSerializer<String> jsonSerializer()
Description copied from interface:PrismContextCreates a serializer for JSON language.- Specified by:
jsonSerializerin interfacePrismContext- Returns:
- The serializer.
-
yamlSerializer
@NotNull public PrismSerializer<String> yamlSerializer()
Description copied from interface:PrismContextCreates a serializer for YAML language.- Specified by:
yamlSerializerin interfacePrismContext- Returns:
- The serializer.
-
domSerializer
@NotNull public PrismSerializer<Element> domSerializer()
Description copied from interface:PrismContextCreates a serializer for DOM. The difference from XML serializer is that XML produces String output whereas this one produces a DOM Element.- Specified by:
domSerializerin interfacePrismContext- Returns:
- The serializer.
-
xnodeSerializer
@NotNull public PrismSerializer<RootXNode> xnodeSerializer()
Description copied from interface:PrismContextCreates a serializer for XNode. The output of this serializer is intermediate XNode representation.- Specified by:
xnodeSerializerin interfacePrismContext- Returns:
- The serializer.
-
canSerialize
public boolean canSerialize(Object value)
Description copied from interface:PrismContextTODO- Specified by:
canSerializein interfacePrismContext- Returns:
-
createObject
@NotNull public <T extends Objectable> PrismObject<T> createObject(@NotNull Class<T> clazz) throws SchemaException
Description copied from interface:PrismContextCreates a new PrismObject of a given type.- Specified by:
createObjectin interfacePrismContext- Parameters:
clazz- Static type of the object to be created.- Returns:
- New PrismObject.
- Throws:
SchemaException- If a definition for the given class couldn't be found.
-
createObjectable
@NotNull public <T extends Objectable> T createObjectable(@NotNull Class<T> clazz) throws SchemaException
Description copied from interface:PrismContextCreates a new Objectable of a given type.- Specified by:
createObjectablein interfacePrismContext- Parameters:
clazz- Static type of the object to be created.- Returns:
- New PrismObject's objectable content.
- Throws:
SchemaException- If a definition for the given class couldn't be found.
-
createKnownObject
@NotNull public <O extends Objectable> PrismObject<O> createKnownObject(@NotNull Class<O> clazz)
Description copied from interface:PrismContextCreates a new PrismObject of a given static type. It is expected that the type exists, so any SchemaExceptions will be thrown as run-time exception.- Specified by:
createKnownObjectin interfacePrismContext- Parameters:
clazz- Static type of the object to be created.- Returns:
- New PrismObject.
-
createKnownObjectable
@NotNull public <O extends Objectable> O createKnownObjectable(@NotNull Class<O> clazz)
Description copied from interface:PrismContextCreates a new Objectable of a given static type. It is expected that the type exists, so any SchemaExceptions will be thrown as run-time exception.- Specified by:
createKnownObjectablein interfacePrismContext- Parameters:
clazz- Static type of the object to be created.- Returns:
- New PrismObject's objectable content.
-
getLexicalProcessorRegistry
@NotNull public LexicalProcessorRegistry getLexicalProcessorRegistry()
-
isDefaultRelation
public boolean isDefaultRelation(QName relation)
- Specified by:
isDefaultRelationin interfacePrismContext
-
relationsEquivalent
public boolean relationsEquivalent(QName relation1, QName relation2)
- Specified by:
relationsEquivalentin interfacePrismContext
-
relationMatches
public boolean relationMatches(QName relationQuery, QName relation)
- Specified by:
relationMatchesin interfacePrismContext
-
relationMatches
public boolean relationMatches(@NotNull List<QName> relationQuery, QName relation)Description copied from interface:PrismContextReturns true of any of the relation in the relationQuery list matches specified relation.- Specified by:
relationMatchesin interfacePrismContext
-
getDefaultParsingContext
public ParsingContext getDefaultParsingContext()
- Specified by:
getDefaultParsingContextin interfacePrismContext
-
createParsingContextForAllowMissingRefTypes
public ParsingContext createParsingContextForAllowMissingRefTypes()
- Specified by:
createParsingContextForAllowMissingRefTypesin interfacePrismContext
-
createParsingContextForCompatibilityMode
public ParsingContext createParsingContextForCompatibilityMode()
- Specified by:
createParsingContextForCompatibilityModein interfacePrismContext
-
emptyPath
public UniformItemPath emptyPath()
- Specified by:
emptyPathin interfacePrismContext
-
path
public UniformItemPath path(Object... namesOrIdsOrSegments)
- Specified by:
pathin interfacePrismContext
-
hacks
public Hacks hacks()
- Specified by:
hacksin interfacePrismContext
-
xnodeFactory
public XNodeFactory xnodeFactory()
- Specified by:
xnodeFactoryin interfacePrismContext
-
xnodeMutator
public XNodeMutator xnodeMutator()
- Specified by:
xnodeMutatorin interfacePrismContext
-
createInitializedProtector
public KeyStoreBasedProtector createInitializedProtector(KeyStoreBasedProtectorBuilder builder)
Description copied from interface:ProtectorCreatorCreates initialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.- Specified by:
createInitializedProtectorin interfaceProtectorCreator
-
createProtector
public KeyStoreBasedProtector createProtector(KeyStoreBasedProtectorBuilder builder)
Description copied from interface:ProtectorCreatorCreates uninitialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.- Specified by:
createProtectorin interfaceProtectorCreator
-
toUniformPath
@NotNull public UniformItemPath toUniformPath(ItemPath path)
Description copied from interface:PrismContextTemporary- Specified by:
toUniformPathin interfacePrismContext
-
toUniformPathKeepNull
public UniformItemPath toUniformPathKeepNull(ItemPath path)
- Specified by:
toUniformPathKeepNullin interfacePrismContext
-
toUniformPath
public UniformItemPath toUniformPath(ItemPathType path)
- Specified by:
toUniformPathin interfacePrismContext
-
createCanonicalItemPath
public CanonicalItemPath createCanonicalItemPath(ItemPath itemPath, Class<? extends Containerable> clazz)
Description copied from interface:PrismContextTemporary- Specified by:
createCanonicalItemPathin interfacePrismContext
-
createCanonicalItemPath
public CanonicalItemPath createCanonicalItemPath(ItemPath itemPath)
Description copied from interface:PrismContextTemporary- Specified by:
createCanonicalItemPathin interfacePrismContext
-
deltaFor
public <C extends Containerable> S_ItemEntry deltaFor(Class<C> objectClass) throws SchemaException
- Specified by:
deltaForin interfacePrismContext- Throws:
SchemaException
-
queryFor
public S_FilterEntryOrEmpty queryFor(Class<? extends Containerable> queryClass)
- Specified by:
queryForin interfacePrismContext
-
deltaFactory
@NotNull public DeltaFactory deltaFactory()
- Specified by:
deltaFactoryin interfacePrismContext
-
queryFactory
@NotNull public QueryFactory queryFactory()
- Specified by:
queryFactoryin interfacePrismContext
-
itemFactory
@NotNull public ItemFactory itemFactory()
- Specified by:
itemFactoryin interfacePrismContext
-
definitionFactory
@NotNull public DefinitionFactory definitionFactory()
- Specified by:
definitionFactoryin interfacePrismContext
-
itemPathParser
@NotNull public ItemPathParser itemPathParser()
- Specified by:
itemPathParserin interfacePrismContext
-
setExtraValidation
public void setExtraValidation(boolean value)
- Specified by:
setExtraValidationin interfacePrismContext
-
schemaFactory
@NotNull public SchemaFactory schemaFactory()
- Specified by:
schemaFactoryin interfacePrismContext
-
-