Interface SchemaRegistry
- All Superinterfaces:
- DebugDumpable,- DefinitionsStore,- GlobalDefinitionsStore,- SchemaRegistryState
Maintains system-wide schemas that is used as source for parsing during initialize and reload.
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic enumstatic interfaceNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.schema.SchemaRegistryStateSchemaRegistryState.DerivationKey<R>, SchemaRegistryState.IsList
- 
Field SummaryFields inherited from interface com.evolveum.midpoint.util.DebugDumpableINDENT_STRING
- 
Method SummaryModifier and TypeMethodDescription<T extends Objectable>
 voidapplyDefinition(ObjectDelta<T> objectDelta, Class<T> type, boolean force) <C extends Containerable>
 voidapplyDefinition(PrismContainer<C> container, Class<C> type) This method will try to locate the appropriate object definition and apply it.<C extends Containerable>
 voidapplyDefinition(PrismContainer<C> prismObject, Class<C> type, boolean force) <C extends Containerable,O extends Objectable> 
 voidapplyDefinition(PrismContainerValue<C> prismContainerValue, Class<O> type, ItemPath path, boolean force) <C extends Containerable>
 voidapplyDefinition(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path, boolean force) <ID extends ItemDefinition>
 SchemaRegistry.ComparisonResultcompareDefinitions(ID def1, ID def2) createAdHocDefinition(QName elementName, QName typeName, int minOccurs, int maxOccurs) voidClass<?>determineClassForItemDefinition(ItemDefinition<?> itemDefinition) default <T> Class<T>default <T> Class<T>determineClassForTypeRequired(QName type, Class<T> expected) default <T> Class<T>determineReferencedObjectDefinition(@NotNull QName targetTypeName, ItemPath rest) determineTypeForClass(Class<?> clazz) Tries to determine type name for any class (primitive, complex one).default @NotNull QNamedetermineTypeForClassRequired(Class<?> clazz) booleanfindItemDefinitionByElementName(QName elementName, @Nullable List<String> ignoredNamespaces) <T extends ItemDefinition>
 TfindItemDefinitionByFullPath(Class<? extends Objectable> objectClass, Class<T> defClass, QName... itemNames) static SchemaRegistryget()getAllSubTypesByTypeDefinition(List<TypeDefinition> typeClasses) default <T> Class<T>getCompileTimeClass(QName xsdType) Class<? extends ObjectType>getCompileTimeClassForObjectType(QName objectType) default @NotNull Class<? extends ObjectType>getCompileTimeClassForObjectTypeRequired(@NotNull QName objectType) @NotNull PrismContainerDefinition<?>booleanhasImplicitTypeDefinition(@NotNull QName itemName, @NotNull QName typeName) voidbooleanisAssignableFrom(@NotNull Class<?> superType, @NotNull QName subType) BEWARE: works only with statically-defined types!booleanisAssignableFrom(@NotNull QName superType, @NotNull QName subType) BEWARE: works only with statically-defined types!booleanisAssignableFromGeneral(@NotNull QName superType, @NotNull QName subType) Crawls through the type definition tree.booleanisContainerable(QName typeName) locateItemDefinition(@NotNull QName itemName, @Nullable QName explicitTypeName, @Nullable ComplexTypeDefinition complexTypeDefinition, @Nullable Function<QName, ItemDefinition> dynamicDefinitionResolver) qualifyTypeName(QName typeName) voidregisterDynamicSchemaExtensions(Map<String, Element> dbSchemaExtensions) voidvoidreload()resolveGlobalItemDefinition(QName itemName, @Nullable ComplexTypeDefinition complexTypeDefinition) selectMoreSpecific(@Nullable QName type1, @Nullable QName type2) Selects the type that is more specific of the two.<ID extends ItemDefinition>
 IDselectMoreSpecific(ID def1, ID def2) unifyTypes(QName type1, QName type2) Returns most specific common supertype for these two.Methods inherited from interface com.evolveum.midpoint.util.DebugDumpabledebugDump, debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.schema.GlobalDefinitionsStorefindComplexTypeDefinitionByCompileTimeClass, findComplexTypeDefinitionByType, findContainerDefinitionByCompileTimeClass, findContainerDefinitionByElementName, findContainerDefinitionByType, findItemDefinitionByCompileTimeClass, findItemDefinitionByElementName, findItemDefinitionByElementName, findItemDefinitionByType, findItemDefinitionByType, findItemDefinitionsByCompileTimeClass, findItemDefinitionsByElementName, findItemDefinitionsByElementName, findObjectDefinitionByCompileTimeClass, findObjectDefinitionByElementName, findObjectDefinitionByType, findPropertyDefinitionByElementName, findReferenceDefinitionByElementName, findSimpleTypeDefinitionByType, findTypeDefinitionByCompileTimeClass, findTypeDefinitionByType, findTypeDefinitionByType, findTypeDefinitionsByElementName, findTypeDefinitionsByType, findTypeDefinitionsByTypeMethods inherited from interface com.evolveum.midpoint.prism.schema.SchemaRegistryStatedetermineClassForType, determineCompileTimeClass, determineCompileTimeClassInternal, determineParentDefinition, findSchemaByCompileTimeClass, findSchemaByNamespace, findSchemaDescriptionByNamespace, findSchemaDescriptionByPrefix, getCompileTimePackages, getDerivedObject, getJavaxSchema, getNamespacePrefixMapper, getPrismSchema, getSchemas, isList, resolveUnqualifiedTypeName
