private void copyField(Header header, int fromField, int toField) throws FieldNotFound { if (header.isSetField(fromField)) { final String value = header.getString(fromField); if (value.length() > 0) { this.header.setString(toField, value); } } }
private void copyField(Header header, int fromField, int toField) throws FieldNotFound { if (header.isSetField(fromField)) { final String value = header.getString(fromField); if (value.length() > 0) { this.header.setString(toField, value); } } }
private void copyField(Header header, int fromField, int toField) throws FieldNotFound { if (header.isSetField(fromField)) { final String value = header.getString(fromField); if (value.length() > 0) { this.header.setString(toField, value); } } }
/** * Get the <code>FIXVersion</code> of the given message. * * @param inMessage a <code>Message</code> value * @return a <code>FIXVersion</code> value * @throws FieldNotFound if the given message is malformed and the version cannot be identified * @throws IllegalArgumentException if the FIX version of the given message is unsupported */ public static FIXVersion getFIXVersion(Message inMessage) throws FieldNotFound { SessionID sessionId = MessageUtils.getSessionID(inMessage); if(sessionId.isFIXT()) { if(inMessage.getHeader().isSetField(quickfix.field.ApplVerID.FIELD)) { return doFixApplicationVersionLookup(inMessage.getHeader().getString(quickfix.field.ApplVerID.FIELD)); } // this is a FIXT message _and_ ApplVerID is _not_ set, we need to know something about the session Session session = Session.lookupSession(sessionId); if(session == null) { throw new UnsupportedOperationException(Messages.APPL_VERID_REQUIRED.getText()); } quickfix.field.ApplVerID defaultAppVerId = session.getTargetDefaultApplicationVersionID(); return getFIXVersion(defaultAppVerId); } else { return doFixVersionLookup(inMessage.getHeader().getString(quickfix.field.BeginString.FIELD)); } } /**
private boolean validatePossDup(Message msg) throws FieldNotFound, IOException { final Message.Header header = msg.getHeader(); final String msgType = header.getString(MsgType.FIELD); if (!msgType.equals(MsgType.SEQUENCE_RESET)) { if (header.isSetField(OrigSendingTime.FIELD)) { final Date origSendingTime = header.getUtcTimeStamp(OrigSendingTime.FIELD); final Date sendingTime = header.getUtcTimeStamp(SendingTime.FIELD); if (origSendingTime.compareTo(sendingTime) > 0) { generateReject(msg, SessionRejectReason.SENDINGTIME_ACCURACY_PROBLEM, 0); generateLogout(); return false; } } else { // QFJ-703 if (requiresOrigSendingTime) { generateReject(msg, SessionRejectReason.REQUIRED_TAG_MISSING, OrigSendingTime.FIELD); return false; } } } return true; }
public void run() { try { MsgType msgType = new MsgType(); if (isAvailable) { if (isMissingField) { // For OpenFIX certification testing sendBusinessReject(message, BusinessRejectReason.CONDITIONALLY_REQUIRED_FIELD_MISSING, "Conditionally required field missing"); } else if (message.getHeader().isSetField(DeliverToCompID.FIELD)) { // This is here to support OpenFIX certification sendSessionReject(message, SessionRejectReason.COMPID_PROBLEM); } else if (message.getHeader().getField(msgType).valueEquals("8")) { executionReport(message, sessionID); } else if (message.getHeader().getField(msgType).valueEquals("9")) { cancelReject(message, sessionID); } else { sendBusinessReject(message, BusinessRejectReason.UNSUPPORTED_MESSAGE_TYPE, "Unsupported Message Type"); } } else { sendBusinessReject(message, BusinessRejectReason.APPLICATION_NOT_AVAILABLE, "Application not available"); } } catch (Exception e) { e.printStackTrace(); } } }
private boolean validatePossDup(Message msg) throws FieldNotFound, IOException { final Message.Header header = msg.getHeader(); final String msgType = header.getString(MsgType.FIELD); if (!MsgType.SEQUENCE_RESET.equals(msgType)) { if (header.isSetField(OrigSendingTime.FIELD)) { final LocalDateTime origSendingTime = header.getUtcTimeStamp(OrigSendingTime.FIELD); final LocalDateTime sendingTime = header.getUtcTimeStamp(SendingTime.FIELD); if (origSendingTime.compareTo(sendingTime) > 0) { generateReject(msg, BAD_TIME_REJ_REASON, OrigSendingTime.FIELD); generateLogout(BAD_ORIG_TIME_TEXT); return false; } } else { // QFJ-703 if (requiresOrigSendingTime) { generateReject(msg, SessionRejectReason.REQUIRED_TAG_MISSING, OrigSendingTime.FIELD); return false; } } } return true; }
private boolean validatePossDup(Message msg) throws FieldNotFound, IOException { final Message.Header header = msg.getHeader(); final String msgType = header.getString(MsgType.FIELD); if (!MsgType.SEQUENCE_RESET.equals(msgType)) { if (header.isSetField(OrigSendingTime.FIELD)) { final LocalDateTime origSendingTime = header.getUtcTimeStamp(OrigSendingTime.FIELD); final LocalDateTime sendingTime = header.getUtcTimeStamp(SendingTime.FIELD); if (origSendingTime.compareTo(sendingTime) > 0) { generateReject(msg, BAD_TIME_REJ_REASON, OrigSendingTime.FIELD); generateLogout(BAD_ORIG_TIME_TEXT); return false; } } else { // QFJ-703 if (requiresOrigSendingTime) { generateReject(msg, SessionRejectReason.REQUIRED_TAG_MISSING, OrigSendingTime.FIELD); return false; } } } return true; }
private void generateReject(Message message, String str) throws FieldNotFound, IOException { final String beginString = sessionID.getBeginString(); final Message reject = messageFactory.create(beginString, MsgType.REJECT); final Header header = message.getHeader(); reject.reverseRoute(header); initializeHeader(reject.getHeader()); final String msgType = (header.isSetField(MsgType.FIELD) ? header.getString(MsgType.FIELD) : null); final String msgSeqNum = (header.isSetField(MsgSeqNum.FIELD) ? header.getString(MsgSeqNum.FIELD) : NumbersCache.get(0)); if (beginString.compareTo(FixVersions.BEGINSTRING_FIX42) >= 0 && msgType != null) { reject.setString(RefMsgType.FIELD, msgType); } reject.setString(RefSeqNum.FIELD, msgSeqNum); // QFJ-557: Only advance the sequence number if we are at the expected number. if (!MsgType.LOGON.equals(msgType) && !MsgType.SEQUENCE_RESET.equals(msgType) && Integer.parseInt(msgSeqNum) == getExpectedTargetNum()) { state.incrNextTargetMsgSeqNum(); } reject.setString(Text.FIELD, str); sendRaw(reject, 0); getLog().onErrorEvent("Reject sent for message " + msgSeqNum + ": " + str); }
private static boolean msgTypeHelper(Message fixMessage, String msgType) { if (fixMessage != null){ try { MsgType msgTypeField = new MsgType(); Header header = fixMessage.getHeader(); if (header.isSetField(msgTypeField)){ header.getField(msgTypeField); return msgType.equals(msgTypeField.getValue()); } } catch (Exception ignored) { // ignored } } return false; } /**
private void generateReject(Message message, String str) throws FieldNotFound, IOException { final String beginString = sessionID.getBeginString(); final Message reject = messageFactory.create(beginString, MsgType.REJECT); final Header header = message.getHeader(); reject.reverseRoute(header); initializeHeader(reject.getHeader()); final String msgType = (header.isSetField(MsgType.FIELD) ? header.getString(MsgType.FIELD) : null); final String msgSeqNum = (header.isSetField(MsgSeqNum.FIELD) ? header.getString(MsgSeqNum.FIELD) : NumbersCache.get(0)); if (beginString.compareTo(FixVersions.BEGINSTRING_FIX42) >= 0 && msgType != null) { reject.setString(RefMsgType.FIELD, msgType); } reject.setString(RefSeqNum.FIELD, msgSeqNum); // QFJ-557: Only advance the sequence number if we are at the expected number. if (!MsgType.LOGON.equals(msgType) && !MsgType.SEQUENCE_RESET.equals(msgType) && Integer.parseInt(msgSeqNum) == getExpectedTargetNum()) { state.incrNextTargetMsgSeqNum(); } reject.setString(Text.FIELD, str); sendRaw(reject, 0); getLog().onErrorEvent("Reject sent for message " + msgSeqNum + ": " + str); }
/** * Set the application version, if necessary. * * @param inMessage a <code>Message</code> value * @return a <code>Message</code> value */ protected Message addApplVersion(Message inMessage) { if(inMessage.getHeader().isSetField(quickfix.field.ApplVerID.FIELD)) { return inMessage; } inMessage.getHeader().setField(new quickfix.field.ApplVerID(getFixVersion().getApplicationVersion())); return inMessage; } /* (non-Javadoc)
private boolean isPossibleDuplicate(Message message) throws FieldNotFound { final Header header = message.getHeader(); return header.isSetField(PossDupFlag.FIELD) && header.getBoolean(PossDupFlag.FIELD); }
public boolean isAdmin() { if (header.isSetField(MsgType.FIELD)) { try { final String msgType = header.getString(MsgType.FIELD); return MessageUtils.isAdminMessage(msgType); } catch (final FieldNotFound e) { // shouldn't happen } } return false; }
public boolean isAdmin() { if (header.isSetField(MsgType.FIELD)) { try { final String msgType = header.getString(MsgType.FIELD); return MessageUtils.isAdminMessage(msgType); } catch (final FieldNotFound e) { // shouldn't happen } } return false; }
static Date getSendingTime(Message inMessage) { if (inMessage.getHeader().isSetField(SendingTime.FIELD)) { try { return inMessage.getHeader().getUtcTimeStamp(SendingTime.FIELD); } catch (FieldNotFound ignore) { } } return null; } static String getExecutionID(Message inMessage) {
@Override public Message newOrderSingleAugment(Message inMessage) { inMessage = super.newOrderSingleAugment(inMessage); if(inMessage.getHeader().isSetField(quickfix.field.TransactTime.FIELD)) { inMessage.removeField(quickfix.field.TransactTime.FIELD); } return inMessage; } /** Starting with FIX41 we now need to calculate {@link quickfix.field.LeavesQty}
private boolean isPossibleDuplicate(Message message) throws FieldNotFound { final Header header = message.getHeader(); return header.isSetField(PossDupFlag.FIELD) && header.getBoolean(PossDupFlag.FIELD); }
public boolean isAdmin() { if (header.isSetField(MsgType.FIELD)) { try { final String msgType = header.getString(MsgType.FIELD); return MessageUtils.isAdminMessage(msgType); } catch (final FieldNotFound e) { // shouldn't happen } } return false; }
private boolean isPossibleDuplicate(Message message) throws FieldNotFound { final Header header = message.getHeader(); return header.isSetField(PossDupFlag.FIELD) && header.getBoolean(PossDupFlag.FIELD); }