package query.hessian.accounts;

import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.jetbrains.annotations.NotNull;
import replicationAnnotations.OuterWorldAPI;

import java.io.Serializable;

/**
 * Result of sending item. If succeeded contains ids of created actions.
 *
 * @author andrey.kuprishov
 */
@SuppressWarnings({"PublicField"})
@OuterWorldAPI
public class SendItemResult implements Serializable {
  private static final long serialVersionUID = 7866864800309865801L;

  @NotNull
  public SendItemStatus status = SendItemStatus.SomeSucceeded;
  @NotNull
  public String error = StringUtils.EMPTY;
  @NotNull
  public long[] actionIds = ArrayUtils.EMPTY_LONG_ARRAY;

  public SendItemResult() {
  }

  @NotNull
  public static SendItemResult describeSuccess(@NotNull long[] actionIds, @NotNull String error) {
    final SendItemResult result = new SendItemResult();
    result.status    = SendItemStatus.SomeSucceeded;
    result.actionIds = actionIds;
    result.error     = error;
    return result;
  }

  @NotNull
  public static SendItemResult describeError(@NotNull SendItemStatus status, @NotNull String error) {
    final SendItemResult result = new SendItemResult();
    result.status = status;
    result.error = error;
    return result;
  }
}
