BankAccount.java
package com.tradecloud.domain;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.party.Bank;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.springframework.stereotype.Component;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@SuppressWarnings("serial")
@Entity
@Component(value = "bankaccount")
@Table(name = "bankaccount")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class BankAccount extends PersistenceBase implements Comparable<BankAccount> {
@ManyToOne
@NotNull(message = "account bank is required")
private Bank bank;
@NotNull(message = "account Number is required")
private String number;
private String description;
@ManyToOne
private Currency currency;
private String swiftCode;
private String branchCode;
private boolean verified;
private String accountHolderName;
public BankAccount() {
}
public BankAccount(Bank bank) {
this.bank = bank;
}
public BankAccount(Bank bank, String number, String description, boolean displayable, Currency currency) {
this.bank = bank;
this.number = number;
this.description = description;
this.currency = currency;
}
public Bank getBank() {
return bank;
}
public void setBank(Bank bank) {
this.bank = bank;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Currency getCurrency() {
return currency;
}
public void setCurrency(Currency currency) {
this.currency = currency;
}
public String getSwiftCode() {
return swiftCode;
}
public void setSwiftCode(String swiftCode) {
this.swiftCode = swiftCode;
}
public String getBranchCode() {
return branchCode;
}
public void setBranchCode(String branchCode) {
this.branchCode = branchCode;
}
public boolean isVerified() {
return verified;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public String getVerified() {
if (isVerified()) {
return "Verified";
}
return "Unverified";
}
@Override
public int compareTo(BankAccount otherBank) {
return bank.getName().compareTo(otherBank.getBank().getName());
}
@Override
public int hashCode() {
HashCodeBuilder builder = new HashCodeBuilder();
builder.append(bank);
builder.append(branchCode);
builder.append(currency);
builder.append(description);
builder.append(number);
builder.append(swiftCode);
return builder.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof BankAccount)) {
return false;
}
BankAccount other = (BankAccount) obj;
EqualsBuilder builder = new EqualsBuilder();
builder.append(bank, other.bank);
builder.append(branchCode, other.branchCode);
builder.append(currency, other.currency);
builder.append(description, other.description);
builder.append(number, other.number);
builder.append(swiftCode, other.swiftCode);
return builder.isEquals();
}
public String getAccountHolderName() {
return accountHolderName;
}
public void setAccountHolderName(String accountHolderName) {
this.accountHolderName = accountHolderName;
}
}