package com.activequant.domainmodel; import com.activequant.domainmodel.annotations.Property; /** * key for this is an instrument ID. This table is populated from connectivity * drivers. * * @author GhostRider * */ public class MarketDataInstrument extends PersistentEntity { private String instrumentId, mdProvider, providerSpecificId; private double lastHistFetchTime = 0.0; private double scalingFactor = 1.0; /** * must be 1 or more ... */ private int subscriptionDepth = 1; /** * should be 0 or 1. but de facto most connectors just check for "not 0". */ private int subscribed = 0; public MarketDataInstrument(String className) { super(className); } public MarketDataInstrument() { super(MarketDataInstrument.class.getCanonicalName()); } public MarketDataInstrument(String prov, String spec) { super(MarketDataInstrument.class.getCanonicalName()); this.mdProvider = prov; this.providerSpecificId = spec; } public String getId() { return nullSafe(mdProvider) + "." + nullSafe(providerSpecificId); } @Override public String toString() { return nullSafe(mdProvider) + "/" + nullSafe(providerSpecificId) + "/" + nullSafe(instrumentId) + "/" + lastHistFetchTime + "/" + getSnapshotTime(); } @Property public String getInstrumentId() { return instrumentId; } @Property public double getLastHistFetchTime() { return lastHistFetchTime; } @Property public String getMdProvider() { return mdProvider; } @Property public String getProviderSpecificId() { return providerSpecificId; } public void setInstrumentId(String instrumentId) { this.instrumentId = instrumentId; } public void setLastHistFetchTime(double lastFetchTime) { this.lastHistFetchTime = lastFetchTime; } public void setMdProvider(String s) { mdProvider = s; } public void setProviderSpecificId(String providerSpecificId) { this.providerSpecificId = providerSpecificId; } @Property public double getScalingFactor() { return scalingFactor; } public void setScalingFactor(double scalingFactor) { this.scalingFactor = scalingFactor; } @Property public int getSubscriptionDepth() { return subscriptionDepth; } public void setSubscriptionDepth(int subscriptionDepth) { this.subscriptionDepth = subscriptionDepth; } @Property public int getSubscribed() { return subscribed; } public void setSubscribed(int subscribed) { this.subscribed = subscribed; } }