Interface SynchronizationFacade

  • All Known Implementing Classes:
    DefaultSynchronizationFacade

    public interface SynchronizationFacade
    Facade which allows to perform synchronization related operations.
    • Method Detail

      • performSynchronization

        java.util.Optional<java.lang.String> performSynchronization​(SyncTask syncTask)
        Performs synchronization based on given sync task.
        Parameters:
        syncTask - - defines sync jobs and items to sync.
        Returns:
        executed sync cron job code CronJobModel.getCode() if sync has been started.
      • getInboundSynchronizations

        java.util.List<SyncItemJobModel> getInboundSynchronizations​(CatalogVersionModel catalogVersion)
        Gets inbound sync jobs for given catalog version.
        Parameters:
        catalogVersion - - catalog version for which outbound synchronizations will be returned. To obtain catalog version please use getSyncCatalogVersion(Collection)
        Returns:
        list of sync jobs
      • getOutboundSynchronizations

        java.util.List<SyncItemJobModel> getOutboundSynchronizations​(CatalogVersionModel catalogVersion)
        Gets outbound sync jobs for given catalog version.
        Parameters:
        catalogVersion - - catalog version for which outbound synchronizations will be returned. To obtain catalog version please use getSyncCatalogVersion(Collection)
        Returns:
        list of sync jobs
      • getSyncCatalogVersion

        java.util.Optional<CatalogVersionModel> getSyncCatalogVersion​(java.util.Collection<ItemModel> items)
        Returns catalog version for given items if they are from the same catalog version or are CatalogVersion itself.
        Parameters:
        items - items for which catalog version will be extracted.
        Returns:
        catalog version for given items.
      • isInSync

        java.util.Optional<java.lang.Boolean> isInSync​(java.util.List<ItemModel> itemModels,
                                                       SyncItemJobModel jobModel,
                                                       java.util.Map<java.lang.String,​java.lang.Object> ctxMap)
        Checks if all ItemModels are sync according to source and target from SyncItemJobModel.
        Parameters:
        itemModels - defines items for which sync status is checked
        jobModel - defines sync item job model from which source and target is taken to perform status check
        ctxMap - defines additional context
        Returns:
        true if all itemModels are in sync
      • isInSync

        java.util.Optional<java.lang.Boolean> isInSync​(ItemModel itemModel,
                                                       java.util.Map<java.lang.String,​java.lang.Object> ctxMap)
        Checks ItemModel's status in all available synchronizations.
        Parameters:
        itemModel - defines item for which sync status is checked
        ctxMap - defines additional context
        Returns:
        true if all itemModel are in sync, Optional.empty if sync status is not available e.g. item is not catalog version aware
      • getPartialSyncStatusInfo

        java.util.Optional<PartialSyncInfo> getPartialSyncStatusInfo​(ItemModel itemModel,
                                                                     SyncItemStatus status,
                                                                     java.util.Map<java.lang.String,​java.lang.Object> ctxMap)
        Checks ItemModel's status in all available synchronizations.
        Parameters:
        itemModel - defines item for which sync status is checked
        status - defines target status for partial sync info PartialSyncInfo
        ctxMap - defines additional context
        Returns:
        partial sync information if item is catalog version aware.
      • findSyncCounterpart

        java.util.Optional<ItemModel> findSyncCounterpart​(ItemModel item,
                                                          SyncItemJobModel syncItemJob)
        Finds a counterpart of given item in respective catalog version defined by the syncItemJob.
        Parameters:
        item - item of which counterpart will be found.
        syncItemJob - synchronization job which defines source and target catalog version.
        Returns:
        counterpart item if found.
      • getItemsCatalogVersions

        java.util.List<CatalogVersionModel> getItemsCatalogVersions​(java.util.List<? extends ItemModel> items)
        Extracts from given list items which are CatalogVersion
        Parameters:
        items - list of items
        Returns:
        list of catalog version items
      • isSyncInProgress

        boolean isSyncInProgress​(ItemModel item)
        Tells if given item is being synchronized.
        Parameters:
        item - item to check
        Returns:
        true if item is being synchronized.
      • reRunCronJob

        void reRunCronJob​(CatalogVersionSyncCronJobModel cronJob)
        Runs given sync cron job again omitting items already processed in the previous run.
        Parameters:
        cronJob - sync cron job to rerun.
      • canSync

        boolean canSync​(SyncItemJobModel sync)
        Tells whether current user can perform given sync.
        Parameters:
        sync - synchronization job.
        Returns:
        true if user can synchronize.