public class SchemaManagerImpl extends Object implements SchemaManager
Holds basic types (String, Integer, etc.), schemas, document types and facets.
Modifier and Type | Field and Description |
---|---|
protected List<TypeConfiguration> |
allConfigurations
All the registered configurations (prefetch).
|
protected List<DocumentTypeDescriptor> |
allDocumentTypes
All the registered document types.
|
protected List<FacetDescriptor> |
allFacets
All the registered facets.
|
protected List<ProxiesDescriptor> |
allProxies
All the registered proxy descriptors.
|
protected List<SchemaBindingDescriptor> |
allSchemas
All the registered schemas.
|
static boolean |
CLEAR_COMPLEX_PROP_BEFORE_SET_DEFAULT
Default used for clearComplexPropertyBeforeSet if there is no XML configuration found.
|
protected boolean |
clearComplexPropertyBeforeSet
Effective clearComplexPropertyBeforeSet flag.
|
protected Map<String,Map<String,String>> |
deprecatedProperties |
protected boolean |
dirty
Whether there have been changes to the registered schemas, facets or document types that require recomputation of
the effective ones.
|
protected Map<String,DocumentTypeImpl> |
documentTypes
Effective document types.
|
protected Map<String,Set<String>> |
documentTypesExtending |
protected Map<String,Set<String>> |
documentTypesForFacet |
protected Map<String,CompositeType> |
facets
Effective facets.
|
protected Set<String> |
noPerDocumentQueryFacets |
protected PrefetchInfo |
prefetchInfo
Effective prefetch info.
|
protected Map<String,Schema> |
prefixToSchema |
protected Set<String> |
proxySchemaNames
Effective proxy schema names.
|
protected List<Schema> |
proxySchemas
Effective proxy schemas.
|
protected List<Runnable> |
recomputeCallbacks |
protected Map<String,Map<String,String>> |
removedProperties |
protected Map<String,Schema> |
schemas
Effective schemas.
|
static String |
SCHEMAS_DIR_NAME |
protected Map<String,Type> |
types
Basic type registry.
|
protected Map<String,Schema> |
uriToSchema |
Constructor and Description |
---|
SchemaManagerImpl() |
Modifier and Type | Method and Description |
---|---|
void |
checkDirty()
Checks if something has to be recomputed if a dynamic register/unregister happened.
|
protected void |
clearSchemaDir() |
protected void |
copySchema(SchemaBindingDescriptor sd) |
protected void |
executeRecomputeCallbacks() |
void |
flushPendingsRegistration() |
Set<String> |
getAllowedSubTypes(String typeName)
Returns the types of the children that can be created inside a given
type type. |
boolean |
getClearComplexPropertyBeforeSet()
Whether or not to ignore any previous values when setting complex properties.
|
PropertyDeprecationHandler |
getDeprecatedProperties() |
DocumentType |
getDocumentType(String name)
Gets a document type.
|
DocumentTypeDescriptor |
getDocumentTypeDescriptor(String name) |
Set<String> |
getDocumentTypeNamesExtending(String docTypeName)
Return the names of all document types extending the given one, which is included.
|
Set<String> |
getDocumentTypeNamesForFacet(String facet)
Returns the names of all document types that have given facet.
|
DocumentType[] |
getDocumentTypes()
Gets the list of document types.
|
int |
getDocumentTypesCount() |
CompositeType |
getFacet(String name)
Gets a facet.
|
FacetDescriptor |
getFacetDescriptor(String name) |
CompositeType[] |
getFacets()
Gets the list of facets.
|
Field |
getField(Field parent,
String subFieldName)
Returns the field with given parent field and sub name, or null if not found.
|
protected Field |
getField(Field parent,
String subFieldName,
boolean finalCall) |
Field |
getField(String xpath)
Returns the field with given xpath, or null if not found.
|
Set<String> |
getNoPerDocumentQueryFacets()
Finds which facets are configured as no-per-instance-query.
|
List<Schema> |
getProxySchemas(String docType)
Gets the schemas on a proxy for a document of the given type.
|
PropertyDeprecationHandler |
getRemovedProperties() |
Schema |
getSchema(String name)
Gets a schema.
|
Schema |
getSchemaFromPrefix(String schemaPrefix) |
Schema |
getSchemaFromURI(String schemaURI) |
Schema[] |
getSchemas()
Gets the list of schemas.
|
File |
getSchemasDir() |
protected Type |
getType(String name) |
protected Collection<Type> |
getTypes() |
boolean |
hasSuperType(String docType,
String superType)
Returns true if
docType is or extends superType , false otherwise. |
boolean |
isProxySchema(String schema,
String docType)
Checks if a schema is on a proxy for a document of the given type.
|
protected void |
loadSchema(SchemaBindingDescriptor sd) |
protected DocumentTypeDescriptor |
mergeDocumentTypeDescriptors(DocumentTypeDescriptor src,
DocumentTypeDescriptor dst) |
protected void |
recompute()
Recomputes effective registries for schemas, facets and document types.
|
protected void |
recomputeConfiguration() |
protected DocumentType |
recomputeDocumentType(String name,
DocumentTypeDescriptor dtd,
DocumentType parent) |
protected DocumentType |
recomputeDocumentType(String name,
Set<String> stack,
Map<String,DocumentTypeDescriptor> dtds) |
protected void |
recomputeDocumentTypes() |
void |
recomputeDynamicFacets() |
protected void |
recomputeFacet(FacetDescriptor fd) |
protected void |
recomputeFacets() |
protected void |
recomputeProxies() |
protected void |
recomputeSchemas() |
protected void |
registerBuiltinTypes() |
void |
registerConfiguration(TypeConfiguration config) |
void |
registerDocumentType(DocumentTypeDescriptor dtd) |
protected void |
registerDocumentType(DocumentTypeImpl docType) |
void |
registerFacet(FacetDescriptor fd) |
protected CompositeType |
registerFacet(String name,
Set<String> schemaNames) |
void |
registerPropertyDeprecation(PropertyDeprecationDescriptor descriptor) |
void |
registerProxies(ProxiesDescriptor pd) |
void |
registerRecomputeCallback(Runnable callback) |
protected void |
registerSchema(Schema schema) |
void |
registerSchema(SchemaBindingDescriptor sd) |
protected void |
registerType(Type type) |
protected Field |
resolveSubField(ListType listType,
String subName,
boolean fallbackOnSubElement) |
void |
unregisterConfiguration(TypeConfiguration config) |
void |
unregisterDocumentType(DocumentTypeDescriptor dtd) |
void |
unregisterFacet(FacetDescriptor fd) |
void |
unregisterPropertyDeprecation(PropertyDeprecationDescriptor descriptor) |
void |
unregisterProxies(ProxiesDescriptor pd) |
void |
unregisterRecomputeCallback(Runnable callback) |
void |
unregisterSchema(SchemaBindingDescriptor sd) |
protected volatile boolean dirty
protected List<TypeConfiguration> allConfigurations
protected List<SchemaBindingDescriptor> allSchemas
protected List<FacetDescriptor> allFacets
protected List<DocumentTypeDescriptor> allDocumentTypes
protected List<ProxiesDescriptor> allProxies
protected PrefetchInfo prefetchInfo
protected boolean clearComplexPropertyBeforeSet
protected final Map<String,Schema> uriToSchema
protected final Map<String,Schema> prefixToSchema
protected Map<String,CompositeType> facets
protected Set<String> noPerDocumentQueryFacets
protected Map<String,DocumentTypeImpl> documentTypes
protected Map<String,Set<String>> documentTypesExtending
protected Map<String,Set<String>> documentTypesForFacet
protected List<Schema> proxySchemas
protected Set<String> proxySchemaNames
public static final String SCHEMAS_DIR_NAME
public static final boolean CLEAR_COMPLEX_PROP_BEFORE_SET_DEFAULT
protected List<Runnable> recomputeCallbacks
public SchemaManagerImpl()
protected void clearSchemaDir()
public File getSchemasDir()
protected void registerBuiltinTypes()
protected void registerType(Type type)
protected Collection<Type> getTypes()
public void registerConfiguration(TypeConfiguration config)
public void unregisterConfiguration(TypeConfiguration config)
public void registerSchema(SchemaBindingDescriptor sd)
public void unregisterSchema(SchemaBindingDescriptor sd)
public void registerFacet(FacetDescriptor fd)
public void unregisterFacet(FacetDescriptor fd)
public void registerDocumentType(DocumentTypeDescriptor dtd)
public void unregisterDocumentType(DocumentTypeDescriptor dtd)
public DocumentTypeDescriptor getDocumentTypeDescriptor(String name)
public FacetDescriptor getFacetDescriptor(String name)
public void recomputeDynamicFacets()
public void registerProxies(ProxiesDescriptor pd)
public void unregisterProxies(ProxiesDescriptor pd)
public void checkDirty()
protected void recompute()
protected void recomputeConfiguration()
protected void recomputeSchemas()
protected void copySchema(SchemaBindingDescriptor sd) throws IOException
IOException
protected void loadSchema(SchemaBindingDescriptor sd) throws IOException, SAXException, TypeException
IOException
SAXException
TypeException
protected void registerSchema(Schema schema)
public Schema[] getSchemas()
TypeProvider
getSchemas
in interface TypeProvider
public Schema getSchema(String name)
TypeProvider
getSchema
in interface TypeProvider
public Schema getSchemaFromPrefix(String schemaPrefix)
getSchemaFromPrefix
in interface SchemaManager
public Schema getSchemaFromURI(String schemaURI)
getSchemaFromURI
in interface SchemaManager
protected void recomputeFacets()
protected void recomputeFacet(FacetDescriptor fd)
protected CompositeType registerFacet(String name, Set<String> schemaNames)
public CompositeType[] getFacets()
TypeProvider
getFacets
in interface TypeProvider
public CompositeType getFacet(String name)
TypeProvider
getFacet
in interface TypeProvider
public Set<String> getNoPerDocumentQueryFacets()
TypeProvider
getNoPerDocumentQueryFacets
in interface TypeProvider
protected void recomputeDocumentTypes()
protected DocumentTypeDescriptor mergeDocumentTypeDescriptors(DocumentTypeDescriptor src, DocumentTypeDescriptor dst)
protected DocumentType recomputeDocumentType(String name, Set<String> stack, Map<String,DocumentTypeDescriptor> dtds)
protected DocumentType recomputeDocumentType(String name, DocumentTypeDescriptor dtd, DocumentType parent)
protected void registerDocumentType(DocumentTypeImpl docType)
public DocumentType getDocumentType(String name)
TypeProvider
getDocumentType
in interface TypeProvider
public Set<String> getDocumentTypeNamesForFacet(String facet)
SchemaManager
getDocumentTypeNamesForFacet
in interface SchemaManager
public Set<String> getDocumentTypeNamesExtending(String docTypeName)
SchemaManager
getDocumentTypeNamesExtending
in interface SchemaManager
public DocumentType[] getDocumentTypes()
TypeProvider
getDocumentTypes
in interface TypeProvider
public int getDocumentTypesCount()
getDocumentTypesCount
in interface SchemaManager
public boolean hasSuperType(String docType, String superType)
SchemaManager
docType
is or extends superType
, false otherwise.hasSuperType
in interface SchemaManager
public Set<String> getAllowedSubTypes(String typeName)
SchemaManager
type
type.getAllowedSubTypes
in interface SchemaManager
protected void recomputeProxies()
public List<Schema> getProxySchemas(String docType)
TypeProvider
getProxySchemas
in interface TypeProvider
public boolean isProxySchema(String schema, String docType)
TypeProvider
isProxySchema
in interface TypeProvider
public Field getField(String xpath)
SchemaManager
getField
in interface SchemaManager
public Field getField(Field parent, String subFieldName)
SchemaManager
getField
in interface SchemaManager
protected Field resolveSubField(ListType listType, String subName, boolean fallbackOnSubElement)
public void flushPendingsRegistration()
public void registerRecomputeCallback(Runnable callback)
public void unregisterRecomputeCallback(Runnable callback)
protected void executeRecomputeCallbacks()
public void registerPropertyDeprecation(PropertyDeprecationDescriptor descriptor)
public void unregisterPropertyDeprecation(PropertyDeprecationDescriptor descriptor)
public PropertyDeprecationHandler getDeprecatedProperties()
getDeprecatedProperties
in interface SchemaManager
public PropertyDeprecationHandler getRemovedProperties()
getRemovedProperties
in interface SchemaManager
public boolean getClearComplexPropertyBeforeSet()
SchemaManager
getClearComplexPropertyBeforeSet
in interface SchemaManager
true
if setting a complex property ignores any previous valuesCopyright © 2018 Nuxeo. All rights reserved.