Class PropertySchemaManagement
java.lang.Object
org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema>
org.gcube.informationsystem.resourceregistry.persistence.orientdb.types.properties.PropertySchemaManagement
- All Implemented Interfaces:
TypeDefinitionManagement
public class PropertySchemaManagement
extends ElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema>
implements TypeDefinitionManagement
- Author:
- Luca Frosini (ISTI - CNR)
-
Field Summary
FieldsFields inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement
accessType, affectedInstances, AT, cachedType, complete, DELETED, DOLLAR, dryRun, element, elementClass, entryPoint, ignoredFields, ignoreKeys, ignoreStartWithKeys, jsonNode, limit, maskMetadata, metadataPolicy, oClass, oDatabaseDocument, offset, operation, polymorphic, preservePassedMetadata, reload, sanityCheckDeferred, self, typeName, UNDERSCORE, updateMode, uuid, workingEnvironment -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newPropertySchemaManagementinstance.PropertySchemaManagement(TypeEnvironment typeEnvironment, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument) Creates a newPropertySchemaManagementinstance bound to the specified environment and database. -
Method Summary
Modifier and TypeMethodDescriptionprotected org.gcube.com.fasterxml.jackson.databind.JsonNodeAbstract method to create the complete JSON node representation of the element.protected com.orientechnologies.orient.core.record.OElementCreates the backing database element for this property type definition.Returns the map of instances affected by operations on this element.com.orientechnologies.orient.core.record.OElementReturns the OrientDB element instance, retrieving and caching it if not already present.getName()Returns the name of the Type definition.protected org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentExceptiongetSpecificAlreadyPresentException(String message) Converts a generic AlreadyPresentException into a subclass-specific AlreadyPresentException.protected org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptiongetSpecificNotFoundException(org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException e) Converts a generic NotFoundException into a subclass-specific NotFoundException.protected EnvironmentReturns the active database working environment.protected com.orientechnologies.orient.core.record.OElementPersists a new element in the database (subclass hook).protected voidDeletes an existing element from the database (subclass hook).Retrieves all elements from the database and returns them as a JSON array string.protected com.orientechnologies.orient.core.record.OElementUpdates an existing element in the database (subclass hook).com.orientechnologies.orient.core.record.OElementDirectly queries and retrieves the OrientDB element from the database.voidPerforms runtime validation of mandatory and not-null schema constraints that cannot be enforced directly by OrientDB in distributed mode.voidSets the name of the Type definition.Methods inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement
addIgnoredFields, afterModification, all, applyPrivacyMask, applyPrivacyMask, checkERMatch, checkJsonNode, checkUUIDMatch, checkUUIDNotAlreadyInUse, cleanCachedSerialization, concludeTransaction, create, createOrUpdate, createOrUpdateElementWithResult, delete, exists, getAccessType, getAllProperties, getCachedType, getCurrentODatabaseDocumentFromThreadLocal, getIgnoredFields, getLimit, getMandatoryErrorMessage, getMandatoryErrorMessage, getMetadataPolicy, getOClass, getOffset, getPropertyForJson, getPropertyMap, getTypeName, getUpdateMode, getUUID, internalCreate, internalCreateOrUdate, internalDelete, internalUpdate, isBackendLinkFieldName, isDryRun, isMaskMetadata, isPolymorphic, isPreservePassedMetadata, isReload, isSanityCheckDeferred, read, recordModification, requireExplicitUUID, retrieveElementFromAnyContext, serializeAsAffectedInstance, serializeAsEndpointReference, serializeAsJsonNode, serializeSelfAsJsonNode, setAsEntryPoint, setDryRun, setElement, setElementType, setIgnoredFields, setJson, setJsonNode, setLimit, setMaskMetadata, setMetadataPolicy, setOClass, setODatabaseDocument, setOffset, setOperation, setPolymorphic, setPreservePassedMetadata, setProperty, setReload, setRequireExplicitUUID, setSanityCheckDeferred, setUpdateMode, setUUID, setWorkingEnvironment, typeSatified, update, updateProperties
-
Field Details
-
name
The name of the property type.
-
-
Constructor Details
-
PropertySchemaManagement
public PropertySchemaManagement()Creates a newPropertySchemaManagementinstance. -
PropertySchemaManagement
public PropertySchemaManagement(TypeEnvironment typeEnvironment, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Creates a newPropertySchemaManagementinstance bound to the specified environment and database.- Parameters:
typeEnvironment- the type environmentoDatabaseDocument- the database connection- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if initialization fails
-
-
Method Details
-
getAffectedInstances
Description copied from class:ElementManagementReturns the map of instances affected by operations on this element.- Overrides:
getAffectedInstancesin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the map of affected instances
-
getWorkingEnvironment
protected Environment getWorkingEnvironment() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementReturns the active database working environment.- Specified by:
getWorkingEnvironmentin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the working environment
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the environment cannot be resolved
-
setName
Description copied from interface:TypeDefinitionManagementSets the name of the Type definition.- Specified by:
setNamein interfaceTypeDefinitionManagement- Parameters:
name- the name of the Type definition to set
-
getName
Description copied from interface:TypeDefinitionManagementReturns the name of the Type definition.- Specified by:
getNamein interfaceTypeDefinitionManagement- Returns:
- the name of the Type definition
-
createCompleteJsonNode
protected org.gcube.com.fasterxml.jackson.databind.JsonNode createCompleteJsonNode() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementAbstract method to create the complete JSON node representation of the element.- Specified by:
createCompleteJsonNodein classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the complete JSON node representing the element and its relationships
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on serialization or mapping error
-
reallyCreate
protected com.orientechnologies.orient.core.record.OElement reallyCreate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementPersists a new element in the database (subclass hook).- Specified by:
reallyCreatein classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the persisted OrientDB vertex
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException- if the element already exists in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database error
-
reallyUpdate
protected com.orientechnologies.orient.core.record.OElement reallyUpdate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementUpdates an existing element in the database (subclass hook).- Specified by:
reallyUpdatein classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the updated OrientDB vertex
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not exist in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database error
-
reallyDelete
protected void reallyDelete() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementDeletes an existing element from the database (subclass hook).- Specified by:
reallyDeletein classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not exist in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database error
-
getElement
public com.orientechnologies.orient.core.record.OElement getElement() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementReturns the OrientDB element instance, retrieving and caching it if not already present.- Overrides:
getElementin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the OrientDB element instance
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.instances.AvailableInAnotherContextException- if the element belongs to another contextorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database error
-
retrieveElement
public com.orientechnologies.orient.core.record.OElement retrieveElement() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementDirectly queries and retrieves the OrientDB element from the database.- Overrides:
retrieveElementin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- the loaded OrientDB element
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database error
-
createElement
protected com.orientechnologies.orient.core.record.OElement createElement() throws org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionCreates the backing database element for this property type definition.- Returns:
- the created database element
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException- if the element is already presentorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the database operation fails
-
reallyGetAll
public String reallyGetAll() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementRetrieves all elements from the database and returns them as a JSON array string.- Specified by:
reallyGetAllin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Returns:
- JSON array string of all elements
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database traversal or serialization error
-
getSpecificNotFoundException
protected org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException getSpecificNotFoundException(org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException e) Description copied from class:ElementManagementConverts a generic NotFoundException into a subclass-specific NotFoundException.- Specified by:
getSpecificNotFoundExceptionin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Parameters:
e- the generic exception- Returns:
- the specific NotFoundException
-
getSpecificAlreadyPresentException
protected org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException getSpecificAlreadyPresentException(String message) Description copied from class:ElementManagementConverts a generic AlreadyPresentException into a subclass-specific AlreadyPresentException.- Specified by:
getSpecificAlreadyPresentExceptionin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Parameters:
message- the exception message- Returns:
- the specific AlreadyPresentException
-
sanityCheck
public void sanityCheck() throws org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementPerforms runtime validation of mandatory and not-null schema constraints that cannot be enforced directly by OrientDB in distributed mode.- Overrides:
sanityCheckin classElementManagement<com.orientechnologies.orient.core.record.OElement,org.gcube.informationsystem.types.reference.properties.PropertySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException- if a schema constraint is violatedorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database lookup failure
-