Skip to content

Commit

Permalink
jaxrs: add support for HPP combo call
Browse files Browse the repository at this point in the history
Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
  • Loading branch information
pierre committed Aug 11, 2015
1 parent ccc1ea4 commit 511e8ba
Show file tree
Hide file tree
Showing 14 changed files with 594 additions and 174 deletions.
@@ -0,0 +1,76 @@
/*
* Copyright 2015 Groupon, Inc
* Copyright 2015 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

package org.killbill.billing.jaxrs.json;

import java.util.List;

import javax.annotation.Nullable;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

public class ComboHostedPaymentPageJson extends ComboPaymentJson {

private final HostedPaymentPageFieldsJson hostedPaymentPageFields;

@JsonCreator
public ComboHostedPaymentPageJson(@JsonProperty("account") final AccountJson account,
@JsonProperty("paymentMethod") final PaymentMethodJson paymentMethod,
@JsonProperty("hostedPaymentPageFields") final HostedPaymentPageFieldsJson hostedPaymentPageFields,
@JsonProperty("paymentMethodPluginProperties") final Iterable<PluginPropertyJson> paymentMethodPluginProperties,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(account, paymentMethod, paymentMethodPluginProperties, auditLogs);
this.hostedPaymentPageFields = hostedPaymentPageFields;
}

public HostedPaymentPageFieldsJson getHostedPaymentPageFieldsJson() {
return hostedPaymentPageFields;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("ComboHostedPaymentPageJson{");
sb.append("hostedPaymentPageFields=").append(hostedPaymentPageFields);
sb.append('}');
return sb.toString();
}

@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}

final ComboHostedPaymentPageJson that = (ComboHostedPaymentPageJson) o;

return !(hostedPaymentPageFields != null ? !hostedPaymentPageFields.equals(that.hostedPaymentPageFields) : that.hostedPaymentPageFields != null);
}

@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (hostedPaymentPageFields != null ? hostedPaymentPageFields.hashCode() : 0);
return result;
}
}
@@ -0,0 +1,93 @@
/*
* Copyright 2015 Groupon, Inc
* Copyright 2015 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

package org.killbill.billing.jaxrs.json;

import java.util.List;

import javax.annotation.Nullable;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

public abstract class ComboPaymentJson extends JsonBase {

private final AccountJson account;
private final PaymentMethodJson paymentMethod;
private final Iterable<PluginPropertyJson> paymentMethodPluginProperties;

@JsonCreator
public ComboPaymentJson(@JsonProperty("account") final AccountJson account,
@JsonProperty("paymentMethod") final PaymentMethodJson paymentMethod,
@JsonProperty("paymentMethodPluginProperties") final Iterable<PluginPropertyJson> paymentMethodPluginProperties,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.account = account;
this.paymentMethod = paymentMethod;
this.paymentMethodPluginProperties = paymentMethodPluginProperties;
}

public AccountJson getAccount() {
return account;
}

public PaymentMethodJson getPaymentMethod() {
return paymentMethod;
}

public Iterable<PluginPropertyJson> getPaymentMethodPluginProperties() {
return paymentMethodPluginProperties;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("ComboPaymentJson{");
sb.append("account=").append(account);
sb.append(", paymentMethod=").append(paymentMethod);
sb.append(", paymentMethodPluginProperties=").append(paymentMethodPluginProperties);
sb.append('}');
return sb.toString();
}

@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}

final ComboPaymentJson that = (ComboPaymentJson) o;

if (account != null ? !account.equals(that.account) : that.account != null) {
return false;
}
if (paymentMethod != null ? !paymentMethod.equals(that.paymentMethod) : that.paymentMethod != null) {
return false;
}
return !(paymentMethodPluginProperties != null ? !paymentMethodPluginProperties.equals(that.paymentMethodPluginProperties) : that.paymentMethodPluginProperties != null);
}

@Override
public int hashCode() {
int result = account != null ? account.hashCode() : 0;
result = 31 * result + (paymentMethod != null ? paymentMethod.hashCode() : 0);
result = 31 * result + (paymentMethodPluginProperties != null ? paymentMethodPluginProperties.hashCode() : 0);
return result;
}
}
@@ -1,6 +1,6 @@
/* /*
* Copyright 2014-2015 Groupon, Inc * Copyright 2015 Groupon, Inc
* Copyright 2014-2015 The Billing Project, LLC * Copyright 2015 The Billing Project, LLC
* *
* The Billing Project licenses this file to you under the Apache License, version 2.0 * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the * (the "License"); you may not use this file except in compliance with the
Expand All @@ -24,12 +24,9 @@
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;


public class ComboPaymentTransactionJson extends JsonBase { public class ComboPaymentTransactionJson extends ComboPaymentJson {


private final AccountJson account;
private final PaymentMethodJson paymentMethod;
private final PaymentTransactionJson transaction; private final PaymentTransactionJson transaction;
private final Iterable<PluginPropertyJson> paymentMethodPluginProperties;
private final Iterable<PluginPropertyJson> transactionPluginProperties; private final Iterable<PluginPropertyJson> transactionPluginProperties;


@JsonCreator @JsonCreator
Expand All @@ -39,79 +36,52 @@ public ComboPaymentTransactionJson(@JsonProperty("account") final AccountJson ac
@JsonProperty("paymentMethodPluginProperties") final Iterable<PluginPropertyJson> paymentMethodPluginProperties, @JsonProperty("paymentMethodPluginProperties") final Iterable<PluginPropertyJson> paymentMethodPluginProperties,
@JsonProperty("transactionPluginProperties") final Iterable<PluginPropertyJson> transactionPluginProperties, @JsonProperty("transactionPluginProperties") final Iterable<PluginPropertyJson> transactionPluginProperties,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) { @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs); super(account, paymentMethod, paymentMethodPluginProperties, auditLogs);
this.account = account;
this.paymentMethod = paymentMethod;
this.transaction = transaction; this.transaction = transaction;
this.paymentMethodPluginProperties = paymentMethodPluginProperties;
this.transactionPluginProperties = transactionPluginProperties; this.transactionPluginProperties = transactionPluginProperties;
} }



public AccountJson getAccount() {
return account;
}

public PaymentMethodJson getPaymentMethod() {
return paymentMethod;
}

public PaymentTransactionJson getTransaction() { public PaymentTransactionJson getTransaction() {
return transaction; return transaction;
} }


public Iterable<PluginPropertyJson> getPaymentMethodPluginProperties() {
return paymentMethodPluginProperties;
}

public Iterable<PluginPropertyJson> getTransactionPluginProperties() { public Iterable<PluginPropertyJson> getTransactionPluginProperties() {
return transactionPluginProperties; return transactionPluginProperties;
} }


@Override @Override
public String toString() { public String toString() {
return "ComboPaymentTransactionJson{" + final StringBuilder sb = new StringBuilder("ComboPaymentTransactionJson{");
"account=" + account + sb.append("transaction=").append(transaction);
", paymentMethod=" + paymentMethod + sb.append(", transactionPluginProperties=").append(transactionPluginProperties);
", transaction=" + transaction + sb.append('}');
", paymentMethodPluginProperties=" + paymentMethodPluginProperties + return sb.toString();
", transactionPluginProperties=" + transactionPluginProperties +
'}';
} }


@Override @Override
public boolean equals(final Object o) { public boolean equals(final Object o) {
if (this == o) { if (this == o) {
return true; return true;
} }
if (!(o instanceof ComboPaymentTransactionJson)) { if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false; return false;
} }


final ComboPaymentTransactionJson that = (ComboPaymentTransactionJson) o; final ComboPaymentTransactionJson that = (ComboPaymentTransactionJson) o;


if (account != null ? !account.equals(that.account) : that.account != null) {
return false;
}
if (paymentMethod != null ? !paymentMethod.equals(that.paymentMethod) : that.paymentMethod != null) {
return false;
}
if (transaction != null ? !transaction.equals(that.transaction) : that.transaction != null) { if (transaction != null ? !transaction.equals(that.transaction) : that.transaction != null) {
return false; return false;
} }
if (paymentMethodPluginProperties != null ? !paymentMethodPluginProperties.equals(that.paymentMethodPluginProperties) : that.paymentMethodPluginProperties != null) {
return false;
}
return !(transactionPluginProperties != null ? !transactionPluginProperties.equals(that.transactionPluginProperties) : that.transactionPluginProperties != null); return !(transactionPluginProperties != null ? !transactionPluginProperties.equals(that.transactionPluginProperties) : that.transactionPluginProperties != null);

} }


@Override @Override
public int hashCode() { public int hashCode() {
int result = account != null ? account.hashCode() : 0; int result = super.hashCode();
result = 31 * result + (paymentMethod != null ? paymentMethod.hashCode() : 0);
result = 31 * result + (transaction != null ? transaction.hashCode() : 0); result = 31 * result + (transaction != null ? transaction.hashCode() : 0);
result = 31 * result + (paymentMethodPluginProperties != null ? paymentMethodPluginProperties.hashCode() : 0);
result = 31 * result + (transactionPluginProperties != null ? transactionPluginProperties.hashCode() : 0); result = 31 * result + (transactionPluginProperties != null ? transactionPluginProperties.hashCode() : 0);
return result; return result;
} }
Expand Down

1 comment on commit 511e8ba

@sbrossie
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.