Class DefaultOutboundSyncJobRegister

java.lang.Object
de.hybris.platform.outboundsync.job.impl.DefaultOutboundSyncJobRegister
All Implemented Interfaces:
OutboundSyncJobRegister, OutboundSyncStateObserver

public class DefaultOutboundSyncJobRegister extends Object implements OutboundSyncJobRegister, OutboundSyncStateObserver
Implementation of the OutboundSyncJobRegister that is used by default when no custom implementation is injected.
  • Constructor Details

    • DefaultOutboundSyncJobRegister

      public DefaultOutboundSyncJobRegister(@NotNull @NotNull ModelService service)
  • Method Details

    • getNewJob

      @NotNull public @NotNull OutboundSyncJob getNewJob(@NotNull @NotNull OutboundSyncCronJobModel jobModel)
      Description copied from interface: OutboundSyncJobRegister
      Retrieves new instance of the outbound sync job object for the specified job model. Each subsequent call always returns new job instance. On the other hand, because it always returns a fresh job object instance, it guarantees the previous and possibly stale state of the job is discarded. For this reason, it makes sense to use this method only when it's reliably the first retrieval of the outbound sync job from this register. Otherwise, #getJob should be used.
      Specified by:
      getNewJob in interface OutboundSyncJobRegister
      Parameters:
      jobModel - job entity model representing the cron job being executed.
      Returns:
      a state aggregator for the specified job model. If a state aggregator has been requested for the job model before, exactly same instance of aggregator is returned for the subsequent calls; otherwise a new instance of the aggregator is created and registered.
    • getJob

      public Optional<OutboundSyncJob> getJob(@NotNull @NotNull PK jobPk)
      Description copied from interface: OutboundSyncJobRegister
      Retrieves the outbound sync job object corresponding to the specified job model primary key.
      Specified by:
      getJob in interface OutboundSyncJobRegister
      Parameters:
      jobPk - primary key of the job entity model, for which the outbound sync job needs to be retrieved.
      Returns:
      an Optional with the outbound sync job for the specified job model primary key. If the job has been requested for the job model before, exactly same instance of the job is returned in the Optional for the subsequent calls; otherwise a new instance of the outbound sync job is created and registered. If the primary key does not correspond to an OutboundSyncCronJobModel, then Optional.empty() is returned.
    • getJob

      @NotNull public @NotNull OutboundSyncJob getJob(@NotNull @NotNull OutboundSyncCronJobModel model)
      Description copied from interface: OutboundSyncJobRegister
      Retrieves the outbound sync job object corresponding to the specified job model.
      Specified by:
      getJob in interface OutboundSyncJobRegister
      Parameters:
      model - job entity model representing the cron job being executed.
      Returns:
      an outbound sync job for the specified job model. If that job has been requested by same job model before, exactly same instance of the outbound sync job is returned for the subsequent calls; otherwise a new instance of the job is created and registered.
    • getRunningJobs

      public Collection<OutboundSyncJob> getRunningJobs()
      Description copied from interface: OutboundSyncJobRegister
      Retrieves all outbound sync jobs that are currently running.

      Note: default implementation in this interface returns an empty list. Each implementation of this interface must provide correct implementation of this method.

      Specified by:
      getRunningJobs in interface OutboundSyncJobRegister
      Returns:
      a collection of states for the outbound sync jobs, which are currently registered by this register; or an empty collection, if there is no a single running outbound sync job now.
      See Also:
    • isRunning

      public boolean isRunning(PK id)
      Description copied from interface: OutboundSyncJobRegister
      Checks whether the specified job is running now or not. The default implementation of this method in this interface always returns false, so this method must be overridden by implementations to provide valid logic.
      Specified by:
      isRunning in interface OutboundSyncJobRegister
      Parameters:
      id - identifier of the job to acquire about.
      Returns:
      true, if an outbound sync job with the specified ID is registered in this registry now, i.e. it will be returned by the OutboundSyncJobRegister.getRunningJobs() method; or false otherwise.
      See Also:
    • createJobStateAggregator

      protected OutboundSyncJobStateAggregator createJobStateAggregator(@NotNull @NotNull OutboundSyncCronJobModel job)
      Creates new instance of the {code OutboundSyncJobStateAggregator}. This method should only create the aggregator but not register it yet.
      Parameters:
      job - a model for which an aggregator should be created.
      Returns:
      new instance of the aggregator.
    • stateChanged

      public void stateChanged(@NotNull @NotNull OutboundSyncCronJobModel model, @NotNull @NotNull OutboundSyncState state)
      Description copied from interface: OutboundSyncStateObserver
      Notifies the observer about the outbound sync job state change.
      Specified by:
      stateChanged in interface OutboundSyncStateObserver
      Parameters:
      model - outbound sync cron job model, for which the state changed. Implementors should not rely on this model correctly reflecting persisted state because the model may be stale. It's just to identify what job has changed.
      state - new state the job has changed to.
    • setFlexibleSearchService

      @Deprecated(since="2205", forRemoval=true) public void setFlexibleSearchService(FlexibleSearchService flexibleSearchService)
      Deprecated, for removal: This API element is subject to removal in a future version.
      not used anymore in this register implementation
      Injects implementation of the flexible search service
      Parameters:
      flexibleSearchService - service implementation to use
    • setOutboundSyncConfiguration

      @Deprecated(since="2205", forRemoval=true) public void setOutboundSyncConfiguration(OutboundSyncConfiguration outboundSyncConfiguration)
      Deprecated, for removal: This API element is subject to removal in a future version.
      not used anymore in this register implementation
      Injects implementation of the outbound sync configuration
      Parameters:
      outboundSyncConfiguration - configuration implementation to use