/*******************************************************************************
* Copyright (c) quickfixengine.org All rights reserved.
*
* This file is part of the QuickFIX FIX Engine
*
* This file may be distributed under the terms of the quickfixengine.org
* license as defined by quickfixengine.org and appearing in the file
* LICENSE included in the packaging of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
* THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* See http://www.quickfixengine.org/LICENSE for licensing information.
*
* Contact ask@quickfixengine.org if any conditions of this licensing
* are not clear to you.
******************************************************************************/
package quickfix;
/**
* Used by a Session to create a Message.
*
* @see quickfix.Session
*/
public interface MessageFactory {
/**
* Creates a message for a specified type and FIX version
*
* @param beginString
* the FIX version (for example, "FIX.4.2")
* @param msgType
* the FIX message type (for example, "D" for an order)
* @return a message instance
*/
Message create(String beginString, String msgType);
/**
* Creates a group for the specified parent message type and
* for the fields with the corresponding field ID
*
* Example: to create a {@link quickfix.fix42.MarketDataRequest.NoMDEntryTypes}
* you need to call
* create({@link quickfix.field.MsgType#MARKET_DATA_REQUEST}, {@link quickfix.field.NoMDEntryTypes#FIELD})
*
* Function returns null if the group cannot be created.
* @param beginString
* the FIX version (for example, "FIX.4.2")
* @param msgType Message type of the enclosing message
* @param correspondingFieldID the fieldID of the field in the group
* @return group, or null if the group can't be created.
*/
public Group create(String beginString, String msgType, int correspondingFieldID);
}