public void setString(int field, String value) { setField(new StringField(field, value)); }
public String getValue() { return getObject(); }
public static void insertFieldIfMissing(int fieldNumber, String value, FieldMap fieldMap) throws CoreException { if (fieldMap.isSetField(fieldNumber)){ StringField testField = new StringField(fieldNumber); try { fieldMap.getField(testField); if(testField.getValue().equals(value)){ return; } } catch (FieldNotFound ignored) { //Unexpected as isSetField() returned true //Don't do anything so that we set the field before we return. } } fieldMap.setField(new StringField(fieldNumber, value)); }
private static String value(StringField f) { return f != null ? f.getValue() : NOT_SET; }
private void parseGroup(String msgType, StringField field, DataDictionary dd, DataDictionary parentDD, FieldMap parent, boolean doValidation) throws InvalidMessage { final DataDictionary.GroupInfo rg = dd.getGroup(msgType, field.getField()); final DataDictionary groupDataDictionary = rg.getDataDictionary(); final int[] fieldOrder = groupDataDictionary.getOrderedFields(); int previousOffset = -1; final int groupCountTag = field.getField(); declaredGroupCount = Integer.parseInt(field.getValue()); } catch (final NumberFormatException e) { throw MessageUtils.newInvalidMessageException("Repeating group count requires an Integer but found '" + field.getValue() + "' in " + messageData, this); int tag = field.getTag(); if (tag == firstField) { addGroupRefToParent(group, parent);
private void checkValidFormat(StringField field) throws IncorrectDataFormat { FieldType fieldType = getFieldType(field.getTag()); if (fieldType == null) { return; if (!checkFieldsHaveValues && field.getValue().length() == 0) { return; case SEQNUM: case LENGTH: IntConverter.convert(field.getValue()); break; case PRICE: case PRICEOFFSET: case PERCENTAGE: DoubleConverter.convert(field.getValue()); break; case BOOLEAN: BooleanConverter.convert(field.getValue()); break; case UTCDATE: UtcDateOnlyConverter.convert(field.getValue()); break; case UTCTIMEONLY: UtcTimeOnlyConverter.convert(field.getValue()); break; case UTCTIMESTAMP: case TIME: UtcTimestampConverter.convert(field.getValue());
protected void setGroupCount(int countTag, int groupSize) { try { StringField count; if (groupSize == 1) { count = new StringField(countTag, "1"); setField(countTag, count); } else { count = getField(countTag); } count.setValue(Integer.toString(groupSize)); } catch (final FieldNotFound e) { // Shouldn't happen throw new RuntimeError(e); } }
private boolean checkFieldValidation(FieldMap parent, DataDictionary parentDD, StringField field, String msgType, boolean doValidation, Group group) throws FieldException { boolean isField = (parent instanceof Group) ? parentDD.isField(field.getTag()) : parentDD.isMsgField(msgType, field.getTag()); if (!isField) { if (doValidation) { boolean fail = parentDD.checkFieldFailure(field.getTag(), false); if (fail) { throw new FieldException(SessionRejectReason.TAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE, field.getTag()); } } group.setField(field); return true; } return false; }
private void parseBody(DataDictionary dd, boolean doValidation) throws InvalidMessage { StringField field = extractField(dd, this); while (field != null) { if (isTrailerField(field.getField())) { pushBack(field); return; } if (isHeaderField(field.getField())) { // An acceptance test requires the sequence number to // be available even if the related field is out of order setField(header, field); // Group case if (dd != null && dd.isGroup(DataDictionary.HEADER_ID, field.getField())) { parseGroup(DataDictionary.HEADER_ID, field, dd, dd, header, doValidation); } if (doValidation && dd != null && dd.isCheckFieldsOutOfOrder()) throw new FieldException(SessionRejectReason.TAG_SPECIFIED_OUT_OF_REQUIRED_ORDER, field.getTag()); } else { setField(this, field); // Group case if (dd != null && dd.isGroup(getMsgType(), field.getField())) { parseGroup(getMsgType(), field, dd, dd, this, doValidation); } } field = extractField(dd, this); } }
public StringField getField(StringField field) throws FieldNotFound { return updateValue(field, getString(field.getField())); }
public void setValue(String value) { setObject(value); }
private static String value(StringField f) { return f != null ? f.getValue() : NOT_SET; }
private void parseGroup(String msgType, StringField field, DataDictionary dd, DataDictionary parentDD, FieldMap parent, boolean doValidation) throws InvalidMessage { final DataDictionary.GroupInfo rg = dd.getGroup(msgType, field.getField()); final DataDictionary groupDataDictionary = rg.getDataDictionary(); final int[] fieldOrder = groupDataDictionary.getOrderedFields(); int previousOffset = -1; final int groupCountTag = field.getField(); declaredGroupCount = Integer.parseInt(field.getValue()); } catch (final NumberFormatException e) { throw MessageUtils.newInvalidMessageException("Repeating group count requires an Integer but found '" + field.getValue() + "' in " + messageData, this); int tag = field.getTag(); if (tag == firstField) { addGroupRefToParent(group, parent);
private void checkValidFormat(StringField field) throws IncorrectDataFormat { FieldType fieldType = getFieldType(field.getTag()); if (fieldType == null) { return; if (!checkFieldsHaveValues && field.getValue().length() == 0) { return; case SEQNUM: case LENGTH: IntConverter.convert(field.getValue()); break; case PRICE: case PRICEOFFSET: case PERCENTAGE: DoubleConverter.convert(field.getValue()); break; case BOOLEAN: BooleanConverter.convert(field.getValue()); break; case UTCDATE: UtcDateOnlyConverter.convert(field.getValue()); break; case UTCTIMEONLY: UtcTimeOnlyConverter.convert(field.getValue()); break; case UTCTIMESTAMP: case TIME: UtcTimestampConverter.convert(field.getValue());
StringBuffer sb = new StringBuffer(); try { sb.append("Sending admin level FIX message to ").append(message.getHeader().getField(new TargetCompID()).getValue()); sb.append("\nMessage Type: ").append(message.getHeader().getField(new MsgType()).getValue()); sb.append("\nMessage Sequence Number: ").append(message.getHeader().getField(new MsgSeqNum()).getValue()); sb.append("\nSender ID: ").append(message.getHeader().getField(new SenderCompID()).getValue()); } catch (FieldNotFound e) { sb.append("Sending admin level FIX message..."); if (message.getHeader().getField(new StringField(FIXConstants.FIX_MESSAGE_TYPE)).getValue().equals(FIXConstants.LOGON)) {
protected void setGroupCount(int countTag, int groupSize) { try { StringField count; if (groupSize == 1) { count = new StringField(countTag, "1"); setField(countTag, count); } else { count = getField(countTag); } count.setValue(Integer.toString(groupSize)); } catch (final FieldNotFound e) { // Shouldn't happen throw new RuntimeError(e); } }
private boolean checkFieldValidation(FieldMap parent, DataDictionary parentDD, StringField field, String msgType, boolean doValidation, Group group) throws FieldException { boolean isField = (parent instanceof Group) ? parentDD.isField(field.getTag()) : parentDD.isMsgField(msgType, field.getTag()); if (!isField) { if (doValidation) { boolean fail = parentDD.checkFieldFailure(field.getTag(), false); if (fail) { throw new FieldException(SessionRejectReason.TAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE, field.getTag()); } } group.setField(field); return true; } return false; }
private void parseBody(DataDictionary dd, boolean doValidation) throws InvalidMessage { StringField field = extractField(dd, this); while (field != null) { if (isTrailerField(field.getField())) { pushBack(field); return; } if (isHeaderField(field.getField())) { // An acceptance test requires the sequence number to // be available even if the related field is out of order setField(header, field); // Group case if (dd != null && dd.isGroup(DataDictionary.HEADER_ID, field.getField())) { parseGroup(DataDictionary.HEADER_ID, field, dd, dd, header, doValidation); } if (doValidation && dd != null && dd.isCheckFieldsOutOfOrder()) throw new FieldException(SessionRejectReason.TAG_SPECIFIED_OUT_OF_REQUIRED_ORDER, field.getTag()); } else { setField(this, field); // Group case if (dd != null && dd.isGroup(getMsgType(), field.getField())) { parseGroup(getMsgType(), field, dd, dd, this, doValidation); } } field = extractField(dd, this); } }
public StringField getField(StringField field) throws FieldNotFound { return updateValue(field, getString(field.getField())); }