Interface QNameDAO

  • All Known Implementing Classes:
    AbstractQNameDAOImpl, QNameDAOImpl

    public interface QNameDAO
    Data abstraction layer for QName and Namespace entities.
    Since:
    3.4
    Author:
    Derek Hulley
    • Method Summary

      All Methods Instance Methods Abstract 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 QNames
      java.util.Set<org.alfresco.service.namespace.QName> convertIdsToQNames​(java.util.Set<java.lang.Long> ids)
      Bulk-convert QName IDs into QNames
      java.util.Set<java.lang.Long> convertQNamesToIds​(java.util.Set<org.alfresco.service.namespace.QName> qnames, boolean create)
      Bulk-convert QNames into QName IDs.
      void deleteQName​(org.alfresco.service.namespace.QName qname)
      Delete a QName.
      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)  
      void updateNamespace​(java.lang.String oldNamespaceUri, java.lang.String newNamespaceUri)
      Modifies an existing namespace 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.
    • Method Detail

      • getNamespace

        org.alfresco.util.Pair<java.lang.Long,​java.lang.String> getNamespace​(java.lang.Long id)
        Parameters:
        id - the unique ID of the entity
        Returns:
        the namespace pair (id, uri)
        Throws:
        org.alfresco.error.AlfrescoRuntimeException - if the ID provided is invalid
      • getNamespace

        org.alfresco.util.Pair<java.lang.Long,​java.lang.String> getNamespace​(java.lang.String namespaceUri)
        Parameters:
        namespaceUri - the namespace URI to query for
        Returns:
        the namespace pair (id, uri) or null if it doesn't exist
      • getOrCreateNamespace

        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. 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.
        Parameters:
        namespaceUri - the namespace URI to create
        Returns:
        the existing namespace pair (id, uri) or a new one
      • updateNamespace

        void updateNamespace​(java.lang.String oldNamespaceUri,
                             java.lang.String newNamespaceUri)
        Modifies an existing namespace URI. If the new URI already exists, then no new entity is created.
        Parameters:
        oldNamespaceUri - the old namespace URI
        newNamespaceUri - the new namespace URI
        Throws:
        org.alfresco.error.AlfrescoRuntimeException - if the new namespace is in use
      • getQName

        org.alfresco.util.Pair<java.lang.Long,​org.alfresco.service.namespace.QName> getQName​(java.lang.Long id)
        Parameters:
        id - the unique ID of the entity
        Returns:
        the QName pair (id, qname) (never null)
        Throws:
        org.alfresco.error.AlfrescoRuntimeException - if the ID provided is invalid
      • getQName

        org.alfresco.util.Pair<java.lang.Long,​org.alfresco.service.namespace.QName> getQName​(org.alfresco.service.namespace.QName qname)
        Parameters:
        qname - the QName to query for
        Returns:
        the QName pair (id, qname) or null if it doesn't exist
      • getOrCreateQName

        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. 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.
        Parameters:
        qname - the QName to query for
        Returns:
        the QName pair (id, qname) or a new one
      • updateQName

        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. 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.
        Parameters:
        qnameOld - the old QName, which must exist
        qnameNew - the new QName, which must not exist
        Returns:
        the QName pair (id, qname) with the ID unchanged from old to new
      • deleteQName

        void deleteQName​(org.alfresco.service.namespace.QName qname)
        Delete a QName. This will work only if the QName is not in use e.g. by nodes, properties, etc
      • convertIdsToQNames

        java.util.Set<org.alfresco.service.namespace.QName> convertIdsToQNames​(java.util.Set<java.lang.Long> ids)
        Bulk-convert QName IDs into QNames
        Parameters:
        ids - the IDs
        Returns:
        the QNames for the IDs given, in the same order
      • convertIdMapToQNameMap

        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 QNames
        Parameters:
        idMap - a map of objects keyed by QName ID
        Returns:
        a map of the same objects keyed by the equivalent QNames
      • convertQNamesToIds

        java.util.Set<java.lang.Long> convertQNamesToIds​(java.util.Set<org.alfresco.service.namespace.QName> qnames,
                                                         boolean create)
        Bulk-convert QNames into QName IDs. This is primarily used for generating SQL IN clause lists for other DAO queries.
        Parameters:
        qnames - the QNames to convert
        create - true to create any missing QName entities
        Returns:
        returns the QName IDs (order not guaranteed)