Package org.alfresco.repo.domain.qname
Class AbstractQNameDAOImpl
- java.lang.Object
-
- org.alfresco.repo.domain.qname.AbstractQNameDAOImpl
-
- All Implemented Interfaces:
QNameDAO
- Direct Known Subclasses:
QNameDAOImpl
public abstract class AbstractQNameDAOImpl extends java.lang.Object implements QNameDAO
Abstract implementation of the QName and Namespace DAO interface.- Since:
- 3.4
- Author:
- Derek Hulley
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractQNameDAOImpl()Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.util.Map<org.alfresco.service.namespace.QName,? extends java.lang.Object>convertIdMapToQNameMap(java.util.Map<java.lang.Long,? extends java.lang.Object> idMap)Convenience method to convert map keys from QName IDs to QNamesjava.util.Set<org.alfresco.service.namespace.QName>convertIdsToQNames(java.util.Set<java.lang.Long> ids)Bulk-convert QName IDs into QNamesjava.util.Set<java.lang.Long>convertQNamesToIds(java.util.Set<org.alfresco.service.namespace.QName> qnames, boolean create)Bulk-convert QNames into QName IDs.protected abstract NamespaceEntitycreateNamespaceEntity(java.lang.String uri)protected abstract QNameEntitycreateQNameEntity(java.lang.Long nsId, java.lang.String localName)voiddeleteQName(org.alfresco.service.namespace.QName qname)Delete a QName.protected abstract intdeleteQNameEntity(QNameEntity entity)protected abstract NamespaceEntityfindNamespaceEntityById(java.lang.Long id)protected abstract NamespaceEntityfindNamespaceEntityByUri(java.lang.String uri)protected abstract QNameEntityfindQNameEntityById(java.lang.Long id)protected abstract QNameEntityfindQNameEntityByNamespaceAndLocalName(java.lang.Long nsId, java.lang.String localName)org.alfresco.util.Pair<java.lang.Long,java.lang.String>getNamespace(java.lang.Long id)org.alfresco.util.Pair<java.lang.Long,java.lang.String>getNamespace(java.lang.String namespaceUri)org.alfresco.util.Pair<java.lang.Long,java.lang.String>getOrCreateNamespace(java.lang.String namespaceUri)Get an existing instance matching the URI or create one if necessary.org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName>getOrCreateQName(org.alfresco.service.namespace.QName qname)Get an existing instance matching the QName or create one if necessary.org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName>getQName(java.lang.Long id)org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName>getQName(org.alfresco.service.namespace.QName qname)voidsetNamespaceCache(org.alfresco.repo.cache.SimpleCache<java.lang.Long,java.lang.String> namespaceCache)Set the cache that maintains the ID-Namespace mappings and vice-versa.voidsetQnameCache(org.alfresco.repo.cache.SimpleCache<java.lang.Long,org.alfresco.service.namespace.QName> qnameCache)Set the cache that maintains the ID-Namespace mappings and vice-versa.voidupdateNamespace(java.lang.String oldNamespaceUri, java.lang.String newNamespaceUri)Modifies an existing namespace URI.protected abstract intupdateNamespaceEntity(NamespaceEntity entity, java.lang.String uri)org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName>updateQName(org.alfresco.service.namespace.QName qnameOld, org.alfresco.service.namespace.QName qnameNew)Modify an existing QName.protected abstract intupdateQNameEntity(QNameEntity entity, java.lang.Long nsId, java.lang.String localName)
-
-
-
Method Detail
-
setNamespaceCache
public void setNamespaceCache(org.alfresco.repo.cache.SimpleCache<java.lang.Long,java.lang.String> namespaceCache)
Set the cache that maintains the ID-Namespace mappings and vice-versa.- Parameters:
namespaceCache- the cache
-
setQnameCache
public void setQnameCache(org.alfresco.repo.cache.SimpleCache<java.lang.Long,org.alfresco.service.namespace.QName> qnameCache)
Set the cache that maintains the ID-Namespace mappings and vice-versa.- Parameters:
qnameCache- the cache
-
getNamespace
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getNamespace(java.lang.Long id)
- Specified by:
getNamespacein interfaceQNameDAO- Parameters:
id- the unique ID of the entity- Returns:
- the namespace pair (id, uri)
-
getNamespace
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getNamespace(java.lang.String namespaceUri)
- Specified by:
getNamespacein interfaceQNameDAO- Parameters:
namespaceUri- the namespace URI to query for- Returns:
- the namespace pair (id, uri) or null if it doesn't exist
-
getOrCreateNamespace
public org.alfresco.util.Pair<java.lang.Long,java.lang.String> getOrCreateNamespace(java.lang.String namespaceUri)
Description copied from interface:QNameDAOGet an existing instance matching the URI or create one if necessary. Note that this method should be treated as a write method and should not be used in the context of read-only or query methods.- Specified by:
getOrCreateNamespacein interfaceQNameDAO- Parameters:
namespaceUri- the namespace URI to create- Returns:
- the existing namespace pair (id, uri) or a new one
-
updateNamespace
public void updateNamespace(java.lang.String oldNamespaceUri, java.lang.String newNamespaceUri)Description copied from interface:QNameDAOModifies an existing namespace URI. If the new URI already exists, then no new entity is created.- Specified by:
updateNamespacein interfaceQNameDAO- Parameters:
oldNamespaceUri- the old namespace URInewNamespaceUri- the new namespace URI
-
findNamespaceEntityById
protected abstract NamespaceEntity findNamespaceEntityById(java.lang.Long id)
-
findNamespaceEntityByUri
protected abstract NamespaceEntity findNamespaceEntityByUri(java.lang.String uri)
-
createNamespaceEntity
protected abstract NamespaceEntity createNamespaceEntity(java.lang.String uri)
-
updateNamespaceEntity
protected abstract int updateNamespaceEntity(NamespaceEntity entity, java.lang.String uri)
-
getQName
public org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName> getQName(java.lang.Long id)
-
getQName
public org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName> getQName(org.alfresco.service.namespace.QName qname)
-
getOrCreateQName
public org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName> getOrCreateQName(org.alfresco.service.namespace.QName qname)
Description copied from interface:QNameDAOGet an existing instance matching the QName or create one if necessary. Note that this method should be treated as a write method and should not be used in the context of read-only or query methods.- Specified by:
getOrCreateQNamein interfaceQNameDAO- Parameters:
qname- the QName to query for- Returns:
- the QName pair (id, qname) or a new one
-
updateQName
public org.alfresco.util.Pair<java.lang.Long,org.alfresco.service.namespace.QName> updateQName(org.alfresco.service.namespace.QName qnameOld, org.alfresco.service.namespace.QName qnameNew)Description copied from interface:QNameDAOModify an existing QName. The ID of the new QName will be the same as the old one i.e. the old QName will cease to exist and will become the new QName. This allows QName modification without affecting tables that reference the old QName.- Specified by:
updateQNamein interfaceQNameDAO- Parameters:
qnameOld- the old QName, which must existqnameNew- the new QName, which must not exist- Returns:
- the QName pair (id, qname) with the ID unchanged from old to new
-
deleteQName
public void deleteQName(org.alfresco.service.namespace.QName qname)
Description copied from interface:QNameDAODelete a QName. This will work only if the QName is not in use e.g. by nodes, properties, etc- Specified by:
deleteQNamein interfaceQNameDAO
-
findQNameEntityById
protected abstract QNameEntity findQNameEntityById(java.lang.Long id)
-
findQNameEntityByNamespaceAndLocalName
protected abstract QNameEntity findQNameEntityByNamespaceAndLocalName(java.lang.Long nsId, java.lang.String localName)
-
createQNameEntity
protected abstract QNameEntity createQNameEntity(java.lang.Long nsId, java.lang.String localName)
-
updateQNameEntity
protected abstract int updateQNameEntity(QNameEntity entity, java.lang.Long nsId, java.lang.String localName)
-
deleteQNameEntity
protected abstract int deleteQNameEntity(QNameEntity entity)
-
convertIdsToQNames
public java.util.Set<org.alfresco.service.namespace.QName> convertIdsToQNames(java.util.Set<java.lang.Long> ids)
Description copied from interface:QNameDAOBulk-convert QName IDs into QNames- Specified by:
convertIdsToQNamesin interfaceQNameDAO- Parameters:
ids- the IDs- Returns:
- the QNames for the IDs given, in the same order
-
convertIdMapToQNameMap
public java.util.Map<org.alfresco.service.namespace.QName,? extends java.lang.Object> convertIdMapToQNameMap(java.util.Map<java.lang.Long,? extends java.lang.Object> idMap)
Description copied from interface:QNameDAOConvenience method to convert map keys from QName IDs to QNames- Specified by:
convertIdMapToQNameMapin interfaceQNameDAO- Parameters:
idMap- a map of objects keyed by QName ID- Returns:
- a map of the same objects keyed by the equivalent QNames
-
convertQNamesToIds
public java.util.Set<java.lang.Long> convertQNamesToIds(java.util.Set<org.alfresco.service.namespace.QName> qnames, boolean create)Description copied from interface:QNameDAOBulk-convert QNames into QName IDs. This is primarily used for generating SQL IN clause lists for other DAO queries.- Specified by:
convertQNamesToIdsin interfaceQNameDAO- Parameters:
qnames- the QNames to convertcreate- true to create any missing QName entities- Returns:
- Returns a set of IDs mapping to the QNames provided. If create is false then there will not be corresponding entries for the QNames that don't exist. So there is no guarantee that the returned set will be ordered the same or even contain the same number of elements as the original unless create is true.
-
-