public class SchemaRegistryImpl extends Object implements DebugDumpable, SchemaRegistry
SchemaRegistry.ComparisonResult
INDENT_STRING
Constructor and Description |
---|
SchemaRegistryImpl() |
Modifier and Type | Method and Description |
---|---|
<O extends Objectable> |
applyDefinition(ObjectDelta<O> objectDelta,
Class<O> compileTimeClass,
boolean force) |
<C extends Containerable> |
applyDefinition(PrismContainer<C> container,
Class<C> type)
This method will try to locate the appropriate object definition and apply it.
|
<C extends Containerable> |
applyDefinition(PrismContainer<C> container,
Class<C> compileTimeClass,
boolean force) |
<C extends Containerable,O extends Objectable> |
applyDefinition(PrismContainerValue<C> prismContainerValue,
Class<O> compileTimeClass,
ItemPath path,
boolean force) |
<C extends Containerable> |
applyDefinition(PrismContainerValue<C> prismContainerValue,
QName typeName,
ItemPath path,
boolean force) |
boolean |
areComparable(QName type1,
QName type2) |
<ID extends ItemDefinition> |
compareDefinitions(ID def1,
ID def2) |
ItemDefinition<?> |
createAdHocDefinition(QName elementName,
QName typeName,
int minOccurs,
int maxOccurs) |
static ItemDefinition |
createDefaultItemDefinition(QName itemName,
PrismContext prismContext) |
String |
debugDump()
Show the content of the object intended for diagnostics by system administrator.
|
String |
debugDump(int indent) |
Class<?> |
determineClassForItemDefinition(ItemDefinition<?> itemDefinition) |
<T> Class<T> |
determineClassForType(QName type) |
<T> Class<T> |
determineClassForTypeNotNull(QName typeName) |
<T> Class<T> |
determineCompileTimeClass(QName typeName) |
<T> Class<T> |
determineCompileTimeClassNotNull(QName typeName) |
PrismObjectDefinition |
determineDefinitionFromClass(Class compileTimeClass) |
ComplexTypeDefinition |
determineParentDefinition(ComplexTypeDefinition child,
ItemPath rest) |
PrismObjectDefinition |
determineReferencedObjectDefinition(QName targetTypeName,
ItemPath rest) |
QName |
determineTypeForClass(Class<?> clazz)
Tries to determine type name for any class (primitive, complex one).
|
ItemDefinition |
findItemDefinitionByElementName(QName elementName,
List<String> ignoredNamespaces) |
<T extends ItemDefinition> |
findItemDefinitionByFullPath(Class<? extends Objectable> objectClass,
Class<T> defClass,
QName... itemNames) |
<ID extends ItemDefinition> |
findItemDefinitionByType(QName typeName,
Class<ID> definitionClass) |
<ID extends ItemDefinition> |
findItemDefinitionsByCompileTimeClass(Class<?> compileTimeClass,
Class<ID> definitionClass) |
<ID extends ItemDefinition> |
findItemDefinitionsByElementName(QName elementName,
Class<ID> definitionClass) |
PrismSchema |
findSchemaByCompileTimeClass(Class<?> compileTimeClass) |
PrismSchema |
findSchemaByNamespace(String namespaceURI) |
PrismSchema |
findSchemaByPrefix(String prefix) |
SchemaDescription |
findSchemaDescriptionByNamespace(String namespaceURI) |
SchemaDescription |
findSchemaDescriptionByPrefix(String prefix) |
<TD extends TypeDefinition> |
findTypeDefinitionByCompileTimeClass(Class<?> compileTimeClass,
Class<TD> definitionClass) |
<TD extends TypeDefinition> |
findTypeDefinitionByType(QName typeName,
Class<TD> definitionClass) |
<TD extends TypeDefinition> |
findTypeDefinitionsByElementName(QName name,
Class<TD> clazz) |
<TD extends TypeDefinition> |
findTypeDefinitionsByType(QName typeName,
Class<TD> definitionClass) |
EntityResolver |
getBuiltinSchemaResolver() |
File[] |
getCatalogFiles() |
String |
getCatalogResourceName() |
<T> Class<T> |
getCompileTimeClass(QName xsdType) |
Class<? extends ObjectType> |
getCompileTimeClassForObjectType(QName objectType) |
Collection<Package> |
getCompileTimePackages() |
String |
getDefaultNamespace() |
XmlEntityResolver |
getEntityResolver() |
Schema |
getJavaxSchema() |
DynamicNamespacePrefixMapper |
getNamespacePrefixMapper() |
org.apache.commons.collections4.MultiValuedMap<String,SchemaDescription> |
getParsedSchemas() |
PrismContext |
getPrismContext() |
PrismSchema |
getPrismSchema(String namespace) |
Collection<SchemaDescription> |
getSchemaDescriptions() |
Collection<PrismSchema> |
getSchemas() |
boolean |
hasImplicitTypeDefinition(QName itemName,
QName typeName)
Answers the question: "If the receiver would get itemName without any other information, will it be able to
derive suitable typeName from it?" If not, we have to provide explicit type definition for serialization.
|
void |
initialize()
This can be used to read additional schemas even after the registry was initialized.
|
<T extends Objectable> |
instantiate(Class<T> compileTimeClass)
Deprecated.
|
boolean |
isAssignableFrom(QName superType,
QName subType) |
boolean |
isContainer(QName typeName) |
SchemaDescription |
loadPrismSchemaDescription(InputStream input,
String sourceDescription) |
void |
loadPrismSchemaFile(File file) |
SchemaDescription |
loadPrismSchemaFileDescription(File file) |
void |
loadPrismSchemaResource(String resourcePath) |
void |
loadPrismSchemasFromDirectory(File directory)
This can be used to read additional schemas even after the registry was initialized.
|
<T extends Containerable> |
locateItemDefinition(QName itemName,
ComplexTypeDefinition complexTypeDefinition,
Function<QName,ItemDefinition> dynamicDefinitionResolver) |
QName |
qualifyTypeName(QName typeName) |
void |
registerPrismDefaultSchemaResource(String resourcePath,
String usualPrefix,
Package compileTimeClassesPackage)
Must be called before call to initialize()
|
void |
registerPrismSchema(InputStream input,
String sourceDescription) |
void |
registerPrismSchemaFile(File file) |
void |
registerPrismSchemaResource(String resourcePath,
String usualPrefix)
Must be called before call to initialize()
|
void |
registerPrismSchemaResource(String resourcePath,
String usualPrefix,
Package compileTimeClassesPackage)
Must be called before call to initialize()
|
void |
registerPrismSchemaResource(String resourcePath,
String usualPrefix,
Package compileTimeClassesPackage,
boolean prefixDeclaredByDefault)
Must be called before call to initialize()
|
void |
registerPrismSchemaResource(String resourcePath,
String usualPrefix,
Package compileTimeClassesPackage,
boolean defaultSchema,
boolean prefixDeclaredByDefault)
Must be called before call to initialize()
|
void |
registerPrismSchemasFromDirectory(File directory) |
void |
registerPrismSchemasFromWsdlResource(String resourcePath,
List<Package> compileTimeClassesPackages) |
void |
registerSchema(Node node,
String sourceDescription)
Must be called before call to initialize()
|
void |
registerSchema(Node node,
String sourceDescription,
String usualPrefix)
Must be called before call to initialize()
|
void |
registerSchemaResource(String resourcePath,
String usualPrefix)
Must be called before call to initialize()
|
ItemDefinition |
resolveGlobalItemDefinition(QName elementQName)
Looks for a top-level definition for the specified element name (in all schemas).
|
ItemDefinition |
resolveGlobalItemDefinition(QName itemName,
ComplexTypeDefinition complexTypeDefinition) |
ItemDefinition |
resolveGlobalItemDefinition(QName elementQName,
PrismContainerDefinition<?> containerDefinition) |
QName |
resolveUnqualifiedTypeName(QName type) |
<ID extends ItemDefinition> |
selectMoreSpecific(ID def1,
ID def2) |
QName |
selectMoreSpecific(QName type1,
QName type2) |
void |
setCatalogFiles(File[] catalogFiles) |
void |
setCatalogResourceName(String catalogResourceName) |
void |
setDefaultNamespace(String defaultNamespace) |
void |
setNamespacePrefixMapper(DynamicNamespacePrefixMapper namespacePrefixMapper) |
void |
setPrismContext(PrismContext prismContext) |
QName |
unifyTypes(QName type1,
QName type2)
Returns most specific common supertype for these two.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
debugDumpLazily, debugDumpLazily
findComplexTypeDefinition, findComplexTypeDefinitionByCompileTimeClass, findComplexTypeDefinitionByType, findContainerDefinitionByCompileTimeClass, findContainerDefinitionByElementName, findContainerDefinitionByType, findItemDefinition, findItemDefinition, findItemDefinitionByCompileTimeClass, findItemDefinitionByElementName, findItemDefinitionByElementName, findItemDefinitionByType, findItemDefinitionsByElementName, findObjectDefinitionByCompileTimeClass, findObjectDefinitionByElementName, findObjectDefinitionByType, findPropertyDefinitionByElementName, findReferenceDefinitionByElementName, findSimpleTypeDefinitionByType, findTypeDefinitionByType, findTypeDefinitionsByType
public DynamicNamespacePrefixMapper getNamespacePrefixMapper()
getNamespacePrefixMapper
in interface SchemaRegistry
public void setNamespacePrefixMapper(DynamicNamespacePrefixMapper namespacePrefixMapper)
public PrismContext getPrismContext()
getPrismContext
in interface SchemaRegistry
public void setPrismContext(PrismContext prismContext)
public XmlEntityResolver getEntityResolver()
public org.apache.commons.collections4.MultiValuedMap<String,SchemaDescription> getParsedSchemas()
public EntityResolver getBuiltinSchemaResolver()
public File[] getCatalogFiles()
public void setCatalogFiles(File[] catalogFiles)
public String getCatalogResourceName()
public void setCatalogResourceName(String catalogResourceName)
public String getDefaultNamespace()
getDefaultNamespace
in interface SchemaRegistry
public void setDefaultNamespace(String defaultNamespace)
public void registerSchemaResource(String resourcePath, String usualPrefix) throws SchemaException
SchemaException
public void registerPrismSchemaResource(String resourcePath, String usualPrefix) throws SchemaException
SchemaException
public void registerPrismSchemasFromWsdlResource(String resourcePath, List<Package> compileTimeClassesPackages) throws SchemaException
SchemaException
public void registerPrismSchemaResource(String resourcePath, String usualPrefix, Package compileTimeClassesPackage) throws SchemaException
SchemaException
public void registerPrismSchemaResource(String resourcePath, String usualPrefix, Package compileTimeClassesPackage, boolean prefixDeclaredByDefault) throws SchemaException
SchemaException
public void registerPrismDefaultSchemaResource(String resourcePath, String usualPrefix, Package compileTimeClassesPackage) throws SchemaException
SchemaException
public void registerPrismSchemaResource(String resourcePath, String usualPrefix, Package compileTimeClassesPackage, boolean defaultSchema, boolean prefixDeclaredByDefault) throws SchemaException
prefixDeclaredByDefault
- Whether this prefix will be declared in top element in all XML serializations (MID-2198)SchemaException
public void registerSchema(Node node, String sourceDescription) throws SchemaException
node
- SchemaException
public void registerSchema(Node node, String sourceDescription, String usualPrefix) throws SchemaException
node
- SchemaException
public void registerPrismSchemaFile(File file) throws FileNotFoundException, SchemaException
FileNotFoundException
SchemaException
public void registerPrismSchema(InputStream input, String sourceDescription) throws SchemaException
SchemaException
public SchemaDescription loadPrismSchemaFileDescription(File file) throws FileNotFoundException, SchemaException
FileNotFoundException
SchemaException
public SchemaDescription loadPrismSchemaDescription(InputStream input, String sourceDescription) throws SchemaException
SchemaException
public void registerPrismSchemasFromDirectory(File directory) throws FileNotFoundException, SchemaException
FileNotFoundException
SchemaException
public void loadPrismSchemasFromDirectory(File directory) throws FileNotFoundException, SchemaException
FileNotFoundException
SchemaException
public void loadPrismSchemaFile(File file) throws FileNotFoundException, SchemaException
FileNotFoundException
SchemaException
public void loadPrismSchemaResource(String resourcePath) throws SchemaException
SchemaException
public void initialize() throws SAXException, IOException, SchemaException
initialize
in interface SchemaRegistry
SAXException
IOException
SchemaException
public Schema getJavaxSchema()
getJavaxSchema
in interface SchemaRegistry
public Collection<Package> getCompileTimePackages()
getCompileTimePackages
in interface SchemaRegistry
public String debugDump()
DebugDumpable
debugDump
in interface DebugDumpable
public String debugDump(int indent)
debugDump
in interface DebugDumpable
public <C extends Containerable> void applyDefinition(PrismContainer<C> container, Class<C> type) throws SchemaException
SchemaRegistry
applyDefinition
in interface SchemaRegistry
SchemaException
public <C extends Containerable> void applyDefinition(PrismContainer<C> container, Class<C> compileTimeClass, boolean force) throws SchemaException
applyDefinition
in interface SchemaRegistry
SchemaException
public <O extends Objectable> void applyDefinition(ObjectDelta<O> objectDelta, Class<O> compileTimeClass, boolean force) throws SchemaException
applyDefinition
in interface SchemaRegistry
SchemaException
public <C extends Containerable,O extends Objectable> void applyDefinition(PrismContainerValue<C> prismContainerValue, Class<O> compileTimeClass, ItemPath path, boolean force) throws SchemaException
applyDefinition
in interface SchemaRegistry
SchemaException
public <C extends Containerable> void applyDefinition(PrismContainerValue<C> prismContainerValue, QName typeName, ItemPath path, boolean force) throws SchemaException
applyDefinition
in interface SchemaRegistry
SchemaException
@NotNull public <ID extends ItemDefinition> List<ID> findItemDefinitionsByCompileTimeClass(@NotNull Class<?> compileTimeClass, @NotNull Class<ID> definitionClass)
findItemDefinitionsByCompileTimeClass
in interface GlobalDefinitionsStore
@Nullable public <ID extends ItemDefinition> ID findItemDefinitionByType(@NotNull QName typeName, @NotNull Class<ID> definitionClass)
findItemDefinitionByType
in interface GlobalDefinitionsStore
@NotNull public <ID extends ItemDefinition> List<ID> findItemDefinitionsByElementName(@NotNull QName elementName, @NotNull Class<ID> definitionClass)
findItemDefinitionsByElementName
in interface GlobalDefinitionsStore
@Nullable public <TD extends TypeDefinition> TD findTypeDefinitionByCompileTimeClass(@NotNull Class<?> compileTimeClass, @NotNull Class<TD> definitionClass)
findTypeDefinitionByCompileTimeClass
in interface GlobalDefinitionsStore
@Nullable public <TD extends TypeDefinition> TD findTypeDefinitionByType(@NotNull QName typeName, @NotNull Class<TD> definitionClass)
findTypeDefinitionByType
in interface GlobalDefinitionsStore
@NotNull public <TD extends TypeDefinition> Collection<? extends TD> findTypeDefinitionsByType(@NotNull QName typeName, @NotNull Class<TD> definitionClass)
findTypeDefinitionsByType
in interface GlobalDefinitionsStore
@NotNull public <TD extends TypeDefinition> Collection<TD> findTypeDefinitionsByElementName(@NotNull QName name, @NotNull Class<TD> clazz)
findTypeDefinitionsByElementName
in interface SchemaRegistry
public <T extends ItemDefinition> T findItemDefinitionByFullPath(Class<? extends Objectable> objectClass, Class<T> defClass, QName... itemNames) throws SchemaException
findItemDefinitionByFullPath
in interface SchemaRegistry
SchemaException
public ItemDefinition findItemDefinitionByElementName(QName elementName, @Nullable List<String> ignoredNamespaces)
findItemDefinitionByElementName
in interface SchemaRegistry
public <T> Class<T> determineCompileTimeClass(QName typeName)
determineCompileTimeClass
in interface SchemaRegistry
@NotNull public <T> Class<T> determineCompileTimeClassNotNull(QName typeName)
public <T> Class<T> getCompileTimeClass(QName xsdType)
getCompileTimeClass
in interface SchemaRegistry
public Class<? extends ObjectType> getCompileTimeClassForObjectType(QName objectType)
getCompileTimeClassForObjectType
in interface SchemaRegistry
public PrismObjectDefinition determineDefinitionFromClass(Class compileTimeClass)
determineDefinitionFromClass
in interface SchemaRegistry
public <T extends Containerable> ItemDefinition locateItemDefinition(@NotNull QName itemName, @Nullable ComplexTypeDefinition complexTypeDefinition, @Nullable Function<QName,ItemDefinition> dynamicDefinitionResolver) throws SchemaException
locateItemDefinition
in interface SchemaRegistry
SchemaException
public QName resolveUnqualifiedTypeName(QName type) throws SchemaException
resolveUnqualifiedTypeName
in interface SchemaRegistry
SchemaException
public QName qualifyTypeName(QName typeName) throws SchemaException
qualifyTypeName
in interface SchemaRegistry
SchemaException
public ComplexTypeDefinition determineParentDefinition(@NotNull ComplexTypeDefinition child, @NotNull ItemPath rest)
determineParentDefinition
in interface SchemaRegistry
public PrismObjectDefinition determineReferencedObjectDefinition(@NotNull QName targetTypeName, ItemPath rest)
determineReferencedObjectDefinition
in interface SchemaRegistry
public ItemDefinition resolveGlobalItemDefinition(QName elementQName) throws SchemaException
resolveGlobalItemDefinition
in interface SchemaRegistry
SchemaException
public ItemDefinition resolveGlobalItemDefinition(QName elementQName, PrismContainerDefinition<?> containerDefinition) throws SchemaException
resolveGlobalItemDefinition
in interface SchemaRegistry
SchemaException
public ItemDefinition resolveGlobalItemDefinition(QName itemName, @Nullable ComplexTypeDefinition complexTypeDefinition) throws SchemaException
resolveGlobalItemDefinition
in interface SchemaRegistry
SchemaException
public PrismSchema getPrismSchema(String namespace)
getPrismSchema
in interface SchemaRegistry
public Collection<PrismSchema> getSchemas()
getSchemas
in interface SchemaRegistry
public Collection<SchemaDescription> getSchemaDescriptions()
getSchemaDescriptions
in interface SchemaRegistry
public PrismSchema findSchemaByCompileTimeClass(@NotNull Class<?> compileTimeClass)
findSchemaByCompileTimeClass
in interface SchemaRegistry
public PrismSchema findSchemaByNamespace(String namespaceURI)
findSchemaByNamespace
in interface SchemaRegistry
public SchemaDescription findSchemaDescriptionByNamespace(String namespaceURI)
findSchemaDescriptionByNamespace
in interface SchemaRegistry
public PrismSchema findSchemaByPrefix(String prefix)
findSchemaByPrefix
in interface SchemaRegistry
public SchemaDescription findSchemaDescriptionByPrefix(String prefix)
findSchemaDescriptionByPrefix
in interface SchemaRegistry
public static ItemDefinition createDefaultItemDefinition(QName itemName, PrismContext prismContext)
@Deprecated public <T extends Objectable> PrismObject<T> instantiate(Class<T> compileTimeClass) throws SchemaException
instantiate
in interface SchemaRegistry
SchemaException
public boolean hasImplicitTypeDefinition(@NotNull QName itemName, @NotNull QName typeName)
hasImplicitTypeDefinition
in interface SchemaRegistry
public QName determineTypeForClass(Class<?> clazz)
SchemaRegistry
determineTypeForClass
in interface SchemaRegistry
public <T> Class<T> determineClassForType(QName type)
determineClassForType
in interface SchemaRegistry
@NotNull public <T> Class<T> determineClassForTypeNotNull(QName typeName)
public Class<?> determineClassForItemDefinition(ItemDefinition<?> itemDefinition)
determineClassForItemDefinition
in interface SchemaRegistry
public <ID extends ItemDefinition> ID selectMoreSpecific(ID def1, ID def2) throws SchemaException
selectMoreSpecific
in interface SchemaRegistry
SchemaException
public QName selectMoreSpecific(QName type1, QName type2) throws SchemaException
selectMoreSpecific
in interface SchemaRegistry
SchemaException
public boolean areComparable(QName type1, QName type2) throws SchemaException
areComparable
in interface SchemaRegistry
SchemaException
public <ID extends ItemDefinition> SchemaRegistry.ComparisonResult compareDefinitions(@NotNull ID def1, @NotNull ID def2) throws SchemaException
compareDefinitions
in interface SchemaRegistry
SchemaException
public boolean isAssignableFrom(@NotNull QName superType, @NotNull QName subType)
isAssignableFrom
in interface SchemaRegistry
public QName unifyTypes(QName type1, QName type2)
SchemaRegistry
unifyTypes
in interface SchemaRegistry
public boolean isContainer(QName typeName)
isContainer
in interface SchemaRegistry
public ItemDefinition<?> createAdHocDefinition(QName elementName, QName typeName, int minOccurs, int maxOccurs)
createAdHocDefinition
in interface SchemaRegistry
Copyright © 2019 Evolveum. All rights reserved.