Class BaseSyncOptionsBuilder<T extends BaseSyncOptionsBuilder<T,​S,​U,​V>,​S extends BaseSyncOptions,​U,​V>

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      T batchSize​(int batchSize)
      Set option that indicates batch size for sync process.
      T beforeCreateCallback​(java.util.function.Function<V,​V> beforeCreateCallback)
      Sets the beforeCreateCallback Function which can be applied on a new resource draft of type V (e.g.
      T beforeUpdateCallback​(TriFunction<java.util.List<io.sphere.sdk.commands.UpdateAction<U>>,​V,​U,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> beforeUpdateCallback)
      Sets the beforeUpdateCallback TriFunction which can be applied on the supplied list of update actions generated from comparing an old resource of type U (e.g.
      protected abstract S build()
      Creates new instance of S which extends BaseSyncOptions enriched with all attributes provided to this builder.
      T cacheSize​(long cacheSize)
      Sets the cache size that indicates the key to id cache size of the sync process.
      T errorCallback​(QuadConsumer<SyncException,​java.util.Optional<V>,​java.util.Optional<U>,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> errorCallback)
      Sets the errorCallback function of the sync module.
      protected abstract T getThis()
      Returns this instance of T, which extends BaseSyncOptionsBuilder.
      T warningCallback​(TriConsumer<SyncException,​java.util.Optional<V>,​java.util.Optional<U>> warningCallback)
      Sets the warningCallback function of the sync module.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ctpClient

        protected io.sphere.sdk.client.SphereClient ctpClient
      • errorCallback

        protected QuadConsumer<SyncException,​java.util.Optional<V>,​java.util.Optional<U>,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> errorCallback
      • batchSize

        protected int batchSize
      • beforeUpdateCallback

        protected TriFunction<java.util.List<io.sphere.sdk.commands.UpdateAction<U>>,​V,​U,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> beforeUpdateCallback
      • beforeCreateCallback

        protected java.util.function.Function<V,​V> beforeCreateCallback
      • cacheSize

        protected long cacheSize
    • Constructor Detail

      • BaseSyncOptionsBuilder

        public BaseSyncOptionsBuilder()
    • Method Detail

      • errorCallback

        public T errorCallback​(@Nonnull
                               QuadConsumer<SyncException,​java.util.Optional<V>,​java.util.Optional<U>,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> errorCallback)
        Sets the errorCallback function of the sync module. This callback will be called whenever an event occurs that leads to an error alert from the sync process.
        Parameters:
        errorCallback - the new value to set to the error callback.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • warningCallback

        public T warningCallback​(@Nonnull
                                 TriConsumer<SyncException,​java.util.Optional<V>,​java.util.Optional<U>> warningCallback)
        Sets the warningCallback function of the sync module. This callback will be called whenever an event occurs that leads to a warning alert from the sync process.
        Parameters:
        warningCallback - the new value to set to the warning callback.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • batchSize

        public T batchSize​(int batchSize)
        Set option that indicates batch size for sync process. During the sync there is a need for fetching existing resources so that they can be compared with the new resource drafts. That's why the input is sliced into batches and then processed. It allows to reduce the query size for fetching all resources processed in one batch. E.g. value of 30 means that 30 entries from input list would be accumulated and one API call will be performed for fetching entries responding to them. Then comparision and sync are performed.

        This batch size is set to 30 by default.

        Parameters:
        batchSize - int that indicates batch size of resources to process. Has to be positive or else will be ignored and default value of 30 would be used.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • cacheSize

        public T cacheSize​(long cacheSize)
        Sets the cache size that indicates the key to id cache size of the sync process. To increase performance during the sync some resource keys mapped to ids are cached which are required for resolving references. To keep the cache performant outdated entries are evicted when a certain size is reached.

        Note: This cache size is set to 10.000 by default.

        Parameters:
        cacheSize - a long number value that indicates cache size of the key to id cache used for reference resolution. Has to be positive or else will be ignored and default value of 10.000 would be used.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • beforeUpdateCallback

        public T beforeUpdateCallback​(@Nonnull
                                      TriFunction<java.util.List<io.sphere.sdk.commands.UpdateAction<U>>,​V,​U,​java.util.List<io.sphere.sdk.commands.UpdateAction<U>>> beforeUpdateCallback)
        Sets the beforeUpdateCallback TriFunction which can be applied on the supplied list of update actions generated from comparing an old resource of type U (e.g. Product) to a new draft of type V (e.g. ProductDraft). It results in a resultant list after the specified TriFunction beforeUpdateCallback function has been applied. This can be used to intercept the sync process before issuing an update request and to be able to manipulate the update actions. Note: Specifying a callback that returns a null value or empty list will skip issuing the update request.
        Parameters:
        beforeUpdateCallback - function which can be applied on generated list of update actions.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • beforeCreateCallback

        public T beforeCreateCallback​(@Nonnull
                                      java.util.function.Function<V,​V> beforeCreateCallback)
        Sets the beforeCreateCallback Function which can be applied on a new resource draft of type V (e.g. ProductDraft) before it's created by the sync. It results in a resource draft of the same type which is the result of the application of the specified Function beforeCreateCallback function. This can be used to intercept the sync process before creating the resource draft and to be able to manipulate it. Note: Specifying a callback that returns a null value will skip draft creation.
        Parameters:
        beforeCreateCallback - function which can be applied on a new draft before it's created by the sync.
        Returns:
        this instance of BaseSyncOptionsBuilder
      • build

        protected abstract S build()
        Creates new instance of S which extends BaseSyncOptions enriched with all attributes provided to this builder.
        Returns:
        new instance of S which extends BaseSyncOptions
      • getThis

        protected abstract T getThis()
        Returns this instance of T, which extends BaseSyncOptionsBuilder. The purpose of this method is to make sure that this is an instance of a class which extends BaseSyncOptionsBuilder in order to be used in the generic methods of the class. Otherwise, without this method, the methods above would need to cast this to T which could lead to a runtime error of the class was extended in a wrong way.
        Returns:
        an instance of the class that overrides this method.