org.alfresco.repo.admin.patch.impl
Class QNamePatch

java.lang.Object
  extended by org.alfresco.repo.admin.patch.AbstractPatch
      extended by org.alfresco.repo.admin.patch.impl.QNamePatch
All Implemented Interfaces:
Patch, 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.


Field Summary
 
Fields inherited from class org.alfresco.repo.admin.patch.AbstractPatch
applicationEventPublisher, authenticationContext, ERR_PROPERTY_NOT_SET, namespaceService, nodeService, searchService, tenantAdminService, transactionHelper, transactionService
 
Constructor Summary
QNamePatch()
           
 
Method Summary
protected  java.lang.String applyInternal()
          This method does the work.
 void setImporterBootstrap(ImporterBootstrap importerBootstrap)
          Sets the importerBootstrap.
 void setIndexerAndSearcher(IndexerAndSearcher indexerAndSearcher)
          Sets the IndexerAndSearcher.
 void setQnameAfter(java.lang.String qnameStringAfter)
          Sets the new QName value to be used.
 void setQnameBefore(java.lang.String qnameStringBefore)
          Sets the QName to be patched.
 void setQnameDAO(QNameDAO qnameDAO)
          Sets the QNameDAO.
 void setReindexClass(java.lang.String reindexClass)
          Sets a value for the class to reindex.
 
Methods inherited from class org.alfresco.repo.admin.patch.AbstractPatch
applies, apply, checkProperties, checkPropertyNotNull, getAlternatives, getDependsOn, getDescription, getFixesFromSchema, getFixesToSchema, getId, getTargetSchema, init, isForce, reportProgress, requiresTransaction, setAlternatives, setApplicationEventPublisher, setApplyToTenants, setAuthenticationContext, setDependsOn, setDescription, setFixesFromSchema, setFixesToSchema, setForce, setId, setNamespaceService, setNodeService, setPatchService, setRequiresTransaction, setSearchService, setTargetSchema, setTenantAdminService, setTransactionService, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QNamePatch

public QNamePatch()
Method Detail

setImporterBootstrap

public void setImporterBootstrap(ImporterBootstrap importerBootstrap)
Sets the importerBootstrap.

Parameters:
importerBootstrap. -

setIndexerAndSearcher

public void setIndexerAndSearcher(IndexerAndSearcher indexerAndSearcher)
Sets the IndexerAndSearcher.

Parameters:
indexerAndSearcher -

setQnameDAO

public void setQnameDAO(QNameDAO qnameDAO)
Sets the QNameDAO.

Parameters:
qnameDAO -

setQnameBefore

public void setQnameBefore(java.lang.String qnameStringBefore)
Sets the QName to be patched.

Parameters:
qnameStringBefore - the long-form QName to be patched from. {namespaceURI}localName

setQnameAfter

public void setQnameAfter(java.lang.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(java.lang.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.

applyInternal

protected java.lang.String applyInternal()
                                  throws java.lang.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:
java.lang.Exception - anything can be thrown. This must be used for all failures.
See Also:
AbstractPatch.apply()


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.