package co.smartreceipts.android.purchases.model;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
public abstract class AbstractManagedProduct implements ManagedProduct {
private final InAppPurchase inAppPurchase;
private final String purchaseData;
private final String purchaseToken;
private final String inAppDataSignature;
public AbstractManagedProduct(@NonNull InAppPurchase inAppPurchase, @NonNull String purchaseData,
@NonNull String purchaseToken, @NonNull String inAppDataSignature) {
this.inAppPurchase = Preconditions.checkNotNull(inAppPurchase);
this.purchaseData = Preconditions.checkNotNull(purchaseData);
this.purchaseToken = Preconditions.checkNotNull(purchaseToken);
this.inAppDataSignature = Preconditions.checkNotNull(inAppDataSignature);
}
@NonNull
@Override
public InAppPurchase getInAppPurchase() {
return inAppPurchase;
}
@NonNull
@Override
public String getPurchaseData() {
return purchaseData;
}
@NonNull
@Override
public String getPurchaseToken() {
return purchaseToken;
}
@NonNull
@Override
public String getInAppDataSignature() {
return inAppDataSignature;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof AbstractManagedProduct)) return false;
AbstractManagedProduct that = (AbstractManagedProduct) o;
if (inAppPurchase != that.inAppPurchase) return false;
if (!purchaseData.equals(that.purchaseData)) return false;
if (!purchaseToken.equals(that.purchaseToken)) return false;
return inAppDataSignature.equals(that.inAppDataSignature);
}
@Override
public int hashCode() {
int result = inAppPurchase.hashCode();
result = 31 * result + purchaseData.hashCode();
result = 31 * result + purchaseToken.hashCode();
result = 31 * result + inAppDataSignature.hashCode();
return result;
}
}