/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF 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.apache.aries.samples.ariestrader.beans;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import org.apache.aries.samples.ariestrader.util.Log;
import org.apache.aries.samples.ariestrader.util.TradeConfig;
import org.apache.aries.samples.ariestrader.api.persistence.AccountDataBean;
import org.apache.aries.samples.ariestrader.api.persistence.HoldingDataBean;
import org.apache.aries.samples.ariestrader.api.persistence.QuoteDataBean;
public class HoldingDataBeanImpl implements HoldingDataBean, Serializable {
/* persistent/relationship fields */
private Integer holdingID; /* holdingID */
private double quantity; /* quantity */
private BigDecimal purchasePrice; /* purchasePrice */
private Date purchaseDate; /* purchaseDate */
private String quoteID; /* Holding(*) ---> Quote(1) */
private AccountDataBean account;
private QuoteDataBean quote;
public HoldingDataBeanImpl() {
}
public HoldingDataBeanImpl(Integer holdingID,
double quantity,
BigDecimal purchasePrice,
Date purchaseDate,
String quoteID) {
setHoldingID(holdingID);
setQuantity(quantity);
setPurchasePrice(purchasePrice);
setPurchaseDate(purchaseDate);
setQuoteID(quoteID);
}
public HoldingDataBeanImpl(double quantity,
BigDecimal purchasePrice,
Date purchaseDate,
AccountDataBean account,
QuoteDataBean quote) {
setQuantity(quantity);
setPurchasePrice(purchasePrice);
setPurchaseDate(purchaseDate);
setAccount(account);
setQuote(quote);
}
public static HoldingDataBean getRandomInstance() {
return new HoldingDataBeanImpl(
new Integer(TradeConfig.rndInt(100000)), //holdingID
TradeConfig.rndQuantity(), //quantity
TradeConfig.rndBigDecimal(1000.0f), //purchasePrice
new java.util.Date(TradeConfig.rndInt(Integer.MAX_VALUE)), //purchaseDate
TradeConfig.rndSymbol() // symbol
);
}
public String toString() {
return "\n\tHolding Data for holding: " + getHoldingID()
+ "\n\t\t quantity:" + getQuantity()
+ "\n\t\t purchasePrice:" + getPurchasePrice()
+ "\n\t\t purchaseDate:" + getPurchaseDate()
+ "\n\t\t quoteID:" + getQuoteID()
;
}
public String toHTML() {
return "<BR>Holding Data for holding: " + getHoldingID() + "</B>"
+ "<LI> quantity:" + getQuantity() + "</LI>"
+ "<LI> purchasePrice:" + getPurchasePrice() + "</LI>"
+ "<LI> purchaseDate:" + getPurchaseDate() + "</LI>"
+ "<LI> quoteID:" + getQuoteID() + "</LI>"
;
}
public void print() {
Log.log(this.toString());
}
public Integer getHoldingID() {
return holdingID;
}
public void setHoldingID(Integer holdingID) {
this.holdingID = holdingID;
}
public double getQuantity() {
return quantity;
}
public void setQuantity(double quantity) {
this.quantity = quantity;
}
public BigDecimal getPurchasePrice() {
return purchasePrice;
}
public void setPurchasePrice(BigDecimal purchasePrice) {
this.purchasePrice = purchasePrice;
}
public Date getPurchaseDate() {
return purchaseDate;
}
public void setPurchaseDate(Date purchaseDate) {
this.purchaseDate = purchaseDate;
}
public String getQuoteID() {
if (quote != null) {
return quote.getSymbol();
}
return quoteID;
}
public void setQuoteID(String quoteID) {
this.quoteID = quoteID;
}
public AccountDataBean getAccount() {
return account;
}
public void setAccount(AccountDataBean account) {
this.account = account;
}
public QuoteDataBean getQuote() {
return quote;
}
public void setQuote(QuoteDataBean quote) {
this.quote = quote;
}
@Override
public int hashCode() {
int hash = 0;
hash += (this.holdingID != null ? this.holdingID.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof HoldingDataBeanImpl)) {
return false;
}
HoldingDataBeanImpl other = (HoldingDataBeanImpl) object;
if (this.holdingID != other.holdingID && (this.holdingID == null || !this.holdingID.equals(other.holdingID))) return false;
return true;
}
}