package org.marketcetera.trade; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Identifies an equity. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: Equity.java 16854 2014-03-12 01:54:42Z colin $ * @since 2.0.0 */ @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) @ClassVersion("$Id: Equity.java 16854 2014-03-12 01:54:42Z colin $") public class Equity extends Instrument { /** * Create a new Equity instance. * * @param inSymbol a <code>String</code> value * @throws IllegalArgumentException if symbol is null or empty */ public Equity(String inSymbol) { inSymbol = StringUtils.trimToNull(inSymbol); Validate.notNull(inSymbol); symbol = inSymbol; } /* (non-Javadoc) * @see org.marketcetera.trade.Instrument#getSymbol() */ @Override public String getSymbol() { return symbol; } /* (non-Javadoc) * @see org.marketcetera.trade.Instrument#getSecurityType() */ @Override public SecurityType getSecurityType() { return SecurityType.CommonStock; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return new HashCodeBuilder().append(symbol).toHashCode(); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof Equity)) { return false; } Equity other = (Equity) obj; return new EqualsBuilder().append(symbol,other.symbol).isEquals(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("symbol", symbol).toString(); //$NON-NLS-1$ } /** * Create a new Equity instance. */ @SuppressWarnings("unused") private Equity() { symbol = null; } /** * symbol value */ private final String symbol; private static final long serialVersionUID = 1L; }