- 
Method Details- 
get
- 
customizeNamespacePrefixMapper
- 
staticNamespaceContextPrismNamespaceContext staticNamespaceContext()
- 
registerInvalidationListener
- 
getDefaultNamespaceString getDefaultNamespace()
- 
reload- Throws:
- SchemaException
 
- 
initialize- Throws:
- SAXException
- IOException
- SchemaException
 
- 
getJavaxSchemaValidatorValidator getJavaxSchemaValidator()
- 
getSchemaDescriptionsCollection<SchemaDescription> getSchemaDescriptions()
- 
locateItemDefinitionItemDefinition locateItemDefinition(@NotNull @NotNull QName itemName, @Nullable @Nullable QName explicitTypeName, @Nullable @Nullable ComplexTypeDefinition complexTypeDefinition, @Nullable @Nullable Function<QName, ItemDefinition> dynamicDefinitionResolver) 
- 
qualifyTypeName- Throws:
- SchemaException
 
- 
determineReferencedObjectDefinitionPrismObjectDefinition determineReferencedObjectDefinition(@NotNull @NotNull QName targetTypeName, ItemPath rest) 
- 
getCompileTimeClassForObjectType
- 
getCompileTimeClassForObjectTypeRequired@NotNull default @NotNull Class<? extends ObjectType> getCompileTimeClassForObjectTypeRequired(@NotNull @NotNull QName objectType) 
- 
findItemDefinitionByElementNameItemDefinition findItemDefinitionByElementName(QName elementName, @Nullable @Nullable List<String> ignoredNamespaces) 
- 
getCompileTimeClass
- 
determineTypeForClassTries to determine type name for any class (primitive, complex one). Does not use schemas (TODO explanation)- Parameters:
- clazz-
- Returns:
 
- 
determineTypeForClassRequired
- 
applyDefinition<C extends Containerable> void applyDefinition(PrismContainer<C> container, Class<C> type) throws SchemaException This method will try to locate the appropriate object definition and apply it.- Parameters:
- container-
- type-
- Throws:
- SchemaException
 
- 
applyDefinition<C extends Containerable> void applyDefinition(PrismContainer<C> prismObject, Class<C> type, boolean force) throws SchemaException - Throws:
- SchemaException
 
- 
applyDefinition<T extends Objectable> void applyDefinition(ObjectDelta<T> objectDelta, Class<T> type, boolean force) throws SchemaException - Throws:
- SchemaException
 
- 
applyDefinition<C extends Containerable,O extends Objectable> void applyDefinition(PrismContainerValue<C> prismContainerValue, Class<O> type, ItemPath path, boolean force) throws SchemaException - Throws:
- SchemaException
 
- 
applyDefinition<C extends Containerable> void applyDefinition(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path, boolean force) throws SchemaException - Throws:
- SchemaException
 
- 
findItemDefinitionByFullPath<T extends ItemDefinition> T findItemDefinitionByFullPath(Class<? extends Objectable> objectClass, Class<T> defClass, QName... itemNames) throws SchemaException - Throws:
- SchemaException
 
- 
determineDefinitionFromClass
- 
getValueMetadataDefinition
- 
hasImplicitTypeDefinition
- 
resolveGlobalItemDefinitionItemDefinition resolveGlobalItemDefinition(QName itemName, @Nullable @Nullable ComplexTypeDefinition complexTypeDefinition) 
- 
determineJavaClassForType
- 
determineClassForTypeRequired
- 
determineClassForTypeRequired
- 
determineClassForItemDefinition
- 
selectMoreSpecific- Throws:
- SchemaException
 
- 
selectMoreSpecificQName selectMoreSpecific(@Nullable @Nullable QName type1, @Nullable @Nullable QName type2) throws SchemaException Selects the type that is more specific of the two. For example, if the input is `FocusType` and `UserType`, the output is `UserType`. Returns `null` if there's no such type. Limitations/specific handling: - Assumes both types have compile-time representation. May return `null` if that's not true. - The treatment of `PolyStringType` vs `String` is rather strange. Should be reviewed. FIXME- Throws:
- SchemaException
 
- 
isContainerable- Returns:
- true if the typeName corresponds to statically-typed class that is Containerable. TODO The utility of this method is questionable. Reconsider its removal/update.
 
- 
getCurrentLookupSchemaLookup.Mutable getCurrentLookup()
- 
compareDefinitions<ID extends ItemDefinition> SchemaRegistry.ComparisonResult compareDefinitions(@NotNull ID def1, @NotNull ID def2) throws SchemaException - Returns:
- null means we cannot decide (types are different, and no compile time class for def1 and/or def2)
- Throws:
- SchemaException
 
- 
isAssignableFromBEWARE: works only with statically-defined types!
- 
isAssignableFromBEWARE: works only with statically-defined types!
- 
isAssignableFromGeneral@Experimental boolean isAssignableFromGeneral(@NotNull @NotNull QName superType, @NotNull @NotNull QName subType) Crawls through the type definition tree. May be slower.
- 
unifyTypesReturns most specific common supertype for these two. If any of input params is null, it means it is ignored. FIXME is the implementation correct regarding this spec? E.g. for `UserType` and `RoleType` it should return `FocusType` but it returns `null` instead!- Returns:
- null if unification cannot be done (or if both input types are null)
 
- 
createAdHocDefinitionItemDefinition<?> createAdHocDefinition(QName elementName, QName typeName, int minOccurs, int maxOccurs) 
- 
getAllSubTypesByTypeDefinition
- 
registerDynamicSchemaExtensions- Throws:
- SchemaException
 
- 
existDynamicSchemaExtensionsboolean existDynamicSchemaExtensions()
 
-