Package org.alfresco.repo.domain.propval
Class AbstractPropertyValueDAOImpl
- java.lang.Object
-
- org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl
-
- All Implemented Interfaces:
PropertyValueDAO
- Direct Known Subclasses:
PropertyValueDAOImpl
public abstract class AbstractPropertyValueDAOImpl extends java.lang.Object implements PropertyValueDAO
Abstract implementation for Property Value DAO.This provides basic services such as caching, but defers to the underlying implementation for CRUD operations.
- Since:
- 3.2
- Author:
- Derek Hulley
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractPropertyValueDAOImpl.CachePucKeyKey for PropertyUniqueContext cache-
Nested classes/interfaces inherited from interface org.alfresco.repo.domain.propval.PropertyValueDAO
PropertyValueDAO.PropertyFinderCallback, PropertyValueDAO.PropertyUniqueContextCallback
-
-
Field Summary
Fields Modifier and Type Field Description protected ControlDAOcontrolDAOprotected PropertyTypeConverterconverterprotected org.apache.commons.logging.Loglogger
-
Constructor Summary
Constructors Constructor Description AbstractPropertyValueDAOImpl()Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidclearCaches()protected java.io.SerializableconstructEmptyContainer(java.lang.Class<?> clazz)Returns a reconstructable instancejava.io.SerializableconvertPropertyIdSearchRows(java.util.List<PropertyIdSearchRow> rows)Utility method to convert property query results into the original value.protected abstract PropertyClassEntitycreateClass(java.lang.Class<?> value)protected abstract PropertyDateValueEntitycreateDateValue(java.util.Date value)protected abstract PropertyDoubleValueEntitycreateDoubleValue(java.lang.Double value)java.lang.LongcreateProperty(java.io.Serializable value)Use for accessing non-unique, exploded properties; see interface comments.protected abstract voidcreatePropertyLink(java.lang.Long rootPropId, java.lang.Long propIndex, java.lang.Long containedIn, java.lang.Long keyPropId, java.lang.Long valuePropId)Create an entry for the map or collection link.protected abstract java.lang.LongcreatePropertyRoot()org.alfresco.util.Pair<java.lang.Long,java.io.Serializable>createPropertySerializableValue(java.io.Serializable value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Long>createPropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3, java.io.Serializable propertyValue1)alf_prop_unique_ctx accessor: create a unique context with an optional associated value.protected abstract PropertyUniqueContextEntitycreatePropertyUniqueContext(java.lang.Long valueId1, java.lang.Long valueId2, java.lang.Long valueId3, java.lang.Long propertyId)protected abstract PropertyValueEntitycreatePropertyValue(java.io.Serializable value)protected abstract PropertySerializableValueEntitycreateSerializableValue(java.io.Serializable value)protected abstract java.lang.LongcreateStringValue(java.lang.String value)voiddeleteProperty(java.lang.Long id)Use for accessing non-unique, exploded properties; see interface comments.protected abstract intdeletePropertyLinks(java.lang.Long rootPropId)Remove all property links for a given property root.protected abstract voiddeletePropertyRoot(java.lang.Long id)intdeletePropertyUniqueContext(java.io.Serializable... values)Delete sets of unique contexts based on one, two or three context values.protected abstract intdeletePropertyUniqueContexts(java.lang.Long... valueIds)protected abstract PropertyClassEntityfindClassById(java.lang.Long id)protected abstract PropertyClassEntityfindClassByValue(java.lang.Class<?> value)protected abstract PropertyDateValueEntityfindDateValueById(java.lang.Long id)protected abstract PropertyDateValueEntityfindDateValueByValue(java.util.Date value)protected abstract PropertyDoubleValueEntityfindDoubleValueById(java.lang.Long id)protected abstract PropertyDoubleValueEntityfindDoubleValueByValue(java.lang.Double value)protected abstract voidfindPropertiesByIds(java.util.List<java.lang.Long> ids, PropertyValueDAO.PropertyFinderCallback callback)protected abstract java.util.List<PropertyIdSearchRow>findPropertyById(java.lang.Long id)protected abstract PropertyValueEntityfindPropertyValueById(java.lang.Long id)protected abstract PropertyValueEntityfindPropertyValueByValue(java.io.Serializable value)protected abstract PropertySerializableValueEntityfindSerializableValueById(java.lang.Long id)protected abstract java.lang.StringfindStringValueById(java.lang.Long id)protected abstract java.lang.LongfindStringValueByValue(java.lang.String value)org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>>getOrCreatePropertyClass(java.lang.Class<?> value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.util.Date>getOrCreatePropertyDateValue(java.util.Date value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Double>getOrCreatePropertyDoubleValue(java.lang.Double value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.String>getOrCreatePropertyStringValue(java.lang.String value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.io.Serializable>getOrCreatePropertyValue(java.io.Serializable value)Use for accessing unique properties; see interface comments.voidgetPropertiesByIds(java.util.List<java.lang.Long> ids, PropertyValueDAO.PropertyFinderCallback callback)Use for accessing non-unique, exploded properties; see interface comments.java.io.SerializablegetPropertyById(java.lang.Long id)Use for accessing non-unique, exploded properties; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>>getPropertyClass(java.lang.Class<?> value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>>getPropertyClassById(java.lang.Long id)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.util.Date>getPropertyDateValue(java.util.Date value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.util.Date>getPropertyDateValueById(java.lang.Long id)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Double>getPropertyDoubleValue(java.lang.Double value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Double>getPropertyDoubleValueById(java.lang.Long id)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.protected abstract PropertyRootEntitygetPropertyRoot(java.lang.Long id)org.alfresco.util.Pair<java.lang.Long,java.io.Serializable>getPropertySerializableValueById(java.lang.Long id)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.String,java.lang.Long>getPropertyStringCaseSensitiveSearchParameters(java.lang.String value)Utility method to get query parameters for case-sensitive string searchingorg.alfresco.util.Pair<java.lang.Long,java.lang.String>getPropertyStringValue(java.lang.String value)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.String>getPropertyStringValueById(java.lang.Long id)FOR INTERNAL USE ONLY: Do not use directly; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.lang.Long>getPropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3)Get the unique context ID and associated shared property ID, or null if no such context exists.voidgetPropertyUniqueContext(PropertyValueDAO.PropertyUniqueContextCallback callback, java.io.Serializable... values)Get unique contexts (unique context ID and associated shared property ID), if any, based on one, two or three context values.protected abstract PropertyUniqueContextEntitygetPropertyUniqueContextById(java.lang.Long id)protected abstract PropertyUniqueContextEntitygetPropertyUniqueContextByValues(java.lang.Long valueId1, java.lang.Long valueId2, java.lang.Long valueId3)protected abstract voidgetPropertyUniqueContextByValues(PropertyValueDAO.PropertyUniqueContextCallback callback, java.lang.Long... valueIds)org.alfresco.util.Pair<java.lang.Long,java.io.Serializable>getPropertyValue(java.io.Serializable value)Use for accessing unique properties; see interface comments.org.alfresco.util.Pair<java.lang.Long,java.io.Serializable>getPropertyValueById(java.lang.Long id)Use for accessing unique properties; see interface comments.voidsetControlDAO(ControlDAO controlDAO)voidsetConverter(PropertyTypeConverter converter)voidsetPropertyCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyCache)Set the cache to use for alf_prop_root lookups (optional).voidsetPropertyClassCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyClassCache)Set the cache to use for alf_prop_class lookups (optional).voidsetPropertyDateValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyDateValueCache)Set the cache to use for alf_prop_date_value lookups (optional).voidsetPropertyDoubleValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyDoubleValueCache)Set the cache to use for alf_prop_double_value lookups (optional).voidsetPropertySerializableValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertySerializableValueCache)Set the cache to use for alf_prop_serializable_value lookups (optional).voidsetPropertyStringValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyStringValueCache)Set the cache to use for alf_prop_string_value lookups (optional).voidsetPropertyUniqueContextCache(org.alfresco.repo.cache.SimpleCache<AbstractPropertyValueDAOImpl.CachePucKey,PropertyUniqueContextEntity> propertyUniqueContextCache)Set the cache to use for unique property lookupsvoidsetPropertyValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyValueCache)Set the cache to use for alf_prop_value lookups (optional).voidsetUniquenessCheckEnabled(boolean uniquenessCheckEnabled)Setter for uniquenessCheckEnabled flagvoidupdateProperty(java.lang.Long rootPropId, java.io.Serializable value)Use for accessing non-unique, exploded properties; see interface comments.protected abstract PropertyRootEntityupdatePropertyRoot(PropertyRootEntity entity)voidupdatePropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3, java.io.Serializable propertyValue)Update the property associated with a unique context (based on one, two or three context values).protected abstract PropertyUniqueContextEntityupdatePropertyUniqueContext(PropertyUniqueContextEntity entity)voidupdatePropertyUniqueContextKeys(java.lang.Long id, java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3)Update the unique context, preserving any associated property.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.alfresco.repo.domain.propval.PropertyValueDAO
cleanupUnusedValues, deletePropertyUniqueContext
-
-
-
-
Field Detail
-
logger
protected final org.apache.commons.logging.Log logger
-
converter
protected PropertyTypeConverter converter
-
controlDAO
protected ControlDAO controlDAO
-
-
Method Detail
-
setUniquenessCheckEnabled
public void setUniquenessCheckEnabled(boolean uniquenessCheckEnabled)
Setter for uniquenessCheckEnabled flag
-
setPropertyUniqueContextCache
public void setPropertyUniqueContextCache(org.alfresco.repo.cache.SimpleCache<AbstractPropertyValueDAOImpl.CachePucKey,PropertyUniqueContextEntity> propertyUniqueContextCache)
Set the cache to use for unique property lookups
-
setConverter
public void setConverter(PropertyTypeConverter converter)
- Parameters:
converter- the converter that translates between external and persisted values
-
setControlDAO
public void setControlDAO(ControlDAO controlDAO)
- Parameters:
controlDAO- the DAO that provides connection control
-
setPropertyClassCache
public void setPropertyClassCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyClassCache)
Set the cache to use for alf_prop_class lookups (optional).- Parameters:
propertyClassCache- the cache of IDs to property classes
-
setPropertyDateValueCache
public void setPropertyDateValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyDateValueCache)
Set the cache to use for alf_prop_date_value lookups (optional).- Parameters:
propertyDateValueCache- the cache of IDs to property values
-
setPropertyStringValueCache
public void setPropertyStringValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyStringValueCache)
Set the cache to use for alf_prop_string_value lookups (optional).- Parameters:
propertyStringValueCache- the cache of IDs to property string values
-
setPropertyDoubleValueCache
public void setPropertyDoubleValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyDoubleValueCache)
Set the cache to use for alf_prop_double_value lookups (optional).- Parameters:
propertyDoubleValueCache- the cache of IDs to property values
-
setPropertySerializableValueCache
public void setPropertySerializableValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertySerializableValueCache)
Set the cache to use for alf_prop_serializable_value lookups (optional).- Parameters:
propertySerializableValueCache- the cache of IDs to property values
-
setPropertyValueCache
public void setPropertyValueCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyValueCache)
Set the cache to use for alf_prop_value lookups (optional).- Parameters:
propertyValueCache- the cache of IDs to property values
-
setPropertyCache
public void setPropertyCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,java.lang.Object> propertyCache)
Set the cache to use for alf_prop_root lookups (optional).- Parameters:
propertyCache- the cache of IDs to property values
-
getPropertyClassById
public org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>> getPropertyClassById(java.lang.Long id)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_class accessor- Specified by:
getPropertyClassByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
getPropertyClass
public org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>> getPropertyClass(java.lang.Class<?> value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_class accessor- Specified by:
getPropertyClassin interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
getOrCreatePropertyClass
public org.alfresco.util.Pair<java.lang.Long,java.lang.Class<?>> getOrCreatePropertyClass(java.lang.Class<?> value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_class accessor- Specified by:
getOrCreatePropertyClassin interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
findClassById
protected abstract PropertyClassEntity findClassById(java.lang.Long id)
-
findClassByValue
protected abstract PropertyClassEntity findClassByValue(java.lang.Class<?> value)
-
createClass
protected abstract PropertyClassEntity createClass(java.lang.Class<?> value)
-
getPropertyDateValueById
public org.alfresco.util.Pair<java.lang.Long,java.util.Date> getPropertyDateValueById(java.lang.Long id)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_date_value accessor- Specified by:
getPropertyDateValueByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
getPropertyDateValue
public org.alfresco.util.Pair<java.lang.Long,java.util.Date> getPropertyDateValue(java.util.Date value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_date_value accessor- Specified by:
getPropertyDateValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
getOrCreatePropertyDateValue
public org.alfresco.util.Pair<java.lang.Long,java.util.Date> getOrCreatePropertyDateValue(java.util.Date value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_date_value accessor- Specified by:
getOrCreatePropertyDateValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
findDateValueById
protected abstract PropertyDateValueEntity findDateValueById(java.lang.Long id)
-
findDateValueByValue
protected abstract PropertyDateValueEntity findDateValueByValue(java.util.Date value)
- Parameters:
value- a date, accurate to the day
-
createDateValue
protected abstract PropertyDateValueEntity createDateValue(java.util.Date value)
- Parameters:
value- a date, accurate to the day
-
getPropertyStringCaseSensitiveSearchParameters
public org.alfresco.util.Pair<java.lang.String,java.lang.Long> getPropertyStringCaseSensitiveSearchParameters(java.lang.String value)
Description copied from interface:PropertyValueDAOUtility method to get query parameters for case-sensitive string searching- Specified by:
getPropertyStringCaseSensitiveSearchParametersin interfacePropertyValueDAO- See Also:
CrcHelper
-
getPropertyStringValueById
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getPropertyStringValueById(java.lang.Long id)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_string_value accessor- Specified by:
getPropertyStringValueByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
getPropertyStringValue
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getPropertyStringValue(java.lang.String value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_string_value accessor- Specified by:
getPropertyStringValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
getOrCreatePropertyStringValue
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getOrCreatePropertyStringValue(java.lang.String value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_string_value accessor- Specified by:
getOrCreatePropertyStringValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
findStringValueById
protected abstract java.lang.String findStringValueById(java.lang.Long id)
-
findStringValueByValue
protected abstract java.lang.Long findStringValueByValue(java.lang.String value)
-
createStringValue
protected abstract java.lang.Long createStringValue(java.lang.String value)
-
getPropertyDoubleValueById
public org.alfresco.util.Pair<java.lang.Long,java.lang.Double> getPropertyDoubleValueById(java.lang.Long id)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_double_value accessor- Specified by:
getPropertyDoubleValueByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
getPropertyDoubleValue
public org.alfresco.util.Pair<java.lang.Long,java.lang.Double> getPropertyDoubleValue(java.lang.Double value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_double_value accessor- Specified by:
getPropertyDoubleValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
getOrCreatePropertyDoubleValue
public org.alfresco.util.Pair<java.lang.Long,java.lang.Double> getOrCreatePropertyDoubleValue(java.lang.Double value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_double_value accessor- Specified by:
getOrCreatePropertyDoubleValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
findDoubleValueById
protected abstract PropertyDoubleValueEntity findDoubleValueById(java.lang.Long id)
-
findDoubleValueByValue
protected abstract PropertyDoubleValueEntity findDoubleValueByValue(java.lang.Double value)
-
createDoubleValue
protected abstract PropertyDoubleValueEntity createDoubleValue(java.lang.Double value)
-
getPropertySerializableValueById
public org.alfresco.util.Pair<java.lang.Long,java.io.Serializable> getPropertySerializableValueById(java.lang.Long id)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_serializable_value accessor- Specified by:
getPropertySerializableValueByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
createPropertySerializableValue
public org.alfresco.util.Pair<java.lang.Long,java.io.Serializable> createPropertySerializableValue(java.io.Serializable value)
Description copied from interface:PropertyValueDAOFOR INTERNAL USE ONLY: Do not use directly; see interface comments. alf_prop_serializable_value accessor- Specified by:
createPropertySerializableValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may not be null)
-
findSerializableValueById
protected abstract PropertySerializableValueEntity findSerializableValueById(java.lang.Long id)
-
createSerializableValue
protected abstract PropertySerializableValueEntity createSerializableValue(java.io.Serializable value)
-
getPropertyValueById
public org.alfresco.util.Pair<java.lang.Long,java.io.Serializable> getPropertyValueById(java.lang.Long id)
Description copied from interface:PropertyValueDAOUse for accessing unique properties; see interface comments. alf_prop_value accessor: get a property based on the database ID- Specified by:
getPropertyValueByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)
-
getPropertyValue
public org.alfresco.util.Pair<java.lang.Long,java.io.Serializable> getPropertyValue(java.io.Serializable value)
Description copied from interface:PropertyValueDAOUse for accessing unique properties; see interface comments. alf_prop_value accessor: find a property based on the value- Specified by:
getPropertyValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may be null)
-
getOrCreatePropertyValue
public org.alfresco.util.Pair<java.lang.Long,java.io.Serializable> getOrCreatePropertyValue(java.io.Serializable value)
Description copied from interface:PropertyValueDAOUse for accessing unique properties; see interface comments. alf_prop_value accessor: find or create a property based on the value. Note: This method will not recurse into maps or collections. Use the dedicated methods if you want recursion; otherwise maps and collections will be serialized and probably stored as BLOB values. All collections and maps will be opened up to any depth.- Specified by:
getOrCreatePropertyValuein interfacePropertyValueDAO- Parameters:
value- the value to find the ID for (may be null)
-
findPropertyValueById
protected abstract PropertyValueEntity findPropertyValueById(java.lang.Long id)
-
findPropertyValueByValue
protected abstract PropertyValueEntity findPropertyValueByValue(java.io.Serializable value)
-
createPropertyValue
protected abstract PropertyValueEntity createPropertyValue(java.io.Serializable value)
-
getPropertyById
public java.io.Serializable getPropertyById(java.lang.Long id)
Description copied from interface:PropertyValueDAOUse for accessing non-unique, exploded properties; see interface comments. alf_prop_root accessor: get a property based on the database ID- Specified by:
getPropertyByIdin interfacePropertyValueDAO- Parameters:
id- the ID (may not be null)- Returns:
- Returns the value of the property (never null)
-
getPropertiesByIds
public void getPropertiesByIds(java.util.List<java.lang.Long> ids, PropertyValueDAO.PropertyFinderCallback callback)Description copied from interface:PropertyValueDAOUse for accessing non-unique, exploded properties; see interface comments. alf_prop_root accessor: get all properties based on the database IDs- Specified by:
getPropertiesByIdsin interfacePropertyValueDAO- Parameters:
ids- the IDs (may not be null; may be empty)callback- the callback to handle the results
-
createProperty
public java.lang.Long createProperty(java.io.Serializable value)
Use for accessing non-unique, exploded properties; see interface comments. alf_prop_root accessor: find or create a property based on the value. All collections and maps will be opened up to any depth.- Specified by:
createPropertyin interfacePropertyValueDAO- Parameters:
value- the value to create (may be null)- Returns:
- Returns the new property's ID
- See Also:
createPropertyImpl(Long, long, long, Long, Serializable)
-
updateProperty
public void updateProperty(java.lang.Long rootPropId, java.io.Serializable value)Description copied from interface:PropertyValueDAOUse for accessing non-unique, exploded properties; see interface comments. alf_prop_root accessor: update the property root to contain a new value.- Specified by:
updatePropertyin interfacePropertyValueDAO- Parameters:
rootPropId- the ID of the root property to changevalue- the new property value
-
deleteProperty
public void deleteProperty(java.lang.Long id)
Description copied from interface:PropertyValueDAOUse for accessing non-unique, exploded properties; see interface comments. alf_prop_root accessor: delete a property root completely- Specified by:
deletePropertyin interfacePropertyValueDAO- Parameters:
id- the ID of the root property to delete
-
constructEmptyContainer
protected java.io.Serializable constructEmptyContainer(java.lang.Class<?> clazz)
Returns a reconstructable instance- Returns:
- Returns an empty instance of the given container (map or collection), or null if it is not possible to do
-
findPropertyById
protected abstract java.util.List<PropertyIdSearchRow> findPropertyById(java.lang.Long id)
-
findPropertiesByIds
protected abstract void findPropertiesByIds(java.util.List<java.lang.Long> ids, PropertyValueDAO.PropertyFinderCallback callback)
-
createPropertyRoot
protected abstract java.lang.Long createPropertyRoot()
-
getPropertyRoot
protected abstract PropertyRootEntity getPropertyRoot(java.lang.Long id)
-
updatePropertyRoot
protected abstract PropertyRootEntity updatePropertyRoot(PropertyRootEntity entity)
-
deletePropertyRoot
protected abstract void deletePropertyRoot(java.lang.Long id)
-
createPropertyLink
protected abstract void createPropertyLink(java.lang.Long rootPropId, java.lang.Long propIndex, java.lang.Long containedIn, java.lang.Long keyPropId, java.lang.Long valuePropId)Create an entry for the map or collection link.- Parameters:
rootPropId- the root (entry-point) property IDpropIndex- the property number within the root propertycontainedIn- the property that contains the current valuekeyPropId- the map key entity ID or collection position countvaluePropId- the ID of the entity storing the value (may be another map or collection)
-
deletePropertyLinks
protected abstract int deletePropertyLinks(java.lang.Long rootPropId)
Remove all property links for a given property root.- Parameters:
rootPropId- the root (entry-point) property ID
-
createPropertyUniqueContext
public org.alfresco.util.Pair<java.lang.Long,java.lang.Long> createPropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3, java.io.Serializable propertyValue1)Description copied from interface:PropertyValueDAOalf_prop_unique_ctx accessor: create a unique context with an optional associated value. The DAO ensures that the region-context-value combination will be globally unique.- Specified by:
createPropertyUniqueContextin interfacePropertyValueDAO- Parameters:
value1- a simple key value (not a collection) (may be null)value2- a simple key value (not a collection) (may be null)value3- a simple key value (not a collection) (may be null)propertyValue1- a value to store against the key (may be null)- Returns:
- Returns the ID-valueId pair of the context
-
getPropertyUniqueContext
public org.alfresco.util.Pair<java.lang.Long,java.lang.Long> getPropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3)Description copied from interface:PropertyValueDAOGet the unique context ID and associated shared property ID, or null if no such context exists. The associated property may be null even if the unique context exists.- Specified by:
getPropertyUniqueContextin interfacePropertyValueDAO- Parameters:
value1- first valuevalue2- second valuevalue3- third value- Returns:
- Returns the ID-valueId pair or null if the context doesn't exist.
- See Also:
PropertyValueDAO.createPropertyUniqueContext(Serializable, Serializable, Serializable, Serializable)
-
getPropertyUniqueContext
public void getPropertyUniqueContext(PropertyValueDAO.PropertyUniqueContextCallback callback, java.io.Serializable... values)
Description copied from interface:PropertyValueDAOGet unique contexts (unique context ID and associated shared property ID), if any, based on one, two or three context values. The associated property may be null even if the unique context exists.- Specified by:
getPropertyUniqueContextin interfacePropertyValueDAOvalues- a combination of one to three values in order- See Also:
PropertyValueDAO.createPropertyUniqueContext(Serializable, Serializable, Serializable, Serializable)
-
updatePropertyUniqueContextKeys
public void updatePropertyUniqueContextKeys(java.lang.Long id, java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3)Description copied from interface:PropertyValueDAOUpdate the unique context, preserving any associated property.- Specified by:
updatePropertyUniqueContextKeysin interfacePropertyValueDAO- See Also:
PropertyValueDAO.createPropertyUniqueContext(Serializable, Serializable, Serializable, Serializable)
-
updatePropertyUniqueContext
public void updatePropertyUniqueContext(java.io.Serializable value1, java.io.Serializable value2, java.io.Serializable value3, java.io.Serializable propertyValue)Description copied from interface:PropertyValueDAOUpdate the property associated with a unique context (based on one, two or three context values).- Specified by:
updatePropertyUniqueContextin interfacePropertyValueDAO- See Also:
PropertyValueDAO.createPropertyUniqueContext(Serializable, Serializable, Serializable, Serializable)
-
deletePropertyUniqueContext
public int deletePropertyUniqueContext(java.io.Serializable... values)
Description copied from interface:PropertyValueDAODelete sets of unique contexts based on one, two or three context values.- Specified by:
deletePropertyUniqueContextin interfacePropertyValueDAO- Parameters:
values- a combination of one to three values in order- Returns:
- Returns the number of unique contexts deleted
-
createPropertyUniqueContext
protected abstract PropertyUniqueContextEntity createPropertyUniqueContext(java.lang.Long valueId1, java.lang.Long valueId2, java.lang.Long valueId3, java.lang.Long propertyId)
-
getPropertyUniqueContextById
protected abstract PropertyUniqueContextEntity getPropertyUniqueContextById(java.lang.Long id)
-
getPropertyUniqueContextByValues
protected abstract PropertyUniqueContextEntity getPropertyUniqueContextByValues(java.lang.Long valueId1, java.lang.Long valueId2, java.lang.Long valueId3)
-
getPropertyUniqueContextByValues
protected abstract void getPropertyUniqueContextByValues(PropertyValueDAO.PropertyUniqueContextCallback callback, java.lang.Long... valueIds)
-
updatePropertyUniqueContext
protected abstract PropertyUniqueContextEntity updatePropertyUniqueContext(PropertyUniqueContextEntity entity)
-
deletePropertyUniqueContexts
protected abstract int deletePropertyUniqueContexts(java.lang.Long... valueIds)
-
convertPropertyIdSearchRows
public java.io.Serializable convertPropertyIdSearchRows(java.util.List<PropertyIdSearchRow> rows)
Description copied from interface:PropertyValueDAOUtility method to convert property query results into the original value. Note that the rows must all share the same root property ID. If the rows passed in don't constitute a valid, full property - they don't contain all the link entities for the property - then the result may be null.- Specified by:
convertPropertyIdSearchRowsin interfacePropertyValueDAO- Parameters:
rows- the search results for a single root property- Returns:
- Returns the root property as originally persisted, or null if the rows don't represent a complete property
-
clearCaches
protected void clearCaches()
-
-