package org.marketcetera.photon.views.fixmessagedetail.dialogs.executionreport.data; import java.util.ArrayList; import java.util.List; import org.marketcetera.photon.Messages; import org.marketcetera.trade.ExecutionReport; import org.marketcetera.trade.TimeInForce; import quickfix.FieldNotFound; import quickfix.Message; /** * Time in force execution report field * * @author milan * */ public class TimeInForceField extends ExecutionReportField { @Override public String getFieldName() { return Messages.EXECUTION_REPORT_FIELD_TIME_IN_FORCE.getText(); } @Override public String[] getValues() { List<String> timeInForceValues = new ArrayList<String>(); for(TimeInForce timeInForce: TimeInForce.values()) { timeInForceValues.add(timeInForce.name()); } return (String[]) timeInForceValues.toArray(new String[timeInForceValues.size()]); } @Override public void insertField(Message message) { if(fValue != null && fValue != EMPTY_STRING) { message.setField(new quickfix.field.TimeInForce(TimeInForce.valueOf(fValue).getFIXValue())); } } @Override public void parseFromReport(ExecutionReport executionReport) { Message message = getMessageFromExecutionReport(executionReport); if(message != null && message.isSetField(quickfix.field.TimeInForce.FIELD)) { quickfix.field.TimeInForce timeInForce = new quickfix.field.TimeInForce(); try { fValue = TimeInForce.getInstanceForFIXValue(message.getField(timeInForce).getValue()).name(); } catch (FieldNotFound e) { } } } @Override public int getFieldTag() { return quickfix.field.TimeInForce.FIELD; } }