package com.stripe.wrap.pay.utils;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringDef;
import com.google.android.gms.wallet.LineItem;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Class representing a single cart error, either with a line item or
* the cart as a whole.
*/
public class CartError {
@Retention(RetentionPolicy.SOURCE)
@StringDef({
CART_CURRENCY,
DUPLICATE_TAX,
LINE_ITEM_CURRENCY,
LINE_ITEM_PRICE,
LINE_ITEM_QUANTITY
})
@interface CartErrorType { }
public static final String CART_CURRENCY = "cart_currency";
public static final String DUPLICATE_TAX = "duplicate_tax";
public static final String LINE_ITEM_CURRENCY = "line_item_currency";
public static final String LINE_ITEM_PRICE = "line_item_price";
public static final String LINE_ITEM_QUANTITY = "line_item_quantity";
@NonNull private final String mErrorMessage;
@NonNull private final @CartErrorType String mErrorType;
@Nullable private final LineItem mLineItem;
public CartError(@CartErrorType String errorType,
@NonNull String errorMessage) {
this(errorType, errorMessage, null);
}
public CartError(
@NonNull @CartErrorType String errorType,
@NonNull String errorMessage,
@Nullable LineItem errorLineItem) {
mErrorType = errorType;
mErrorMessage = errorMessage;
mLineItem = errorLineItem;
}
public String getMessage() {
return mErrorMessage;
}
@NonNull
@CartErrorType
public String getErrorType() {
return mErrorType;
}
@Nullable
public LineItem getLineItem() {
return mLineItem;
}
}