package org.marketcetera.event.impl; import java.math.BigDecimal; import java.util.Date; import javax.annotation.concurrent.ThreadSafe; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.marketcetera.event.*; import org.marketcetera.event.beans.DividendBean; import org.marketcetera.event.beans.EventBean; import org.marketcetera.event.beans.HasEventBean; import org.marketcetera.event.util.EventServices; import org.marketcetera.trade.Equity; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Implementation of {@link DividendEvent}. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: DividendEventImpl.java 16877 2014-04-12 23:32:12Z colin $ * @since 2.0.0 */ @ThreadSafe @XmlRootElement(name="dividendEvent") @XmlAccessorType(XmlAccessType.NONE) @ClassVersion("$Id: DividendEventImpl.java 16877 2014-04-12 23:32:12Z colin $") public class DividendEventImpl implements DividendEvent, HasEventBean { /* (non-Javadoc) * @see org.marketcetera.event.beans.HasEventBean#getEventBean() */ @Override public EventBean getEventBean() { return dividend; } /* (non-Javadoc) * @see org.marketcetera.event.Event#getMessageId() */ @Override public long getMessageId() { return dividend.getMessageId(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getSource() */ @Override public Object getSource() { return dividend.getSource(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getEventType() */ @Override public EventType getEventType() { return dividend.getEventType(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#setEventType(org.marketcetera.event.EventType) */ @Override public void setEventType(EventType inEventType) { dividend.setEventType(inEventType); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getTimestamp() */ @Override public Date getTimestamp() { return dividend.getTimestamp(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setSource(java.lang.Object) */ @Override public void setSource(Object inSource) { dividend.setSource(inSource); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getProvider() */ @Override public String getProvider() { return dividend.getProvider(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setProvider(java.lang.String) */ @Override public void setProvider(String inProvider) { dividend.setProvider(inProvider); } /* (non-Javadoc) * @see org.marketcetera.event.TimestampCarrier#getTimeMillis() */ @Override public long getTimeMillis() { return dividend.getTimeMillis(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getAmount() */ @Override public BigDecimal getAmount() { return dividend.getAmount(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getCurrency() */ @Override public String getCurrency() { return dividend.getCurrency(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getDeclareDate() */ @Override public String getDeclareDate() { return dividend.getDeclareDate(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getEquity() */ @Override public Equity getEquity() { return dividend.getEquity(); } /* (non-Javadoc) * @see org.marketcetera.event.HasInstrument#getInstrument() */ @Override public Equity getInstrument() { return getEquity(); } /* (non-Javadoc) * @see org.marketcetera.event.HasInstrument#getInstrumentAsString() */ @Override public String getInstrumentAsString() { return dividend.getInstrumentAsString(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getExecutionDate() */ @Override public String getExecutionDate() { return dividend.getExecutionDate(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getFrequency() */ @Override public DividendFrequency getFrequency() { return dividend.getFrequency(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getPaymentDate() */ @Override public String getPaymentDate() { return dividend.getPaymentDate(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getRecordDate() */ @Override public String getRecordDate() { return dividend.getRecordDate(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getStatus() */ @Override public DividendStatus getStatus() { return dividend.getStatus(); } /* (non-Javadoc) * @see org.marketcetera.event.DividendEvent#getType() */ @Override public DividendType getType() { return dividend.getType(); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public final int hashCode() { return EventServices.eventHashCode(this); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public final boolean equals(Object obj) { return EventServices.eventEquals(this, obj); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return String.format("%s", //$NON-NLS-1$ dividend); } /** * Create a new DividendEventImpl instance. * * @param inDividend a <code>DividendBean</code> value * @throws IllegalArgumentException if <code>MessageId</code> < 0 * @throws IllegalArgumentException if <code>Timestamp</code> is <code>null</code> * @throws IllegalArgumentException if <code>Equity</code> is <code>null</code> * @throws IllegalArgumentException if <code>Amount</code> is <code>null</code> * @throws IllegalArgumentException if <code>Currency</code> is <code>null</code> or empty * @throws IllegalArgumentException if <code>ExecutionDate</code> is <code>null</code> or empty * @throws IllegalArgumentException if <code>Frequency</code> is <code>null</code> * @throws IllegalArgumentException if <code>Status</code> is <code>null</code> * @throws IllegalArgumentException if <code>Type</code> is <code>null</code> */ DividendEventImpl(DividendBean inDividend) { dividend = DividendBean.copy(inDividend); dividend.setDefaults(); dividend.validate(); } /** * Create a new DividendEventImpl instance. * * <p>This constructor is intended to be used by JAXB only. */ @SuppressWarnings("unused") private DividendEventImpl() { dividend = new DividendBean(); } /** * dividend attributes */ @XmlElement private final DividendBean dividend; private static final long serialVersionUID = 1L; }