diff --git a/stripe/src/main/java/com/stripe/android/PaymentSessionData.java b/stripe/src/main/java/com/stripe/android/PaymentSessionData.java
index 418eab9c4b5..b77c8405b4b 100644
--- a/stripe/src/main/java/com/stripe/android/PaymentSessionData.java
+++ b/stripe/src/main/java/com/stripe/android/PaymentSessionData.java
@@ -10,6 +10,8 @@
import com.stripe.android.model.ShippingMethod;
import com.stripe.android.utils.ObjectUtils;
+import java.util.Objects;
+
/**
* A data class representing the state of the associated {@link PaymentSession}.
*/
@@ -211,7 +213,8 @@ public PaymentSessionData[] newArray(int size) {
private PaymentSessionData(@NonNull Parcel in) {
mCartTotal = in.readLong();
mIsPaymentReadyToCharge = in.readInt() == 1;
- mPaymentResult = PaymentSessionUtils.paymentResultFromString(in.readString());
+ mPaymentResult = PaymentSessionUtils.paymentResultFromString(
+ Objects.requireNonNull(in.readString()));
mPaymentMethod = in.readParcelable(PaymentMethod.class.getClassLoader());
mShippingInformation = in.readParcelable(ShippingInformation.class.getClassLoader());
mShippingMethod = in.readParcelable(ShippingMethod.class.getClassLoader());
diff --git a/stripe/src/main/java/com/stripe/android/model/AccountParams.java b/stripe/src/main/java/com/stripe/android/model/AccountParams.java
index f5b27041a0c..aed3672e68d 100644
--- a/stripe/src/main/java/com/stripe/android/model/AccountParams.java
+++ b/stripe/src/main/java/com/stripe/android/model/AccountParams.java
@@ -13,7 +13,7 @@
/**
* Represents a grouping of parameters needed to create a Token for a Connect account on the server.
*/
-public class AccountParams {
+public final class AccountParams {
static final String API_BUSINESS_TYPE = "business_type";
static final String API_TOS_SHOWN_AND_ACCEPTED = "tos_shown_and_accepted";
diff --git a/stripe/src/main/java/com/stripe/android/model/Address.java b/stripe/src/main/java/com/stripe/android/model/Address.java
index fc340a0126f..edc9bbb0676 100644
--- a/stripe/src/main/java/com/stripe/android/model/Address.java
+++ b/stripe/src/main/java/com/stripe/android/model/Address.java
@@ -26,7 +26,7 @@
* Model for an owner address
* object in the Source api.
*/
-public class Address extends StripeJsonModel implements Parcelable {
+public final class Address extends StripeJsonModel implements Parcelable {
@IntDef({
RequiredBillingAddressFields.NONE,
diff --git a/stripe/src/main/java/com/stripe/android/model/BankAccount.java b/stripe/src/main/java/com/stripe/android/model/BankAccount.java
index 693fbfb538a..5e60507f935 100644
--- a/stripe/src/main/java/com/stripe/android/model/BankAccount.java
+++ b/stripe/src/main/java/com/stripe/android/model/BankAccount.java
@@ -19,7 +19,7 @@
* the Stripe
* documentation.
*/
-public class BankAccount {
+public final class BankAccount {
@Retention(RetentionPolicy.SOURCE)
@StringDef({TYPE_COMPANY, TYPE_INDIVIDUAL})
diff --git a/stripe/src/main/java/com/stripe/android/model/Card.java b/stripe/src/main/java/com/stripe/android/model/Card.java
index 59daf318d53..ec9abb28a66 100644
--- a/stripe/src/main/java/com/stripe/android/model/Card.java
+++ b/stripe/src/main/java/com/stripe/android/model/Card.java
@@ -37,7 +37,7 @@
/**
* A model object representing a Card in the Android SDK.
*/
-public class Card extends StripeJsonModel implements StripePaymentSource {
+public final class Card extends StripeJsonModel implements StripePaymentSource {
@Retention(RetentionPolicy.SOURCE)
@StringDef({
diff --git a/stripe/src/main/java/com/stripe/android/model/Customer.java b/stripe/src/main/java/com/stripe/android/model/Customer.java
index 928ee8fde05..8146c4b82e8 100644
--- a/stripe/src/main/java/com/stripe/android/model/Customer.java
+++ b/stripe/src/main/java/com/stripe/android/model/Customer.java
@@ -27,7 +27,7 @@
/**
* Model for a Stripe Customer object
*/
-public class Customer extends StripeJsonModel {
+public final class Customer extends StripeJsonModel {
private static final String FIELD_ID = "id";
private static final String FIELD_OBJECT = "object";
diff --git a/stripe/src/main/java/com/stripe/android/model/CustomerSource.java b/stripe/src/main/java/com/stripe/android/model/CustomerSource.java
index a0632640ab9..66dabcc80c6 100644
--- a/stripe/src/main/java/com/stripe/android/model/CustomerSource.java
+++ b/stripe/src/main/java/com/stripe/android/model/CustomerSource.java
@@ -16,7 +16,7 @@
/**
* Model of the "data" object inside a {@link Customer} "source" object.
*/
-public class CustomerSource extends StripeJsonModel implements StripePaymentSource {
+public final class CustomerSource extends StripeJsonModel implements StripePaymentSource {
@NonNull private final StripePaymentSource mStripePaymentSource;
diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentIntent.java b/stripe/src/main/java/com/stripe/android/model/PaymentIntent.java
index 615ec85360a..79f8794beda 100644
--- a/stripe/src/main/java/com/stripe/android/model/PaymentIntent.java
+++ b/stripe/src/main/java/com/stripe/android/model/PaymentIntent.java
@@ -39,7 +39,7 @@
*
PaymentIntents API
*
*/
-public class PaymentIntent extends StripeJsonModel {
+public final class PaymentIntent extends StripeJsonModel {
private static final String VALUE_PAYMENT_INTENT = "payment_intent";
static final String FIELD_ID = "id";
diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentIntentParams.java b/stripe/src/main/java/com/stripe/android/model/PaymentIntentParams.java
index 38c6a2a0162..94fda7d57f1 100644
--- a/stripe/src/main/java/com/stripe/android/model/PaymentIntentParams.java
+++ b/stripe/src/main/java/com/stripe/android/model/PaymentIntentParams.java
@@ -7,7 +7,7 @@
import java.util.HashMap;
import java.util.Map;
-public class PaymentIntentParams {
+public final class PaymentIntentParams {
public static final String API_PARAM_SOURCE_DATA = "source_data";
public static final String API_PARAM_PAYMENT_METHOD_DATA = "payment_method_data";
diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethod.java b/stripe/src/main/java/com/stripe/android/model/PaymentMethod.java
index f82c52c0a36..95c50462fc8 100644
--- a/stripe/src/main/java/com/stripe/android/model/PaymentMethod.java
+++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethod.java
@@ -33,7 +33,7 @@
*
* See {@link PaymentMethodCreateParams} for PaymentMethod creation
*/
-public class PaymentMethod extends StripeJsonModel implements Parcelable {
+public final class PaymentMethod extends StripeJsonModel implements Parcelable {
private static final String FIELD_ID = "id";
private static final String FIELD_BILLING_DETAILS = "billing_details";
private static final String FIELD_CARD = "card";
diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.java b/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.java
index 03abe914758..fd9854aa043 100644
--- a/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.java
+++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.java
@@ -18,7 +18,7 @@
*
* See {@link PaymentMethod} for API object
*/
-public class PaymentMethodCreateParams {
+public final class PaymentMethodCreateParams {
private static final String FIELD_BILLING_DETAILS = "billing_details";
private static final String FIELD_CARD = "card";
diff --git a/stripe/src/main/java/com/stripe/android/model/ShippingInformation.java b/stripe/src/main/java/com/stripe/android/model/ShippingInformation.java
index cf25b72d103..f31a90465aa 100644
--- a/stripe/src/main/java/com/stripe/android/model/ShippingInformation.java
+++ b/stripe/src/main/java/com/stripe/android/model/ShippingInformation.java
@@ -20,7 +20,7 @@
/**
* Model representing a shipping address object
*/
-public class ShippingInformation extends StripeJsonModel implements Parcelable {
+public final class ShippingInformation extends StripeJsonModel implements Parcelable {
public static final Creator CREATOR = new Creator() {
@Override
public ShippingInformation createFromParcel(Parcel source) {
diff --git a/stripe/src/main/java/com/stripe/android/model/ShippingMethod.java b/stripe/src/main/java/com/stripe/android/model/ShippingMethod.java
index 51d2e629263..dbd4d04eb71 100644
--- a/stripe/src/main/java/com/stripe/android/model/ShippingMethod.java
+++ b/stripe/src/main/java/com/stripe/android/model/ShippingMethod.java
@@ -21,7 +21,7 @@
/**
* Model representing a shipping method in the Android SDK.
*/
-public class ShippingMethod extends StripeJsonModel implements Parcelable {
+public final class ShippingMethod extends StripeJsonModel implements Parcelable {
public static final Parcelable.Creator CREATOR
= new Parcelable.Creator() {
@@ -50,8 +50,7 @@ public ShippingMethod[] newArray(int size) {
public ShippingMethod(@NonNull String label,
@NonNull String identifier,
long amount,
- @NonNull @Size(min = 0, max = 3) String
- currencyCode) {
+ @NonNull @Size(min = 0, max = 3) String currencyCode) {
this(label, identifier, null, amount, currencyCode);
}
diff --git a/stripe/src/main/java/com/stripe/android/model/Source.java b/stripe/src/main/java/com/stripe/android/model/Source.java
index a0042adc1fb..a22641c8190 100644
--- a/stripe/src/main/java/com/stripe/android/model/Source.java
+++ b/stripe/src/main/java/com/stripe/android/model/Source.java
@@ -29,7 +29,7 @@
* can be seen at
* https://stripe.com/docs/api/sources/object?lang=java.
*/
-public class Source extends StripeJsonModel implements StripePaymentSource {
+public final class Source extends StripeJsonModel implements StripePaymentSource {
static final String VALUE_SOURCE = "source";
private static final String VALUE_CARD = "card";
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceCardData.java b/stripe/src/main/java/com/stripe/android/model/SourceCardData.java
index d4f9acf4a1e..930e18dbaeb 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceCardData.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceCardData.java
@@ -28,7 +28,7 @@
/**
* Model for data contained in the SourceTypeData of a Card Source.
*/
-public class SourceCardData extends StripeSourceTypeModel {
+public final class SourceCardData extends StripeSourceTypeModel {
@Retention(RetentionPolicy.SOURCE)
@StringDef({
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceCodeVerification.java b/stripe/src/main/java/com/stripe/android/model/SourceCodeVerification.java
index 15a77b7581d..3713d3af010 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceCodeVerification.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceCodeVerification.java
@@ -21,7 +21,7 @@
* https://stripe.com/docs/api/sources/object#source_object-code_verification
* object in the source api, not source code verification
*/
-public class SourceCodeVerification extends StripeJsonModel {
+public final class SourceCodeVerification extends StripeJsonModel {
// Note: these are the same as the values for the @Redirect.Status StringDef.
// They don't have to stay the same forever, so they are redefined here.
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceOwner.java b/stripe/src/main/java/com/stripe/android/model/SourceOwner.java
index d0ffbee85c9..d6ab88c027c 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceOwner.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceOwner.java
@@ -20,7 +20,7 @@
* Model for a owner object
* in the Source api.
*/
-public class SourceOwner extends StripeJsonModel {
+public final class SourceOwner extends StripeJsonModel {
private static final String VERIFIED = "verified_";
private static final String FIELD_ADDRESS = "address";
@@ -32,14 +32,14 @@ public class SourceOwner extends StripeJsonModel {
private static final String FIELD_VERIFIED_NAME = VERIFIED + FIELD_NAME;
private static final String FIELD_VERIFIED_PHONE = VERIFIED + FIELD_PHONE;
- @Nullable private Address mAddress;
- @Nullable private String mEmail;
- @Nullable private String mName;
- @Nullable private String mPhone;
- @Nullable private Address mVerifiedAddress;
- @Nullable private String mVerifiedEmail;
- @Nullable private String mVerifiedName;
- @Nullable private String mVerifiedPhone;
+ @Nullable private final Address mAddress;
+ @Nullable private final String mEmail;
+ @Nullable private final String mName;
+ @Nullable private final String mPhone;
+ @Nullable private final Address mVerifiedAddress;
+ @Nullable private final String mVerifiedEmail;
+ @Nullable private final String mVerifiedName;
+ @Nullable private final String mVerifiedPhone;
private SourceOwner(
@Nullable Address address,
@@ -100,38 +100,6 @@ public String getVerifiedPhone() {
return mVerifiedPhone;
}
- void setAddress(Address address) {
- mAddress = address;
- }
-
- void setEmail(String email) {
- mEmail = email;
- }
-
- void setName(String name) {
- mName = name;
- }
-
- void setPhone(String phone) {
- mPhone = phone;
- }
-
- void setVerifiedAddress(Address verifiedAddress) {
- mVerifiedAddress = verifiedAddress;
- }
-
- void setVerifiedEmail(String verifiedEmail) {
- mVerifiedEmail = verifiedEmail;
- }
-
- void setVerifiedName(String verifiedName) {
- mVerifiedName = verifiedName;
- }
-
- void setVerifiedPhone(String verifiedPhone) {
- mVerifiedPhone = verifiedPhone;
- }
-
@NonNull
@Override
public Map toMap() {
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceParams.java b/stripe/src/main/java/com/stripe/android/model/SourceParams.java
index 888955ea703..d267d4e5e59 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceParams.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceParams.java
@@ -15,7 +15,7 @@
/**
* Represents a grouping of parameters needed to create a {@link Source} object on the server.
*/
-public class SourceParams {
+public final class SourceParams {
private static final String API_PARAM_AMOUNT = "amount";
private static final String API_PARAM_CURRENCY = "currency";
@@ -246,7 +246,7 @@ public static SourceParams createCustomParams() {
* @return a {@link SourceParams} object that can be used to create a source.
*/
@NonNull
- public static SourceParams createSourceFromTokenParams(String tokenId) {
+ public static SourceParams createSourceFromTokenParams(@NonNull String tokenId) {
SourceParams sourceParams = SourceParams.createCustomParams();
sourceParams.setType(Source.CARD);
sourceParams.setToken(tokenId);
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceReceiver.java b/stripe/src/main/java/com/stripe/android/model/SourceReceiver.java
index 219c6846bfc..495c6225008 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceReceiver.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceReceiver.java
@@ -9,14 +9,16 @@
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
/**
- * Model for a receiver object in
- * the source api. Present if the {@link Source} is a receiver.
+ * Model for a
+ * receiver object
+ * in the Sources API. Present if the {@link Source} is a receiver.
*/
-public class SourceReceiver extends StripeJsonModel {
+public final class SourceReceiver extends StripeJsonModel {
private static final String FIELD_ADDRESS = "address";
private static final String FIELD_AMOUNT_CHARGED = "amount_charged";
@@ -24,10 +26,10 @@ public class SourceReceiver extends StripeJsonModel {
private static final String FIELD_AMOUNT_RETURNED = "amount_returned";
// This is not to be confused with the Address object
- @Nullable private String mAddress;
- private long mAmountCharged;
- private long mAmountReceived;
- private long mAmountReturned;
+ @Nullable private final String mAddress;
+ private final long mAmountCharged;
+ private final long mAmountReceived;
+ private final long mAmountReturned;
private SourceReceiver(@Nullable String address,
long amountCharged,
@@ -44,38 +46,22 @@ public String getAddress() {
return mAddress;
}
- public void setAddress(@Nullable String address) {
- mAddress = address;
- }
-
public long getAmountCharged() {
return mAmountCharged;
}
- public void setAmountCharged(long amountCharged) {
- mAmountCharged = amountCharged;
- }
-
public long getAmountReceived() {
return mAmountReceived;
}
- public void setAmountReceived(long amountReceived) {
- mAmountReceived = amountReceived;
- }
-
public long getAmountReturned() {
return mAmountReturned;
}
- public void setAmountReturned(long amountReturned) {
- mAmountReturned = amountReturned;
- }
-
@NonNull
@Override
public Map toMap() {
- final Map map = new HashMap<>();
+ final AbstractMap map = new HashMap<>();
if (!StripeTextUtils.isBlank(mAddress)) {
map.put(FIELD_ADDRESS, mAddress);
}
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceRedirect.java b/stripe/src/main/java/com/stripe/android/model/SourceRedirect.java
index fef8be556b3..f07825bc09a 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceRedirect.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceRedirect.java
@@ -24,7 +24,7 @@
* Model for a
* redirect object in the source api.
*/
-public class SourceRedirect extends StripeJsonModel {
+public final class SourceRedirect extends StripeJsonModel {
@Retention(RetentionPolicy.SOURCE)
@StringDef({
@@ -43,9 +43,9 @@ public class SourceRedirect extends StripeJsonModel {
private static final String FIELD_STATUS = "status";
private static final String FIELD_URL = "url";
- @Nullable private String mReturnUrl;
- @Nullable @Status private String mStatus;
- @Nullable private String mUrl;
+ @Nullable private final String mReturnUrl;
+ @Nullable @Status private final String mStatus;
+ @Nullable private final String mUrl;
private SourceRedirect(@Nullable String returnUrl, @Status @Nullable String status,
@Nullable String url) {
@@ -59,29 +59,17 @@ public String getReturnUrl() {
return mReturnUrl;
}
- public void setReturnUrl(@Nullable String returnUrl) {
- mReturnUrl = returnUrl;
- }
-
@Nullable
@Status
public String getStatus() {
return mStatus;
}
- public void setStatus(@Nullable @Status String status) {
- mStatus = status;
- }
-
@Nullable
public String getUrl() {
return mUrl;
}
- public void setUrl(@Nullable String url) {
- mUrl = url;
- }
-
@NonNull
@Override
public Map toMap() {
diff --git a/stripe/src/main/java/com/stripe/android/model/SourceSepaDebitData.java b/stripe/src/main/java/com/stripe/android/model/SourceSepaDebitData.java
index c42a4fb9358..554c7afe2bc 100644
--- a/stripe/src/main/java/com/stripe/android/model/SourceSepaDebitData.java
+++ b/stripe/src/main/java/com/stripe/android/model/SourceSepaDebitData.java
@@ -23,7 +23,7 @@
/**
* Model for the SourceTypeData contained in a SEPA Debit Source object.
*/
-public class SourceSepaDebitData extends StripeSourceTypeModel {
+public final class SourceSepaDebitData extends StripeSourceTypeModel {
private static final String FIELD_BANK_CODE = "bank_code";
private static final String FIELD_BRANCH_CODE = "branch_code";
diff --git a/stripe/src/main/java/com/stripe/android/model/StripePaymentSource.java b/stripe/src/main/java/com/stripe/android/model/StripePaymentSource.java
index 07b88044a7f..619112c4f23 100644
--- a/stripe/src/main/java/com/stripe/android/model/StripePaymentSource.java
+++ b/stripe/src/main/java/com/stripe/android/model/StripePaymentSource.java
@@ -6,6 +6,5 @@
* Represents an object that has an ID field that can be used to create payments with Stripe.
*/
public interface StripePaymentSource {
- @Nullable
- String getId();
+ @Nullable String getId();
}
diff --git a/stripe/src/main/java/com/stripe/android/model/Token.java b/stripe/src/main/java/com/stripe/android/model/Token.java
index 2e91da09f66..1b53df224d4 100644
--- a/stripe/src/main/java/com/stripe/android/model/Token.java
+++ b/stripe/src/main/java/com/stripe/android/model/Token.java
@@ -19,7 +19,7 @@
* account details or personally identifiable information (PII), directly from your customers in a
* secure manner. A Token representing this information is returned to you to use.
*/
-public class Token implements StripePaymentSource {
+public final class Token implements StripePaymentSource {
@Retention(RetentionPolicy.SOURCE)
@StringDef({TYPE_CARD, TYPE_BANK_ACCOUNT, TYPE_PII, TYPE_ACCOUNT, TYPE_CVC_UPDATE})
diff --git a/stripe/src/main/java/com/stripe/android/model/wallets/WalletFactory.java b/stripe/src/main/java/com/stripe/android/model/wallets/WalletFactory.java
index 5e68e6bf41b..86ef330ecc5 100644
--- a/stripe/src/main/java/com/stripe/android/model/wallets/WalletFactory.java
+++ b/stripe/src/main/java/com/stripe/android/model/wallets/WalletFactory.java
@@ -8,7 +8,7 @@
import static com.stripe.android.model.StripeJsonUtils.optString;
import static com.stripe.android.model.wallets.Wallet.FIELD_DYNAMIC_LAST4;
-public class WalletFactory {
+public final class WalletFactory {
@Nullable
public Wallet create(@Nullable JSONObject walletJson) {
diff --git a/stripe/src/test/java/com/stripe/android/PaymentSessionDataTest.java b/stripe/src/test/java/com/stripe/android/PaymentSessionDataTest.java
index 67e899c7eb4..25270e24e19 100644
--- a/stripe/src/test/java/com/stripe/android/PaymentSessionDataTest.java
+++ b/stripe/src/test/java/com/stripe/android/PaymentSessionDataTest.java
@@ -57,7 +57,7 @@ public void updateIsPaymentReadyToCharge_shippingRequired() {
assertFalse(data.updateIsPaymentReadyToCharge(config));
assertFalse(data.isPaymentReadyToCharge());
- data.setShippingMethod(Mockito.mock(ShippingMethod.class));
+ data.setShippingMethod(new ShippingMethod("label", "id", 0, "USD"));
assertTrue(data.updateIsPaymentReadyToCharge(config));
assertTrue(data.isPaymentReadyToCharge());
}