All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.commercetools.sync.states.StateSyncOptionsBuilder Maven / Gradle / Ivy

package com.commercetools.sync.states;

import com.commercetools.api.client.ProjectApiRoot;
import com.commercetools.api.models.state.State;
import com.commercetools.api.models.state.StateDraft;
import com.commercetools.api.models.state.StateUpdateAction;
import com.commercetools.sync.commons.BaseSyncOptionsBuilder;
import javax.annotation.Nonnull;

public final class StateSyncOptionsBuilder
    extends BaseSyncOptionsBuilder<
        StateSyncOptionsBuilder, StateSyncOptions, State, StateDraft, StateUpdateAction> {

  public static final int BATCH_SIZE_DEFAULT = 50;

  private StateSyncOptionsBuilder(@Nonnull final ProjectApiRoot ctpClient) {
    this.ctpClient = ctpClient;
  }

  /**
   * Creates a new instance of {@link StateSyncOptionsBuilder} given a {@link
   * com.commercetools.api.client.ProjectApiRoot} responsible for interaction with the target CTP
   * project, with the default batch size ({@code BATCH_SIZE_DEFAULT} = 500).
   *
   * @param ctpClient instance of the {@link com.commercetools.api.client.ProjectApiRoot}
   *     responsible for interaction with the target CTP project.
   * @return new instance of {@link StateSyncOptionsBuilder}
   */
  public static StateSyncOptionsBuilder of(@Nonnull final ProjectApiRoot ctpClient) {

    return new StateSyncOptionsBuilder(ctpClient).batchSize(BATCH_SIZE_DEFAULT);
  }

  /**
   * Creates new instance of {@link StateSyncOptions} enriched with all attributes provided to
   * {@code this} builder.
   *
   * @return new instance of {@link StateSyncOptions}
   */
  @Override
  public StateSyncOptions build() {
    return new StateSyncOptions(
        ctpClient,
        errorCallback,
        warningCallback,
        batchSize,
        beforeUpdateCallback,
        beforeCreateCallback,
        cacheSize);
  }

  /**
   * Returns an instance of this class to be used in the superclass's generic methods. Please see
   * the JavaDoc in the overridden method for further details.
   *
   * @return an instance of this class.
   */
  @Override
  protected StateSyncOptionsBuilder getThis() {
    return this;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy