Package fr.becpg.repo.entity.impl
Class AutoNumServiceImpl
java.lang.Object
fr.becpg.repo.entity.impl.AutoNumServiceImpl
- All Implemented Interfaces:
AutoNumService
Enhanced implementation of AutoNumService with improved thread safety,
error handling, and performance optimizations.
- Version:
- $Id: $Id
- Author:
- querephi
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BeCPGCacheServiceprivate static final Stringprivate static final Longprivate static final Patternprivate static final Stringprivate org.alfresco.service.cmr.dictionary.DictionaryServiceprivate final ConcurrentHashMap<String,ReentrantLock> private static final org.apache.commons.logging.Logprivate static final Stringprivate org.alfresco.service.cmr.repository.NodeServiceprivate org.alfresco.repo.policy.BehaviourFilterprivate static final Stringprivate RepoServiceprivate org.alfresco.repo.model.Repository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringbuildPrefixPattern(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) private LongcreateAutoNum(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, Long autoNumValue, String autoNumPrefix) private Map<org.alfresco.service.namespace.QName,Serializable> createAutoNumProperties(String name, org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, Long autoNumValue, String autoNumPrefix) private StringcreateCacheKey(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) private StringcreateLockKey(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) private StringcreateMatchPattern(String prefix) private StringcreateNewAutoNum(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) private voidcreateOrUpdateAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, String autoNumCode) voiddeleteAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) Delete auto num value.private Optional<org.alfresco.service.cmr.repository.NodeRef>findAutoNumNodeRef(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) private StringformatCode(String prefix, Long autoNumValue) private StringgenerateAndSetNewCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName, org.alfresco.service.namespace.QName codeQName) private StringgenerateNextAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) getAutoNumMatchPattern(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) getAutoNumMatchPattern.org.alfresco.service.cmr.repository.NodeRefgetAutoNumNodeRef(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) getAutoNumNodeRef.private StringgetAutoNumPrefix(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) getAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) Gets the auto num value.private StringgetDefaultPrefix(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) getOrCreateBeCPGCode(org.alfresco.service.cmr.repository.NodeRef nodeRef) getOrCreateBeCPGCode.getOrCreateCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName codeQName) getOrCreateCode.private StringgetPrefixedCode(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName, Long autoNumValue) getPrefixedCode.private StringincrementExistingAutoNum(org.alfresco.service.cmr.repository.NodeRef autoNumNodeRef) private booleanisCodeAlreadyUsed(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.namespace.QName codeQName, String code, org.alfresco.service.cmr.repository.NodeRef excludeNodeRef) private AutoNumServiceImpl.AutoNumInfoparseAutoNumCode(String autoNumCode, org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) private StringprocessNodeCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName codeQName) booleansetAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, Long counter) setAutoNumValue.private voidupdateExistingAutoNumIfNecessary(org.alfresco.service.cmr.repository.NodeRef autoNumNodeRef, Long newValue) private voidvalidateInputs(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName)
-
Field Details
-
NAME_TEMPLATE
- See Also:
-
DEFAULT_AUTO_NUM
-
PREFIX_MSG_PREFIX
- See Also:
-
DEFAULT_PREFIX
- See Also:
-
DEFAULT_PATTERN
-
CACHE_KEY_SEPARATOR
- See Also:
-
logger
private static final org.apache.commons.logging.Log logger -
lockMap
-
nodeService
@Autowired private org.alfresco.service.cmr.repository.NodeService nodeService -
repoService
-
repositoryHelper
@Autowired private org.alfresco.repo.model.Repository repositoryHelper -
dictionaryService
@Autowired private org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService -
beCPGCacheService
-
policyBehaviourFilter
@Autowired private org.alfresco.repo.policy.BehaviourFilter policyBehaviourFilter
-
-
Constructor Details
-
AutoNumServiceImpl
public AutoNumServiceImpl()
-
-
Method Details
-
getAutoNumValue
public String getAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) Gets the auto num value.- Specified by:
getAutoNumValuein interfaceAutoNumService- Parameters:
className- the class namepropertyName- the property name- Returns:
- the auto num value
-
setAutoNumValue
public boolean setAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, Long counter) setAutoNumValue.
- Specified by:
setAutoNumValuein interfaceAutoNumService- Parameters:
className- aQNameobjectpropertyName- aQNameobjectcounter- aLongobject- Returns:
- a boolean
-
deleteAutoNumValue
public void deleteAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) Delete auto num value.- Specified by:
deleteAutoNumValuein interfaceAutoNumService- Parameters:
className- the class namepropertyName- the property name
-
getAutoNumMatchPattern
public String getAutoNumMatchPattern(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) getAutoNumMatchPattern.
- Specified by:
getAutoNumMatchPatternin interfaceAutoNumService- Parameters:
type- aQNameobject.propertyName- aQNameobject.- Returns:
- the pattern string for the corresponding code
-
getPrefixedCode
public String getPrefixedCode(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName, Long autoNumValue) getPrefixedCode.
- Specified by:
getPrefixedCodein interfaceAutoNumService- Parameters:
type- aQNameobject.propertyName- aQNameobject.autoNumValue- aLongobject.- Returns:
- the prefixed String for the given type
-
getOrCreateCode
public String getOrCreateCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName codeQName) getOrCreateCode.
- Specified by:
getOrCreateCodein interfaceAutoNumService- Parameters:
nodeRef- aNodeRefobject.codeQName- aQNameobject.- Returns:
- a
Stringobject.
-
getOrCreateBeCPGCode
getOrCreateBeCPGCode.
- Specified by:
getOrCreateBeCPGCodein interfaceAutoNumService- Parameters:
nodeRef- aNodeRefobject.- Returns:
- a
Stringobject.
-
getAutoNumNodeRef
public org.alfresco.service.cmr.repository.NodeRef getAutoNumNodeRef(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) getAutoNumNodeRef.
- Specified by:
getAutoNumNodeRefin interfaceAutoNumService- Parameters:
className- aQNameobjectpropertyName- aQNameobject- Returns:
- the NodeRef of the AutoNum value
-
validateInputs
private void validateInputs(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
createLockKey
private String createLockKey(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
createCacheKey
private String createCacheKey(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
generateNextAutoNumValue
private String generateNextAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
incrementExistingAutoNum
-
createNewAutoNum
private String createNewAutoNum(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
findAutoNumNodeRef
private Optional<org.alfresco.service.cmr.repository.NodeRef> findAutoNumNodeRef(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
buildPrefixPattern
private String buildPrefixPattern(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) -
createMatchPattern
-
getAutoNumPrefix
private String getAutoNumPrefix(org.alfresco.service.namespace.QName type, org.alfresco.service.namespace.QName propertyName) -
processNodeCode
private String processNodeCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName codeQName) -
isCodeAlreadyUsed
private boolean isCodeAlreadyUsed(org.alfresco.service.namespace.QName typeQName, org.alfresco.service.namespace.QName codeQName, String code, org.alfresco.service.cmr.repository.NodeRef excludeNodeRef) -
generateAndSetNewCode
private String generateAndSetNewCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName, org.alfresco.service.namespace.QName codeQName) -
createOrUpdateAutoNumValue
private void createOrUpdateAutoNumValue(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, String autoNumCode) -
parseAutoNumCode
private AutoNumServiceImpl.AutoNumInfo parseAutoNumCode(String autoNumCode, org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
updateExistingAutoNumIfNecessary
private void updateExistingAutoNumIfNecessary(org.alfresco.service.cmr.repository.NodeRef autoNumNodeRef, Long newValue) -
getDefaultPrefix
private String getDefaultPrefix(org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName) -
createAutoNum
-
createAutoNumProperties
private Map<org.alfresco.service.namespace.QName,Serializable> createAutoNumProperties(String name, org.alfresco.service.namespace.QName className, org.alfresco.service.namespace.QName propertyName, Long autoNumValue, String autoNumPrefix) -
getPrefix
-
formatCode
-