package project.data; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import kernel.util.StringUtils; import project.data.internal.DepthTimeObject; import project.data.internal.KlineTimeObject; import project.data.internal.TradeTimeObject; import project.data.internal.TrendTimeObject; import project.data.model.Kline; import project.data.model.Realtime; public class DataCache { /** * 分时 */ private volatile static Map trend = new ConcurrentHashMap(); /** * K线 */ private volatile static Map kline = new ConcurrentHashMap(); /** * 实时数据 */ private volatile static Map realtime = new ConcurrentHashMap(); /** * 实时历史数据 */ private volatile static Map> realtimeHistory = new ConcurrentHashMap>(); /** * 最高最低 */ private volatile static Map realtimeHigh = new ConcurrentHashMap(); private volatile static Map realtimeLow = new ConcurrentHashMap(); /** * 向前24小时时间点的开盘价 */ private volatile static Map realtime24HBeforeOpen = new ConcurrentHashMap(); /** * 市场深度数据 */ private volatile static Map depth = new ConcurrentHashMap(); /** * 近期交易记录 */ private volatile static Map trade = new ConcurrentHashMap(); private volatile static Map kline_hobi = new ConcurrentHashMap(); public static TrendTimeObject getTrend(String symbol) { return trend.get(symbol); } public static void putTrend(String symbol, TrendTimeObject model) { trend.put(symbol, model); } public static KlineTimeObject getKline(String symbol, String line) { String key = symbol; if (!StringUtils.isNullOrEmpty(line)) { key = key + "_" + line; } return kline.get(key); } public static void putKline(String symbol, String line, KlineTimeObject model) { String key = symbol; if (!StringUtils.isNullOrEmpty(line)) { key = key + "_" + line; } kline.put(key, model); } public static Realtime getRealtime(String symbol) { return realtime.get(symbol); } public static void putRealtime(String symbol, Realtime model) { realtime.put(symbol, model); } public static Map> getRealtimeHistory() { return realtimeHistory; } public static void setRealtimeHistory(Map> realtimeHistory) { DataCache.realtimeHistory = realtimeHistory; } public static Map getRealtimeHigh() { return realtimeHigh; } public static Map getRealtimeLow() { return realtimeLow; } public static Map getDepth() { return depth; } public static Map getTrade() { return trade; } public static Map getKline_hobi() { return kline_hobi; } public static Map getRealtime24HBeforeOpen() { return realtime24HBeforeOpen; } }