DestinationTransferStartExit.java interface

DestinationTransferStartExit.java


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

/**
 * 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
 * destination of the transfer.
 */
public interface DestinationTransferStartExit {

	/**
	 * Invoked immediately prior to starting a transfer on the agent acting as
	 * the destination of the transfer.
	 * 
	 * @param sourceAgentName
	 *            the name of the agent acting as the source of the transfer.
	 * 
	 * @param destinationAgentName
	 *            the name of the agent acting as the destination of the
	 *            transfer.	 This is the name of the agent that the 
	 *            implementation of this method will be invoked from.
	 * 
	 * @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 information can
	 *            only be read, it cannot be updated by the implementation.  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 modify the 
	 *            entries in this list and the changes will be reflected in the 
	 *            files transferred. However, new entries may not be added and
	 *            existing entries may not be removed.
	 * 
	 * @return    a transfer exit result object which is used to determine if the
	 *            transfer should proceed, or be cancelled.
	 */
	TransferExitResult onDestinationTransferStart(String sourceAgentName,
		               			            String destinationAgentName,
		       				            Map<String, String> environmentMetaData,
		       				            Map<String, String> transferMetaData, 
		       				            List<Reference<String>> fileSpecs);