Class AbstractSynchronizableContentsCollection
java.lang.Object
org.ametys.plugins.contentio.synchronize.AbstractStaticSynchronizableContentsCollection
org.ametys.plugins.contentio.synchronize.AbstractSynchronizableContentsCollection
- All Implemented Interfaces:
SynchronizableContentsCollection
,Configurable
,Serviceable
- Direct Known Subclasses:
AbstractCDMFrSynchronizableContentsCollection
,AbstractSimpleSynchronizableContentsCollection
public abstract class AbstractSynchronizableContentsCollection
extends AbstractStaticSynchronizableContentsCollection
Abstract implementation of
SynchronizableContentsCollection
.-
Field Summary
Modifier and TypeFieldDescriptionprotected ContentTypeExtensionPoint
The content type extension pointprotected CurrentUserProvider
The current user providerprotected boolean
True if there is a global error during synchronizationprotected I18nUtils
The i18n utilsprotected int
Number of created contentsprotected int
Number of deleted contentsprotected int
Number of errors encounteredprotected int
Number of unchanged contentsprotected int
Number of synchronized contentsprotected ObservationManager
The observation managerprotected BaseSynchroComponent
The base SCC componentprotected static final String
SCC unique ID fieldFields inherited from class org.ametys.plugins.contentio.synchronize.AbstractStaticSynchronizableContentsCollection
_contentDAO, _contentPrefix, _contentType, _id, _initialActionId, _label, _languages, _modelId, _modelParamValues, _removalSync, _reportMails, _resolver, _restrictedField, _sccHelper, _searchModelConfiguration, _synchronizeActionId, _synchronizeExistingContentsOnly, _synchronizingContentOperator, _validateActionId, _validateAfterImport, _workflowName
Fields inherited from interface org.ametys.plugins.contentio.synchronize.SynchronizableContentsCollection
COLLECTION_ID_PROPERTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected int
_deleteContents
(List<Content> contentsToRemove, Logger logger) Delete contents.protected String
_getContentPathQuery
(String lang, String idValue, String contentType) Construct the query to retrieve the content.Filter the contents to remove.protected List<Expression>
_getExpressionsList
(String lang, String idValue, String contentType) Construct the query to retrieve the content.protected ModifiableCompositeMetadata
_getMetadataHolder
(ModifiableCompositeMetadata parentMetadata, String metadataPath) Get the metadata holder for the requested metadata path.protected abstract List<ModifiableDefaultContent>
_internalPopulate
(Logger logger) Internal implementation ofpopulate(Logger)
protected boolean
_isParamNotEmpty
(Object parameterValue) Check if the parameter value is empty_removeEmptyParameters
(Map<String, Object> parameters) Remove empty parameters to the mapprotected boolean
_removeMetadataIfExists
(ModifiableCompositeMetadata metadataHolder, String metadataName, boolean synchronize) Remove the metadata if existsprotected boolean
_synchronizeMetadata
(ModifiableDefaultContent content, ContentType contentType, String logicalMetadataPath, String completeMetadataPath, List<Object> remoteValue, boolean synchronize, boolean create, Logger logger) Fill the metadata with remove value.protected boolean
_updateRelation
(ModifiableCompositeMetadata metadataToEdit, String metadataName, Content content) Update the invert relation by adding the new value (Content) to the old values.protected boolean
_updateRelation
(ModifiableCompositeMetadata metadataToEdit, String metadataName, Content content, boolean remove) Update the invert relation by adding/removing the content to/from the old values.protected boolean
applyChanges
(ModifiableDefaultContent content, Integer actionId, String event, Logger logger) Does workflow actionprotected boolean
applyChanges
(ModifiableDefaultContent content, Logger logger) Does workflow actionprotected ModifiableDefaultContent
createContentAction
(String contentType, String workflowName, int initialActionId, String lang, String contentTitle, Logger logger) Creates content action with result from requestprotected void
deleteUnexistingContents
(Logger logger) Delete contents created by a previous synchronization which does not exist anymore in remote sourcevoid
Empty the collection of its synchronized contentsPopulates contentsprotected void
sendErrorMail
(int nbError) Sends the report mailsvoid
service
(ServiceManager manager) protected void
updateSCCProperty
(DefaultContent content) Add the current synchronizable collection as propertyprotected void
validateContent
(WorkflowAwareContent content, int validationActionId, Logger logger) Validates a content after importMethods inherited from class org.ametys.plugins.contentio.synchronize.AbstractStaticSynchronizableContentsCollection
_parseLanguages, _parseParameters, configure, configureDataSource, configureSearchModel, configureStaticParams, getContentPrefix, getContentType, getId, getInitialActionId, getLabel, getLanguages, getParameterValues, getReportMails, getRestrictedField, getSearchModelConfiguration, getSynchronizeActionId, getSynchronizeCollectionModelId, getSynchronizingContentOperator, getValidateActionId, getWorkflowName, removalSync, synchronizeExistingContentsOnly, validateAfterImport
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.ametys.plugins.contentio.synchronize.SynchronizableContentsCollection
getContent, getExternalOnlyFields, getIdField, getLocalAndExternalFields, getTotalCount, handleRightAssignmentContext, importContent, search, synchronizeContent, updateSyncInformations
-
Field Details
-
SCC_UNIQUE_ID
SCC unique ID field- See Also:
-
_i18nUtils
The i18n utils -
_currentUserProvider
The current user provider -
_observationManager
The observation manager -
_contentTypeEP
The content type extension point -
_synchroComponent
The base SCC component -
_nbError
Number of errors encountered -
_hasGlobalError
True if there is a global error during synchronization -
_nbCreatedContents
Number of created contents -
_nbSynchronizedContents
Number of synchronized contents -
_nbNotChangedContents
Number of unchanged contents -
_nbDeletedContents
Number of deleted contents
-
-
Constructor Details
-
AbstractSynchronizableContentsCollection
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classAbstractStaticSynchronizableContentsCollection
- Throws:
ServiceException
-
populate
Description copied from interface:SynchronizableContentsCollection
Populates contents- Parameters:
logger
- The logger- Returns:
- Return the populated contents (imported or synchronized)
-
_internalPopulate
Internal implementation ofpopulate(Logger)
- Parameters:
logger
- The logger- Returns:
- The list of created/synchronized contents
-
empty
Description copied from interface:SynchronizableContentsCollection
Empty the collection of its synchronized contents- Parameters:
logger
- The logger
-
deleteUnexistingContents
Delete contents created by a previous synchronization which does not exist anymore in remote source- Parameters:
logger
- The logger
-
_getContentsToRemove
protected abstract List<Content> _getContentsToRemove(AmetysObjectIterable<ModifiableDefaultContent> contents) Filter the contents to remove. -
_deleteContents
Delete contents.- Parameters:
contentsToRemove
- List of contents to removelogger
- The logger- Returns:
- the number of deleted contents
-
sendErrorMail
Sends the report mails- Parameters:
nbError
- The number of error- Throws:
javax.mail.MessagingException
- if a messaging error occurred
-
validateContent
Validates a content after import- Parameters:
content
- The content to validatevalidationActionId
- Validation action ID to use for this contentlogger
- The logger
-
applyChanges
protected boolean applyChanges(ModifiableDefaultContent content, Logger logger) throws RepositoryException Does workflow action- Parameters:
content
- The synchronized contentlogger
- The logger- Returns:
- true if the content is considered as synchronized (the apply succeeded), false otherwise.
- Throws:
RepositoryException
- if an error occurs when trying to rollback pending changes in the repository.
-
applyChanges
protected boolean applyChanges(ModifiableDefaultContent content, Integer actionId, String event, Logger logger) throws RepositoryException Does workflow action- Parameters:
content
- The synchronized contentactionId
- Workflow actionevent
- Type of eventlogger
- The logger- Returns:
- true if the content is considered as synchronized (the apply succeeded), false otherwise.
- Throws:
RepositoryException
- if an error occurs when trying to rollback pending changes in the repository.
-
createContentAction
protected ModifiableDefaultContent createContentAction(String contentType, String workflowName, int initialActionId, String lang, String contentTitle, Logger logger) Creates content action with result from request- Parameters:
contentType
- Type of the content to createworkflowName
- Workflow to use for this contentinitialActionId
- Action ID for initializationlang
- The languagecontentTitle
- The content titlelogger
- The logger- Returns:
- The content id, or null of a workflow error occured
-
_getExpressionsList
Construct the query to retrieve the content.- Parameters:
lang
- LangidValue
- Synchronization valuecontentType
- Content type- Returns:
- The
List
ofExpression
-
_getContentPathQuery
Construct the query to retrieve the content.- Parameters:
lang
- LangidValue
- Synchronization valuecontentType
- Content type- Returns:
- The XPATH query
-
_synchronizeMetadata
protected boolean _synchronizeMetadata(ModifiableDefaultContent content, ContentType contentType, String logicalMetadataPath, String completeMetadataPath, List<Object> remoteValue, boolean synchronize, boolean create, Logger logger) Fill the metadata with remove value.- Parameters:
content
- The content to synchronizecontentType
- The content typelogicalMetadataPath
- The logical metadata path without the entriescompleteMetadataPath
- The complete metadata path from the root of the contentremoteValue
- The remote valuesynchronize
-true
if synchronizablecreate
-true
if content is creating, false if it is updatedlogger
- The logger- Returns:
true
if changes were made
-
_removeMetadataIfExists
protected boolean _removeMetadataIfExists(ModifiableCompositeMetadata metadataHolder, String metadataName, boolean synchronize) Remove the metadata if exists- Parameters:
metadataHolder
- The metadata holdermetadataName
- The name of the metadatasynchronize
-true
if the data is synchronize- Returns:
true
if the metadata have been removed
-
_getMetadataHolder
protected ModifiableCompositeMetadata _getMetadataHolder(ModifiableCompositeMetadata parentMetadata, String metadataPath) Get the metadata holder for the requested metadata path.- Parameters:
parentMetadata
- Initial metadatametadataPath
- Metadata path from the parent- Returns:
- A metadata holder
-
_updateRelation
protected boolean _updateRelation(ModifiableCompositeMetadata metadataToEdit, String metadataName, Content content) Update the invert relation by adding the new value (Content) to the old values.- Parameters:
metadataToEdit
- Metadata holder to editmetadataName
- Metadata name to setcontent
- The content to add or remove- Returns:
true
if there are changes
-
_updateRelation
protected boolean _updateRelation(ModifiableCompositeMetadata metadataToEdit, String metadataName, Content content, boolean remove) Update the invert relation by adding/removing the content to/from the old values.- Parameters:
metadataToEdit
- Metadata holder to editmetadataName
- Metadata name to setcontent
- The content to add or removeremove
-true
if we wan't to remove the content from the relation- Returns:
true
if there are changes
-
updateSCCProperty
Add the current synchronizable collection as property- Parameters:
content
- The synchronized content- Throws:
RepositoryException
- if an error occurred
-
_removeEmptyParameters
Remove empty parameters to the map- Parameters:
parameters
- the parameters- Returns:
- the map of none empty parameters
-
_isParamNotEmpty
Check if the parameter value is empty- Parameters:
parameterValue
- the parameter value- Returns:
- true if the parameter value is empty
-