package org.marketcetera.event;
import java.util.Map;
import org.marketcetera.util.misc.ClassVersion;
import com.google.common.collect.Maps;
/* $License$ */
/**
* Indicates the market status.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: MarketStatus.java 16901 2014-05-11 16:14:11Z colin $
* @since 2.4.0
*/
@ClassVersion("$Id: MarketStatus.java 16901 2014-05-11 16:14:11Z colin $")
public enum MarketStatus
{
OPEN_REGULAR(1),
OPEN_AUCTION(65),
OPEN_FAST(81),
OPEN_SLOW(97),
CLOSED_REGULAR(2),
CLOSED_PRE_MARKET(66),
CLOSED_POST_MARKET(82),
CLOSED_AUCTION(98),
CLOSED_IMBALANCE(114),
CLOSED_ROTATION(130),
HALTED_REGULAR(3),
HALTED_QUOTING_ALLOWED(67),
HALTED_REGULATORY(83),
HALTED_QUOTING_ALLOWED_REGULATORY(99),
ACTIVE_REGULAR(4),
ACTIVE_CLOSING_ORDERS_ONLY(68),
INACTIVE_REGULAR(5),
INACTIVE_SUSPENDED(69),
INACTIVE_DELISTED(85),
INACTIVE_EXPIRED(101),
AUCTION_REGULAR(6),
AUCTION_OPENING(70),
AUCTION_CALL_OPENING(86),
AUCTION_CLOSING(102),
AUCTION_CALL_CLOSING(118),
AUCTION_INTRADAY(134),
AUCTION_VOLATILITY(150),
AUCTION_CALL_INTRADAY(166),
AUCTION_CALL_VOLATILITY(182),
AUCTION(6),
INVALID(0),
HALTED(3),
INACTIVE(5),
CLOSED(2),
ACTIVE(4),
OPEN(1);
/**
* Get the code value.
*
* @return an <code>int</code> value
*/
public int getCode()
{
return code;
}
/**
* Gets the <code>MarketStatus</code> for the given code.
*
* @param inCode an <code>int</code> value
* @return an <code>MarketStatus</code> value
* @throws IllegalArgumentException if the code does not correspond to an <code>MarketStatus</code>
*/
public static MarketStatus getFor(int inCode)
{
MarketStatus type = typesByCode.get(inCode);
if(type == null) {
throw new IllegalArgumentException();
}
return type;
}
/**
* Create a new MarketStatus instance.
*
* @param inCode an <code>int</code> value
*/
private MarketStatus(int inCode)
{
code = inCode;
}
/**
* code value
*/
private final int code;
/**
* all types by their code value
*/
private static final Map<Integer,MarketStatus> typesByCode = Maps.newHashMap();
/**
* performs static initialization
*/
static {
for(MarketStatus type : MarketStatus.values()) {
typesByCode.put(type.getCode(),
type);
}
}
}