package org.marketcetera.photon.views.fixmessagedetail.dialogs.executionreport.data; import java.util.ArrayList; import java.util.List; import org.marketcetera.client.ClientInitException; import org.marketcetera.client.ClientManager; import org.marketcetera.client.ConnectionException; import org.marketcetera.client.brokers.BrokerStatus; import org.marketcetera.client.brokers.BrokersStatus; import org.marketcetera.photon.Messages; import org.marketcetera.trade.ExecutionReport; import quickfix.Message; /** * Broker ID execution report field * * @author milan * */ public class BrokerIDField extends ExecutionReportNoneFixField { public static final String BROKER_ID_FIELD_NAME = Messages.EXECUTION_REPORT_FIELD_BROKER_ID.getText(); @Override public String getFieldName() { return BROKER_ID_FIELD_NAME; } @Override public String[] getValues() { ArrayList<String> brokerIDs = new ArrayList<String>(); BrokersStatus bs; try { bs = ClientManager.getInstance().getBrokersStatus(); List<BrokerStatus> brokers = bs.getBrokers(); for (BrokerStatus broker : brokers) { brokerIDs.add(broker.getId().getValue()); } } catch (ConnectionException e) { } catch (ClientInitException e) { } return brokerIDs.toArray(new String[brokerIDs.size()]); } @Override public void insertField(Message message) { // do nothing for a non-fix field } @Override public void parseFromReport(ExecutionReport executionReport) { fValue = (executionReport.getBrokerID() == null) ? EMPTY_STRING : executionReport.getBrokerID().getValue(); } @Override public int getFieldTag() { return 10001; } }