package org.juxtapose.fxtradingsystem.config;
import org.juxtapose.fxtradingsystem.constants.FXDataConstants;
import org.juxtapose.streamline.producer.ISTMEntryKey;
import org.juxtapose.streamline.producer.STMEntryProducer;
import org.juxtapose.streamline.stm.DataTransaction;
import org.juxtapose.streamline.stm.ISTM;
import org.juxtapose.streamline.tools.DataConstants;
import org.juxtapose.streamline.util.PersistentArrayList;
import org.juxtapose.streamline.util.Status;
import org.juxtapose.streamline.util.data.DataType;
import org.juxtapose.streamline.util.data.DataTypeArrayList;
import org.juxtapose.streamline.util.data.DataTypeHashMap;
import org.juxtapose.streamline.util.data.DataTypeLong;
import org.juxtapose.streamline.util.data.DataTypeString;
import com.trifork.clj_ds.IPersistentMap;
import com.trifork.clj_ds.PersistentHashMap;
public class MetaDataProducer extends STMEntryProducer
{
public MetaDataProducer( ISTMEntryKey inKey, ISTM inSTM )
{
super( inKey, inSTM );
}
public ISTMEntryKey getKey()
{
return entryKey;
}
@Override
protected void start()
{
stm.commit( new DataTransaction( entryKey, MetaDataProducer.this, true )
{
@Override
public void execute()
{
PersistentArrayList<DataTypeString> dateCalcConv = new PersistentArrayList<DataTypeString>( new DataTypeString[]{ new DataTypeString("30_360"),
new DataTypeString("30_Accual"),
new DataTypeString("Acctual_Acctual") } );
putValue( "DC", new DataTypeArrayList( dateCalcConv ) );
//CCY
IPersistentMap<String, DataType<?>> ccyMap = PersistentHashMap.emptyMap();
ccyMap = ccyMap.assoc( "ISO", new DataTypeString("") );
ccyMap = ccyMap.assoc( "DC", new DataTypeString("DC") );
ccyMap = ccyMap.assoc( "NAME", new DataTypeString("") );
DataTypeString[] keys = new DataTypeString[]{ new DataTypeString( "ISO" ) };
PersistentArrayList<DataTypeString> keyList = new PersistentArrayList<DataTypeString>( keys );
ccyMap = ccyMap.assoc( DataConstants.FIELD_KEYS, new DataTypeArrayList( keyList ) );
putValue( "CCY", new DataTypeHashMap(ccyMap) );
//PRICE
IPersistentMap<String, DataType<?>> priceMap = PersistentHashMap.emptyMap();
priceMap = priceMap.assoc( FXDataConstants.FIELD_CCY1, new DataTypeString("CCY") );
priceMap = priceMap.assoc( FXDataConstants.FIELD_CCY2, new DataTypeString("CCY") );
priceMap = priceMap.assoc( FXDataConstants.FIELD_PIP, new DataTypeLong(0l) );
priceMap = priceMap.assoc( FXDataConstants.FIELD_DECIMALS, new DataTypeLong(0l) );
keys = new DataTypeString[]{ new DataTypeString( FXDataConstants.FIELD_CCY1 ), new DataTypeString( FXDataConstants.FIELD_CCY2 ) };
keyList = new PersistentArrayList<DataTypeString>( keys );
priceMap = priceMap.assoc( DataConstants.FIELD_KEYS, new DataTypeArrayList( keyList ) );
putValue( "PRC", new DataTypeHashMap(priceMap) );
setStatus( Status.OK );
}
});
}
}