Package com.evolveum.midpoint.prism.impl
Class PrismContextImpl
java.lang.Object
com.evolveum.midpoint.prism.impl.PrismContextImpl
- All Implemented Interfaces:
ProtectorCreator,PrismContext
- Author:
- semancik
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.prism.PrismContext
LANG_JSON, LANG_XML, LANG_YAML -
Method Summary
Modifier and TypeMethodDescriptionvoidadopt(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>
voidadopt(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path) <C extends Containerable,O extends Objectable>
voidvoidstatic PrismContextImplcreate(@NotNull SchemaRegistryImpl schemaRegistry) createCanonicalItemPath(ItemPath itemPath) TemporarycreateCanonicalItemPath(ItemPath itemPath, QName objectType) Temporary@NotNull PolyStringNormalizerCreates a configured poly string normalizer for the use by the client.static PrismContextImplcreateEmptyContext(@NotNull SchemaRegistryImpl schemaRegistry) Creates initialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.<O extends Objectable>
@NotNull PrismObject<O>createKnownObject(@NotNull Class<O> clazz) Creates a new PrismObject of a given static type.<O extends Objectable>
OcreateKnownObjectable(@NotNull Class<O> clazz) Creates a new Objectable of a given static type.<T extends Objectable>
@NotNull PrismObject<T>createObject(@NotNull Class<T> clazz) Creates a new PrismObject of a given type.<T extends Objectable>
TcreateObjectable(@NotNull Class<T> clazz) Creates a new Objectable of a given type.Creates uninitialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.createQueryParser(Map<String, String> prefixToNamespace) @NotNull DefinitionFactory@NotNull DeltaFactoryAccess point to the "old" way of creating deltas.<C extends Containerable>
S_ItemEntryStarts a delta builder, with the default item definition resolution (i.e.<C extends Containerable>
S_ItemEntrydeltaFor(Class<C> objectClass, ItemDefinitionResolver itemDefinitionResolver) Starts a delta builder, with a custom item definition resolver (e.g.@NotNull StringdetectLanguage(@NotNull File file) @NotNull PrismSerializer<Element>Creates a serializer for DOM.@NotNull BeanMarshallerWARNING! This is not really public method.@NotNull BeanUnmarshaller@NotNull PolyStringNormalizerReturns the default PolyString normalizer.Returns the default protector.Define default reference target type for cases, when missing it in schema for reference item.Type name for serialization of Referencable that's not of XML type (e.g.If defined, it is considered to be the same as the relation of 'null'.@NotNull SchemaDefinitionFactory@NotNull JaxbDomHack@NotNull LexicalProcessorRegistryIf defined, marks the 'multiple objects' element.WARNING! This is not really public method.@NotNull PrismMarshaller@NotNull PrismUnmarshallerWARNING! This is not really public method.@NotNull QueryConverter@NotNull SchemaRegistryReturns the schema registry.hacks()voidInitializes the prism context, e.g.booleanisDefaultRelation(QName relation) static boolean@NotNull ItemFactory@NotNull ItemPathParser@NotNull ItemPathSerializer@NotNull PrismSerializer<String>Creates a serializer for JSON language.@NotNull PrismParserNoIOCreates a parser ready to process data from the given XNode tree.@NotNull PrismParserCreates a parser ready to process the given file.@NotNull PrismParserparserFor(@NotNull InputStream stream) Creates a parser ready to process data from the given input stream.@NotNull PrismParserNoIOCreates a parser ready to process data from the given string.@NotNull PrismParserNoIOCreates a parser ready to process data from the given DOM element.@NotNull QueryFactoryAccess point to the "old" way of creating queries, filters and paging instructions.queryFor(Class<? extends Containerable> type) Starts a query builder with the goal of creating a query targeted at given object or container type.queryFor(Class<? extends Containerable> type, ItemDefinitionResolver itemDefinitionResolver) Starts a query builder, with a custom item definition resolver (e.g.queryForReferenceOwnedBy(Class<? extends Containerable> ownerClass, ItemPath referencePath) Starts a query builder for reference search, with the default item definition resolution (i.e.voidvoidbooleanrelationMatches(@NotNull 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) @NotNull SchemaFactory@NotNull PrismSerializer<String>serializerFor(@NotNull String language) Creates a serializer for the given language.voidsetDefaultProtector(Protector defaultProtector) voidsetDefaultReferenceTargetType(QName defaultTargetType) voidsetDefaultReferenceTypeName(QName defaultReferenceTypeName) voidsetDefaultRelation(QName defaultRelation) voidsetDefinitionFactory(SchemaDefinitionFactory schemaDefinitionFactory) voidsetExtensionContainerTypeName(QName typeName) voidsetExtraValidation(boolean value) voidsetMonitor(PrismMonitor monitor) voidsetObjectsElementName(QName objectsElementName) voidsetParsingMigrator(ParsingMigrator parsingMigrator) voidsetProvenanceEquivalenceStrategy(EquivalenceStrategy provenanceEquivalenceStrategy) voidsetValueMetadataFactory(ValueMetadataFactory valueMetadataFactory) @NotNull UniformItemPathtoUniformPath(ItemPath path) TemporarytoUniformPath(ItemPathType path) valueBasedDefinitionLookupsForType(QName typeName) @NotNull PrismSerializer<String>Creates a serializer for XML language.@NotNull PrismSerializer<RootXNode>Creates a serializer for XNode.@NotNull PrismSerializer<String>Creates a serializer for YAML language.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.prism.PrismContext
createQueryParser, parseObject, parseObject, toPath
-
Method Details
-
create
-
createEmptyContext
public static PrismContextImpl createEmptyContext(@NotNull @NotNull SchemaRegistryImpl schemaRegistry) -
initialize
Description 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
-
createConfiguredPolyStringNormalizer
@NotNull public @NotNull PolyStringNormalizer createConfiguredPolyStringNormalizer(PolyStringNormalizerConfigurationType configuration) throws InstantiationException, IllegalAccessException, ClassNotFoundException Description copied from interface:PrismContextCreates a configured poly string normalizer for the use by the client. Does not set anything inPrismContext.- Specified by:
createConfiguredPolyStringNormalizerin interfacePrismContext- Throws:
InstantiationExceptionIllegalAccessExceptionClassNotFoundException
-
isExtraValidation
public static boolean isExtraValidation() -
getEntityResolver
-
getSchemaRegistry
Description copied from interface:PrismContextReturns the schema registry.- Specified by:
getSchemaRegistryin interfacePrismContext
-
getPrismUnmarshaller
WARNING! This is not really public method. It should NOT be used outside the prism implementation. -
getPrismMarshaller
-
getParserDom
WARNING! This is not really public method. It should NOT be used outside the prism implementation. -
getBeanMarshaller
WARNING! This is not really public method. It should NOT be used outside the prism implementation. -
getBeanUnmarshaller
-
getJaxbDomHack
-
getDefinitionFactory
-
setDefinitionFactory
-
getDefaultPolyStringNormalizer
Description copied from interface:PrismContextReturns the default PolyString normalizer.- Specified by:
getDefaultPolyStringNormalizerin interfacePrismContext
-
getDefaultProtector
Description copied from interface:PrismContextReturns the default protector.- Specified by:
getDefaultProtectorin interfacePrismContext
-
setDefaultProtector
-
getQueryConverter
- Specified by:
getQueryConverterin interfacePrismContext
-
getMonitor
- Specified by:
getMonitorin interfacePrismContext
-
setMonitor
- Specified by:
setMonitorin interfacePrismContext
-
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
- Specified by:
setDefaultRelationin interfacePrismContext
-
setDefaultReferenceTargetType
-
getDefaultReferenceTargetType
Description copied from interface:PrismContextDefine default reference target type for cases, when missing it in schema for reference item.- Specified by:
getDefaultReferenceTargetTypein interfacePrismContext
-
getObjectsElementName
Description copied from interface:PrismContextIf defined, marks the 'multiple objects' element.- Specified by:
getObjectsElementNamein interfacePrismContext
-
setObjectsElementName
-
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
-
getExtensionContainerTypeName
- Specified by:
getExtensionContainerTypeNamein interfacePrismContext- Returns:
- Name of the generic type for object/container extension (e.g. c:ExtensionType).
-
setExtensionContainerTypeName
- Specified by:
setExtensionContainerTypeNamein interfacePrismContext
-
parserFor
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
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
Description copied from interface:PrismContextCreates a parser ready to process data from the given string. Format/language of the data will be auto-detected, so the typically followingPrismParser.language(String)can be omitted.- Specified by:
parserForin interfacePrismContext- Parameters:
data- String with the data to be parsed.- Returns:
- Parser that can be invoked to retrieve the (parsed) content.
-
parserFor
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
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
- Specified by:
detectLanguagein interfacePrismContext- Throws:
IOException
-
getParsingMigrator
- Specified by:
getParsingMigratorin interfacePrismContext
-
setParsingMigrator
- 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
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
- Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
adopt
- 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> void adopt(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path) throws SchemaException - Specified by:
adoptin interfacePrismContext- Throws:
SchemaException
-
serializerFor
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
Description copied from interface:PrismContextCreates a serializer for XML language.- Specified by:
xmlSerializerin interfacePrismContext- Returns:
- The serializer.
-
jsonSerializer
Description copied from interface:PrismContextCreates a serializer for JSON language.- Specified by:
jsonSerializerin interfacePrismContext- Returns:
- The serializer.
-
yamlSerializer
Description copied from interface:PrismContextCreates a serializer for YAML language.- Specified by:
yamlSerializerin interfacePrismContext- Returns:
- The serializer.
-
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
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.
-
createObject
@NotNull public <T extends Objectable> @NotNull PrismObject<T> createObject(@NotNull @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 @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> @NotNull PrismObject<O> createKnownObject(@NotNull @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
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
-
isDefaultRelation
- Specified by:
isDefaultRelationin interfacePrismContext
-
relationsEquivalent
- Specified by:
relationsEquivalentin interfacePrismContext
-
relationMatches
- Specified by:
relationMatchesin interfacePrismContext
-
relationMatches
Description copied from interface:PrismContextReturns true of any of the relation in the relationQuery list matches specified relation.- Specified by:
relationMatchesin interfacePrismContext
-
getDefaultParsingContext
- Specified by:
getDefaultParsingContextin interfacePrismContext
-
createParsingContextForAllowMissingRefTypes
- Specified by:
createParsingContextForAllowMissingRefTypesin interfacePrismContext
-
createParsingContextForCompatibilityMode
- Specified by:
createParsingContextForCompatibilityModein interfacePrismContext
-
emptyPath
- Specified by:
emptyPathin interfacePrismContext
-
path
- Specified by:
pathin interfacePrismContext
-
hacks
- Specified by:
hacksin interfacePrismContext
-
xnodeFactory
- Specified by:
xnodeFactoryin interfacePrismContext
-
xnodeMutator
- Specified by:
xnodeMutatorin interfacePrismContext
-
createInitializedProtector
Description copied from interface:ProtectorCreatorCreates initialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.- Specified by:
createInitializedProtectorin interfaceProtectorCreator
-
createProtector
Description copied from interface:ProtectorCreatorCreates uninitialized KeyStoreBasedProtector according to configured KeyStoreBasedProtectorBuilder object.- Specified by:
createProtectorin interfaceProtectorCreator
-
toUniformPath
Description copied from interface:PrismContextTemporary- Specified by:
toUniformPathin interfacePrismContext
-
toUniformPathKeepNull
- Specified by:
toUniformPathKeepNullin interfacePrismContext
-
toUniformPath
- Specified by:
toUniformPathin interfacePrismContext
-
createCanonicalItemPath
Description copied from interface:PrismContextTemporary- Specified by:
createCanonicalItemPathin interfacePrismContext
-
createCanonicalItemPath
Description copied from interface:PrismContextTemporary- Specified by:
createCanonicalItemPathin interfacePrismContext
-
deltaFor
Description copied from interface:PrismContextStarts a delta builder, with the default item definition resolution (i.e. from the system-wide schema).- Specified by:
deltaForin interfacePrismContext- Throws:
SchemaException
-
deltaFor
public <C extends Containerable> S_ItemEntry deltaFor(Class<C> objectClass, ItemDefinitionResolver itemDefinitionResolver) throws SchemaException Description copied from interface:PrismContextStarts a delta builder, with a custom item definition resolver (e.g. for resource-specific deltas). Usually not called directly from a general client code.- Specified by:
deltaForin interfacePrismContext- Throws:
SchemaException
-
queryFor
Description copied from interface:PrismContextStarts a query builder with the goal of creating a query targeted at given object or container type. The resolution of items (properties, references, containers) used in the query formulation is done by the default process, i.e. from the system-wide schema.- Specified by:
queryForin interfacePrismContext- Parameters:
type- The type of object or container values queried. This information is used to resolve the definitions of items used in query formulation. It is _not_ meant to restrict the objects returned when the query is eventually applied. If you want to restrict the type of objects returned right in the query (and not just when making e.g. the `searchObjects` call), please consider usingS_FilterEntry.type(Class)orS_FilterEntry.type(QName).
-
queryFor
public S_FilterEntryOrEmpty queryFor(Class<? extends Containerable> type, ItemDefinitionResolver itemDefinitionResolver) Description copied from interface:PrismContextStarts a query builder, with a custom item definition resolver (e.g. for resource-specific queries). Usually not called directly from a general client code.- Specified by:
queryForin interfacePrismContext- See Also:
-
queryForReferenceOwnedBy
public S_FilterEntryOrEmpty queryForReferenceOwnedBy(Class<? extends Containerable> ownerClass, ItemPath referencePath) Description copied from interface:PrismContextStarts a query builder for reference search, with the default item definition resolution (i.e. from the system-wide schema). After this call the mandatory owned-by filter based on the provided parameters is initiated. The next step can be: * writing a filter (e.g. item+condition call) which will be interpreted as a nested owner filter; * starting a block, which will, again, specify the nested owner filter; * continuing with other filter using and/or (which finishes the owned-by filter) - unless a logical filter, the next filter should be a ref filter; * or callingS_QueryExit.build()to finish the query builder.- Specified by:
queryForReferenceOwnedByin interfacePrismContext
-
deltaFactory
Description copied from interface:PrismContextAccess point to the "old" way of creating deltas. It is generally considered deprecated. DeltaBuilder (accessed via deltaFor method) should be used instead.However, because there is some functionality (like creation of empty deltas) that is not covered by the delta builder, we keep this method not marked as deprecated. Only particular parts of DeltaFactory are marked as deprecated.
- Specified by:
deltaFactoryin interfacePrismContext
-
queryFactory
Description copied from interface:PrismContextAccess point to the "old" way of creating queries, filters and paging instructions. It is generally considered deprecated. QueryBuilder (accessed via queryFor method) should be used instead.However, because there is some functionality (like creation of standalone paging instructions) that is not covered by the query builder, we keep this method not marked as deprecated. Only particular parts of QueryFactory are marked as deprecated.
- Specified by:
queryFactoryin interfacePrismContext
-
itemFactory
- Specified by:
itemFactoryin interfacePrismContext
-
definitionFactory
- Specified by:
definitionFactoryin interfacePrismContext
-
itemPathParser
- Specified by:
itemPathParserin interfacePrismContext
-
itemPathSerializer
- Specified by:
itemPathSerializerin interfacePrismContext
-
setExtraValidation
public void setExtraValidation(boolean value) - Specified by:
setExtraValidationin interfacePrismContext
-
schemaFactory
- Specified by:
schemaFactoryin interfacePrismContext
-
setValueMetadataFactory
- Specified by:
setValueMetadataFactoryin interfacePrismContext
-
getValueMetadataFactory
- Specified by:
getValueMetadataFactoryin interfacePrismContext
-
getProvenanceEquivalenceStrategy
- Specified by:
getProvenanceEquivalenceStrategyin interfacePrismContext
-
setProvenanceEquivalenceStrategy
-
registerQueryExpressionFactory
- Specified by:
registerQueryExpressionFactoryin interfacePrismContext
-
createQueryParser
- Specified by:
createQueryParserin interfacePrismContext
-
querySerializer
- Specified by:
querySerializerin interfacePrismContext
-
registerValueBasedDefinitionLookup
- Specified by:
registerValueBasedDefinitionLookupin interfacePrismContext
-
valueBasedDefinitionLookupsForType
public Collection<ValueBasedDefinitionLookupHelper> valueBasedDefinitionLookupsForType(QName typeName) - Specified by:
valueBasedDefinitionLookupsForTypein interfacePrismContext
-