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;
}