code: public void setReplicators(Replicator[] replicators) {
          if (mReplicatorsInitialised) {
              throw new IllegalStateException("Replicators already set");
          }
          if (replicators != null && replicators.length > 0) {
              if (mReplicationPolicyManager == null) {
                  mReplicationPolicyManager = new ReplicationPolicyManager();
              }
              mReplicationPolicyManager.addReplicators(replicators);
              mReplicationPolicyManager.setReplicationsCompletedListener(this);
              synchronized (mCommandQueue) {
                  mReplicatorsInitialised = true;
                  for (Message msg : mCommandQueue) {
                      mServiceHandler.sendMessage(msg);
                  }
                  mCommandQueue.clear();
              }
          } else {
              throw new IllegalArgumentException(
                      "No replications setup. Please pass Replicators to setReplicators" +
                              "(Replicator[])");
          }
      }
docs: Set the {@link Replicator} objects configured to perform the required replications.
  The {@code ReplicationService} will not begin replications until this method has
  been called. This operation should only be called once.
  
  @param replicators An array of the configured {@code Replicator} objects.
  @throws IllegalArgumentException if {@code replicators} is null or empty.
  @throws IllegalStateException    if called again after a previous call to this method
  with a valid array of {@code Replicator} objects.