public MessageControl onField(final int tag, final AsciiBuffer buffer, final int offset, final int length)
{
if (groupLevel == 0)
{
if (tag == MESSAGE_TYPE)
{
messageType = buffer.getMessageType(offset, length);
allFieldsForMessageType = allFields.values(messageType);
if (allFieldsForMessageType == null)
{
delegate.onError(UNKNOWN_MESSAGE_TYPE, messageType, UNKNOWN, stringField);
return MessageControl.STOP;
}
}
else if (!allFieldsForMessageType.contains(tag))
{
delegate.onError(UNKNOWN_FIELD, messageType, tag, stringField);
return MessageControl.STOP;
}
}
fieldsForMessage.add(tag);
return delegate.onField(tag, buffer, offset, length);
}