SourceTransferStartExit.java interface


SourceTransferStartExit.java

/*
 *   Licensed Materials - Property of IBM
 *
 *   "Restricted Materials of IBM"
 *
 *   5724-H72
 * 
 *    Copyright IBM Corp. 2008, 2020. All Rights Reserved.
 * 
 *   disclosure restricted by GSA ADP Schedule Contract with
 *   IBM Corp.
 */
package com.ibm.wmqfte.exitpoint.api;

import java.util.List;
import java.util.Map;

/**
 * An interface that is implemented by classes that want to be invoked as part of
 * user exit routine processing.  This interface defines a method that will be
 * invoked immediately prior to starting a transfer on the agent acting as the
 * source of the transfer.
 */
public interface SourceTransferStartExit {

	/**
	 * Invoked immediately prior to starting a transfer on the agent acting as
	 * the source of the transfer.
	 * 
	 * @param sourceAgentName
	 *            the name of the agent acting as the source of the transfer.
	 *            This is the name of the agent that the implementation of this
	 *            method will be invoked from.
	 * 
	 * @param destinationAgentName
	 *            the name of the agent acting as the destination of the
	 *            transfer.
	 * 
	 * @param environmentMetaData
	 *            meta data about the environment in which the implementation
	 *            of this method is running.  This information can only be read,
	 *            it cannot be updated by the implementation.  The constants
	 *            defined in <code>EnvironmentMetaDataConstants</code> class can 
	 *            be used to access the data held by this map.
	 * 
	 * @param transferMetaData
	 *            meta data to associate with the transfer.  The meta data passed
	 *            to this method can be altered, and the changes to will be
	 *            reflected in subsequent exit routine invocations.  This map may
	 *            also contain keys with IBM reserved names.  These entries are
	 *            defined in the <code>TransferMetaDataConstants</code> class and
	 *            have special semantics.
	 * 
	 * @param fileSpecs
	 *            a list of file specifications that govern the file data to
	 *            transfer.  The implementation of this method can add entries,
	 *            remove entries, or modify entries in this list and the changes
	 *            will be reflected in the files transferred.
	 * 
	 * @return    a transfer exit result object which is used to determine if the
	 *            transfer should proceed, or be cancelled.
	 */
	TransferExitResult onSourceTransferStart(String sourceAgentName,
						 String destinationAgentName,
						 Map<String, String> environmentMetaData,
						 Map<String, String>transferMetaData, 
						 List<SourceFileExitFileSpecification>fileSpecs);
}