Class QNamePatch

java.lang.Object
org.alfresco.repo.admin.patch.AbstractPatch
org.alfresco.repo.admin.patch.impl.QNamePatch
All Implemented Interfaces:
Patch, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationEventPublisherAware

public class QNamePatch extends AbstractPatch
A patch to update the value of a QName. This patch will only succeed if the target QName has not been used i.e. if there is no content that actually references the QName.

A property 'reindexClass' can be optionally injected. If it is not injected then the QName is updated and no reindexing is requested by this patch. If it is set to either 'TYPE' or 'ASPECT' (as appropriate) then that String will be used to locate out-of-date references to the old QName and have them reindexed in a targetted way.

Please refer to the implementation in this class for the details of how this is achieved.

Author:
Neil McErlean
  • Constructor Details

    • QNamePatch

      public QNamePatch()
  • Method Details

    • setQnameDAO

      public void setQnameDAO(QNameDAO qnameDAO)
      Parameters:
      qnameDAO - the qnameDAO to set
    • setPatchDAO

      public void setPatchDAO(PatchDAO patchDAO)
      Parameters:
      patchDAO - the patchDAO to set
    • setNodeDAO

      public void setNodeDAO(NodeDAO nodeDAO)
      Parameters:
      nodeDAO - the nodeDAO to set
    • setRetryingTransactionHelper

      public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
      Parameters:
      retryingTransactionHelper - the retryingTransactionHelper to set
    • setQnameBefore

      public void setQnameBefore(String qnameStringBefore)
      Sets the QName to be patched.
      Parameters:
      qnameStringBefore - the long-form QName to be patched from. {namespaceURI}localName
    • setQnameAfter

      public void setQnameAfter(String qnameStringAfter)
      Sets the new QName value to be used.
      Parameters:
      qnameStringAfter - the long-form QName to be patched to. {namespaceURI}localName
    • setReindexClass

      public void setReindexClass(String reindexClass)
      Sets a value for the class to reindex. This will be used in the Lucene query below and should be either "TYPE" or "ASPECT" or not set if reindexing is not required.
      Parameters:
      reindexClass - "TYPE" or "ASPECT" or not set.
    • checkProperties

      protected void checkProperties()
      Description copied from class: AbstractPatch
      Check that the schema version properties have been set appropriately. Derived classes can override this method to perform their own validation provided that this method is called by the derived class.
      Overrides:
      checkProperties in class AbstractPatch
    • applyInternal

      protected String applyInternal() throws Exception
      Description copied from class: AbstractPatch
      This method does the work. All transactions and thread-safety will be taken care of by this class. Any exception will result in the transaction being rolled back. Integrity checks are downgraded for the duration of the transaction.
      Specified by:
      applyInternal in class AbstractPatch
      Returns:
      Returns the report (only success messages).
      Throws:
      Exception - anything can be thrown. This must be used for all failures.
      See Also: