package org.juxtapose.fxtradingclient.tools; import org.juxtapose.streamline.producer.ISTMEntryKey; import org.juxtapose.streamline.tools.STMUtil; import org.juxtapose.streamline.util.PersistentArrayList; import org.juxtapose.streamline.util.data.DataType; import org.juxtapose.streamline.util.data.DataTypeString; import com.trifork.clj_ds.IPersistentMap; public class ClientViewMethods { /** * @param inService * @param inType * @param inKeyList * @param inData * @return */ public static ISTMEntryKey createEntryKey( String inService, String inType, PersistentArrayList<DataType<?>> inKeyList, IPersistentMap<String, DataType<?>> inData) { String[] fields = new String[inKeyList.size()]; String[] vals = new String[inKeyList.size()]; for( int i = 0; i < inKeyList.size(); i++ ) { DataTypeString field = (DataTypeString)inKeyList.get( i ); DataType<?> val = inData.valAt( field.get() ); if( val == null ) return null; fields[i] = field.get(); vals[i] = val.get().toString(); } if( vals.length == 1 ) return STMUtil.createEntryKey( inService, inType, vals[0] ); else return STMUtil.createEntryKey( inService, inType, fields, vals ); } }