package org.marketcetera.event.beans; import java.io.Serializable; import java.math.BigDecimal; import javax.xml.bind.annotation.*; import org.marketcetera.event.ConvertibleBondEvent; import org.marketcetera.event.Messages; import org.marketcetera.event.util.EventServices; import org.marketcetera.trade.Equity; import org.marketcetera.trade.Instrument; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Contains the attributes of a convertible bond. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: ConvertibleBondBean.java 16901 2014-05-11 16:14:11Z colin $ * @since 2.4.0 */ @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name="convertibleBond") @ClassVersion("$Id: ConvertibleBondBean.java 16901 2014-05-11 16:14:11Z colin $") public class ConvertibleBondBean implements Serializable { /** * Creates a shallow copy of the given <code>ConvertibleBondBean</code>. * * @param inBean a <code>ConvertibleBondBean</code> value * @return a <code>ConvertibleBondBean</code> value */ public static ConvertibleBondBean copy(ConvertibleBondBean inBean) { ConvertibleBondBean newBean = new ConvertibleBondBean(); copyAttributes(inBean, newBean); return newBean; } /** * Builds a <code>ConvertibleBondBean</code> based on the values of * the given event. * * @param inConvertibleBondEvent a <code>ConvertibleBondEvent</code> value * @return a <code>ConvertibleBondBean</code> value */ public static ConvertibleBondBean getConvertibleBondBeanFromEvent(ConvertibleBondEvent inConvertibleBondEvent) { ConvertibleBondBean bean = new ConvertibleBondBean(); bean.setInstrument(inConvertibleBondEvent.getInstrument()); return bean; } /** * Get the instrument value. * * @return an <code>Instrument</code> value */ public Instrument getInstrument() { return instrument; } /** * Sets the instrument value. * * @param inInstrument an <code>Instrument</code> value */ public void setInstrument(Instrument inInstrument) { instrument = inInstrument; } /** * Get the parity value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getParity() { return parity; } /** * Sets the parity value. * * @param inParity a <code>BigDecimal</code> value */ public void setParity(BigDecimal inParity) { parity = inParity; } /** * Get the underlyingEquity value. * * @return an <code>Equity</code> value */ public Equity getUnderlyingEquity() { return underlyingEquity; } /** * Sets the underlyingEquity value. * * @param inUnderlyingEquity an <code>Equity</code> value */ public void setUnderlyingEquity(Equity inUnderlyingEquity) { underlyingEquity = inUnderlyingEquity; } /** * Get the maturity value. * * @return a <code>String</code> value */ public String getMaturity() { return maturity; } /** * Sets the maturity value. * * @param inMaturity a <code>String</code> value */ public void setMaturity(String inMaturity) { maturity = inMaturity; } /** * Get the yield value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getYield() { return yield; } /** * Sets the yield value. * * @param inYield a <code>BigDecimal</code> value */ public void setYield(BigDecimal inYield) { yield = inYield; } /** * Get the amountOutstanding value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getAmountOutstanding() { return amountOutstanding; } /** * Sets the amountOutstanding value. * * @param inAmountOutstanding a <code>BigDecimal</code> value */ public void setAmountOutstanding(BigDecimal inAmountOutstanding) { amountOutstanding = inAmountOutstanding; } /** * Get the valueDate value. * * @return a <code>String</code> value */ public String getValueDate() { return valueDate; } /** * Sets the valueDate value. * * @param inValueDate a <code>String</code> value */ public void setValueDate(String inValueDate) { valueDate = inValueDate; } /** * Get the traceReportTime value. * * @return a <code>String</code> value */ public String getTraceReportTime() { return traceReportTime; } /** * Sets the traceReportTime value. * * @param inTraceReportTime a <code>String</code> value */ public void setTraceReportTime(String inTraceReportTime) { traceReportTime = inTraceReportTime; } /** * Get the conversionPrice value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getConversionPrice() { return conversionPrice; } /** * Sets the conversionPrice value. * * @param inConversionPrice a <code>BigDecimal</code> value */ public void setConversionPrice(BigDecimal inConversionPrice) { conversionPrice = inConversionPrice; } /** * Get the conversionRatio value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getConversionRatio() { return conversionRatio; } /** * Sets the conversionRatio value. * * @param inConversionRatio a <code>BigDecimal</code> value */ public void setConversionRatio(BigDecimal inConversionRatio) { conversionRatio = inConversionRatio; } /** * Get the accruedInterest value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getAccruedInterest() { return accruedInterest; } /** * Sets the accruedInterest value. * * @param inAccruedInterest a <code>BigDecimal</code> value */ public void setAccruedInterest(BigDecimal inAccruedInterest) { accruedInterest = inAccruedInterest; } /** * Get the issuePrice value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getIssuePrice() { return issuePrice; } /** * Sets the issuePrice value. * * @param inIssuePrice a <code>BigDecimal</code> value */ public void setIssuePrice(BigDecimal inIssuePrice) { issuePrice = inIssuePrice; } /** * Get the conversionPremium value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getConversionPremium() { return conversionPremium; } /** * Sets the conversionPremium value. * * @param inConversionPremium a <code>BigDecimal</code> value */ public void setConversionPremium(BigDecimal inConversionPremium) { conversionPremium = inConversionPremium; } /** * Get the theoreticalDelta value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getTheoreticalDelta() { return theoreticalDelta; } /** * Sets the theoreticalDelta value. * * @param inTheoreticalDelta a <code>BigDecimal</code> value */ public void setTheoreticalDelta(BigDecimal inTheoreticalDelta) { theoreticalDelta = inTheoreticalDelta; } /** * Get the issueDate value. * * @return a <code>String</code> value */ public String getIssueDate() { return issueDate; } /** * Sets the issueDate value. * * @param inIssueDate a <code>String</code> value */ public void setIssueDate(String inIssueDate) { issueDate = inIssueDate; } /** * Get the issuerDomicile value. * * @return a <code>String</code> value */ public String getIssuerDomicile() { return issuerDomicile; } /** * Sets the issuerDomicile value. * * @param inIssuerDomicile a <code>String</code> value */ public void setIssuerDomicile(String inIssuerDomicile) { issuerDomicile = inIssuerDomicile; } /** * Get the currency value. * * @return a <code>String</code> value */ public String getCurrency() { return currency; } /** * Sets the currency value. * * @param inCurrency a <code>String</code> value */ public void setCurrency(String inCurrency) { currency = inCurrency; } /** * Get the bondCurrency value. * * @return a <code>String</code> value */ public String getBondCurrency() { return bondCurrency; } /** * Sets the bondCurrency value. * * @param inBondCurrency a <code>String</code> value */ public void setBondCurrency(String inBondCurrency) { bondCurrency = inBondCurrency; } /** * Get the couponRate value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getCouponRate() { return couponRate; } /** * Sets the couponRate value. * * @param inCouponRate a <code>BigDecimal</code> value */ public void setCouponRate(BigDecimal inCouponRate) { couponRate = inCouponRate; } /** * Get the paymentFrequency value. * * @return a <code>String</code> value */ public String getPaymentFrequency() { return paymentFrequency; } /** * Sets the paymentFrequency value. * * @param inPaymentFrequency a <code>String</code> value */ public void setPaymentFrequency(String inPaymentFrequency) { paymentFrequency = inPaymentFrequency; } /** * Get the exchangeCode value. * * @return a <code>String</code> value */ public String getExchangeCode() { return exchangeCode; } /** * Sets the exchangeCode value. * * @param inExchangeCode a <code>String</code> value */ public void setExchangeCode(String inExchangeCode) { exchangeCode = inExchangeCode; } /** * Get the companyName value. * * @return a <code>String</code> value */ public String getCompanyName() { return companyName; } /** * Sets the companyName value. * * @param inCompanyName a <code>String</code> value */ public void setCompanyName(String inCompanyName) { companyName = inCompanyName; } /** * Get the rating value. * * @return a <code>String</code> value */ public String getRating() { return rating; } /** * Sets the rating value. * * @param inRating a <code>String</code> value */ public void setRating(String inRating) { rating = inRating; } /** * Get the ratingID value. * * @return a <code>String</code> value */ public String getRatingID() { return ratingID; } /** * Sets the ratingID value. * * @param inRatingID a <code>String</code> value */ public void setRatingID(String inRatingID) { ratingID = inRatingID; } /** * Get the parValue value. * * @return a <code>BigDecimal</code> value */ public BigDecimal getParValue() { return parValue; } /** * Sets the parValue value. * * @param inParValue a <code>BigDecimal</code> value */ public void setParValue(BigDecimal inParValue) { parValue = inParValue; } /** * Performs validation of the attributes. * * @throws IllegalArgumentException if <code>Instrument</code> is <code>null</code> */ public void validate() { if(instrument == null) { EventServices.error(Messages.VALIDATION_NULL_INSTRUMENT); } } /** * Get the isin value. * * @return a <code>String</code> value */ public String getIsin() { return isin; } /** * Sets the isin value. * * @param inIsin a <code>String</code> value */ public void setIsin(String inIsin) { isin = inIsin; } /** * Get the cusip value. * * @return a <code>String</code> value */ public String getCusip() { return cusip; } /** * Sets the cusip value. * * @param inCusip a <code>String</code> value */ public void setCusip(String inCusip) { cusip = inCusip; } /** * Get the estimatedSizeInd value. * * @return a <code>String</code> value */ public String getEstimatedSizeInd() { return estimatedSizeInd; } /** * Sets the estimatedSizeInd value. * * @param inEstimatedSizeInd a <code>String</code> value */ public void setEstimatedSizeInd(String inEstimatedSizeInd) { estimatedSizeInd = inEstimatedSizeInd; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("ConvertibleBondBean [instrument="); builder.append(instrument); builder.append(", parity="); builder.append(parity); builder.append(", underlyingEquity="); builder.append(underlyingEquity); builder.append(", maturity="); builder.append(maturity); builder.append(", yield="); builder.append(yield); builder.append(", amountOutstanding="); builder.append(amountOutstanding); builder.append(", valueDate="); builder.append(valueDate); builder.append(", traceReportTime="); builder.append(traceReportTime); builder.append(", conversionPrice="); builder.append(conversionPrice); builder.append(", conversionRatio="); builder.append(conversionRatio); builder.append(", accruedInterest="); builder.append(accruedInterest); builder.append(", issuePrice="); builder.append(issuePrice); builder.append(", conversionPremium="); builder.append(conversionPremium); builder.append(", theoreticalDelta="); builder.append(theoreticalDelta); builder.append(", issueDate="); builder.append(issueDate); builder.append(", issuerDomicile="); builder.append(issuerDomicile); builder.append(", currency="); builder.append(currency); builder.append(", bondCurrency="); builder.append(bondCurrency); builder.append(", couponRate="); builder.append(couponRate); builder.append(", paymentFrequency="); builder.append(paymentFrequency); builder.append(", exchangeCode="); builder.append(exchangeCode); builder.append(", companyName="); builder.append(companyName); builder.append(", rating="); builder.append(rating); builder.append(", ratingID="); builder.append(ratingID); builder.append(", parValue="); builder.append(parValue); builder.append(", isin="); builder.append(isin); builder.append(", cusip="); builder.append(cusip); builder.append(", estimatedSizeInd="); builder.append(estimatedSizeInd); builder.append("]"); return builder.toString(); } /** * Copies all member attributes from the donor to the recipient. * * @param inDonor a <code>ConvertibleBondBean</code> value * @param inRecipient a <code>ConvertibleBondBean</code> value */ protected static void copyAttributes(ConvertibleBondBean inDonor, ConvertibleBondBean inRecipient) { inRecipient.setAccruedInterest(inDonor.getAccruedInterest()); inRecipient.setAmountOutstanding(inDonor.getAmountOutstanding()); inRecipient.setBondCurrency(inDonor.getBondCurrency()); inRecipient.setCompanyName(inDonor.getCompanyName()); inRecipient.setConversionPremium(inDonor.getConversionPremium()); inRecipient.setConversionPrice(inDonor.getConversionPrice()); inRecipient.setConversionRatio(inDonor.getConversionRatio()); inRecipient.setCouponRate(inDonor.getCouponRate()); inRecipient.setCurrency(inDonor.getCurrency()); inRecipient.setExchangeCode(inDonor.getExchangeCode()); inRecipient.setInstrument(inDonor.getInstrument()); inRecipient.setIssueDate(inDonor.getIssueDate()); inRecipient.setIssuePrice(inDonor.getIssuePrice()); inRecipient.setIssuerDomicile(inDonor.getIssuerDomicile()); inRecipient.setMaturity(inDonor.getMaturity()); inRecipient.setParity(inDonor.getParity()); inRecipient.setParValue(inDonor.getParValue()); inRecipient.setPaymentFrequency(inDonor.getPaymentFrequency()); inRecipient.setRating(inDonor.getRating()); inRecipient.setRatingID(inDonor.getRatingID()); inRecipient.setTheoreticalDelta(inDonor.getTheoreticalDelta()); inRecipient.setTraceReportTime(inDonor.getTraceReportTime()); inRecipient.setUnderlyingEquity(inDonor.getUnderlyingEquity()); inRecipient.setValueDate(inDonor.getValueDate()); inRecipient.setYield(inDonor.getYield()); inRecipient.setIsin(inDonor.getIsin()); inRecipient.setCusip(inDonor.getCusip()); inRecipient.setEstimatedSizeInd(inDonor.getEstimatedSizeInd()); } /** * the instrument value */ @XmlElement private Instrument instrument; /** * parity value */ @XmlAttribute private BigDecimal parity; /** * underlying equity value */ @XmlElement private Equity underlyingEquity; /** * maturity value */ @XmlAttribute private String maturity; /** * yield value */ @XmlAttribute private BigDecimal yield; /** * amount outstanding value */ @XmlAttribute private BigDecimal amountOutstanding; /** * value date value */ @XmlAttribute private String valueDate; /** * trace report time value */ @XmlAttribute private String traceReportTime; /** * conversion price value */ @XmlAttribute private BigDecimal conversionPrice; /** * conversion ratio value */ @XmlAttribute private BigDecimal conversionRatio; /** * accrued interest value */ @XmlAttribute private BigDecimal accruedInterest; /** * issue price value */ @XmlAttribute private BigDecimal issuePrice; /** * conversion premium value */ @XmlAttribute private BigDecimal conversionPremium; /** * theoretical delta value */ @XmlAttribute private BigDecimal theoreticalDelta; /** * issue date value */ @XmlAttribute private String issueDate; /** * issuer domicile value */ @XmlAttribute private String issuerDomicile; /** * currency value */ @XmlAttribute private String currency; /** * bond currency value */ @XmlAttribute private String bondCurrency; /** * coupon rate value */ @XmlAttribute private BigDecimal couponRate; /** * payment frequency value */ @XmlAttribute private String paymentFrequency; /** * exchange code value */ @XmlAttribute private String exchangeCode; /** * company name value */ @XmlAttribute private String companyName; /** * rating value */ @XmlAttribute private String rating; /** * rating ID value */ @XmlAttribute private String ratingID; /** * par value */ @XmlAttribute private BigDecimal parValue; /** * isin value */ @XmlAttribute private String isin; /** * cusip value */ @XmlAttribute private String cusip; /** * Estimated trade size Indicator */ @XmlAttribute private String estimatedSizeInd; private static final long serialVersionUID = -6504290148975073754L; }