edu.isi.pegasus.planner.transfer.implementation

## Class AbstractSingleFTPerXFERJob

- java.lang.Object
- - edu.isi.pegasus.planner.transfer.implementation.Abstract
  - - edu.isi.pegasus.planner.transfer.implementation.AbstractSingleFTPerXFERJob

All Implemented Interfaces:
  Implementation, SingleFTPerXFERJob

Direct Known Subclasses:
  Stork

    public abstract class AbstractSingleFTPerXFERJob
    extends Abstract
    implements SingleFTPerXFERJob

An abstract implementation for implementations that can handle only a single file transfer in a single file transfer job.

Version:
  $Revision$
Author:
  Karan Vahi

### Field Summary

### Fields inherited from class edu.isi.pegasus.planner.transfer.implementation.Abstract

`CHANGE_XBIT_TRANSFORMATION, mAddNodesForSettingXBit, mChmodDisabledForAllSites, mDisabledChmodSites, mLocalIrodsEnv, mLocalIrodsEnvBasename, mLocalS3cfg, mLocalS3cfgBasename, mLocalUserProxy, mLocalUserProxyBasename, mLogger, mPOptions, mProps, mRefiner, mSiteStore, mTCHandle, NOOP_PREFIX, SET_XBIT_PREFIX, XBIT_DERIVATION_NS, XBIT_DERIVATION_VERSION, XBIT_EXECUTABLE_BASENAME, XBIT_TRANSFORMATION_NS, XBIT_TRANSFORMATION_VERSION`

### Fields inherited from interface edu.isi.pegasus.planner.transfer.Implementation

`TRANSFER_UNIVERSE, VERSION`

### Constructor Summary

Constructors
Constructor and Description
`AbstractSingleFTPerXFERJob(PegasusBag bag)` The overloaded constructor, that is called by the Factory to load the class.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`TransferJob` `createTransferJob(Job job, java.lang.String site, java.util.Collection files, java.util.Collection execFiles, java.lang.String txJobName, int jobClass)` Constructs a general transfer job that handles single transfers per transfer job.
`TransferJob` `createTransferJob(Job job, java.lang.String site, FileTransfer file, java.util.Collection execFiles, java.lang.String txJobName, int jobClass)` Constructs a general transfer job that handles single transfers per transfer job.
`protected abstract java.lang.String` `generateArgumentStringAndAssociateCredentials(TransferJob job, FileTransfer file)` It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.
`protected abstract java.lang.String` `getCompleteTCName()` Returns the complete name for the transformation that the implementation is using.
`protected abstract java.lang.String` `getDerivationName()` Returns the logical name of the derivation that this implementation refers to.
`protected abstract java.lang.String` `getDerivationNamespace()` Returns the namespace of the derivation that this implementation refers to.
`protected abstract java.lang.String` `getDerivationVersion()` Returns the version of the derivation that this implementation refers to.

### Methods inherited from class edu.isi.pegasus.planner.transfer.implementation.Abstract

`addSetXBitJobs, addSetXBitJobs, addSetXBitJobs, applyPriority, checkAndTransferIrodsEnvFile, checkAndTransferProxy, construct, createNoOPJob, createSetXBitJob, createSetXBitJob, createSetXBitJob, determineDisabledChmodSites, disableChmodJobCreation, getNOOPJobName, getPriority, getSetXBitJobName, setRefiner`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface edu.isi.pegasus.planner.transfer.Implementation

`doesPreserveXBit, getDescription, getTransformationCatalogEntry, useThirdPartyTransferAlways`

### Constructor Detail

#### AbstractSingleFTPerXFERJob

    public AbstractSingleFTPerXFERJob(PegasusBag bag)

The overloaded constructor, that is called by the Factory to load the class.

Parameters:
  `bag` - the bag of Pegasus initialization objects

### Method Detail

#### createTransferJob

    public TransferJob createTransferJob(Job job,
                                         java.lang.String site,
                                         java.util.Collection files,
                                         java.util.Collection execFiles,
                                         java.lang.String txJobName,
                                         int jobClass)

Constructs a general transfer job that handles single transfers per transfer job. There are appropriate callouts to generate the implementation specific details. It throws an error if asked to create a transfer job for more than one transfer.

Specified by:
  `createTransferJob` in interface `Implementation`
Parameters:
  `job` - the Job object for the job, in relation to which the transfer node is being added. Either the transfer node can be transferring this jobs input files to the execution pool, or transferring this job's output files to the output pool.
  `site` - the site where the transfer job should run.
  `files` - collection of `FileTransfer` objects representing the data files and staged executables to be transferred.
  `execFiles` - subset collection of the files parameter, that identifies the executable files that are being transferred.
  `txJobName` - the name of transfer node.
  `jobClass` - the job Class for the newly added job. Can be one of the following: stage-in stage-out inter-pool transfer
Returns:
  the created TransferJob.

#### createTransferJob

    public TransferJob createTransferJob(Job job,
                                         java.lang.String site,
                                         FileTransfer file,
                                         java.util.Collection execFiles,
                                         java.lang.String txJobName,
                                         int jobClass)

Constructs a general transfer job that handles single transfers per transfer job. There are appropriate callouts to generate the implementation specific details.

Parameters:
  `job` - the Job object for the job, in relation to which the transfer node is being added. Either the transfer node can be transferring this jobs input files to the execution pool, or transferring this job's output files to the output pool.
  `site` - the site where the transfer job should run.
  `file` - collection of `FileTransfer` objects representing the data files and staged executables to be transferred.
  `execFiles` - subset collection of the files parameter, that identifies the executable files that are being transferred.
  `txJobName` - the name of transfer node.
  `jobClass` - the job Class for the newly added job. Can be one of the following: stage-in stage-out inter-pool transfer
Returns:
  the created TransferJob.

#### getDerivationNamespace

    protected abstract java.lang.String getDerivationNamespace()

Returns the namespace of the derivation that this implementation refers to.

Returns:
  the namespace of the derivation.

#### getDerivationName

    protected abstract java.lang.String getDerivationName()

Returns the logical name of the derivation that this implementation refers to.

Returns:
  the name of the derivation.

#### getDerivationVersion

    protected abstract java.lang.String getDerivationVersion()

Returns the version of the derivation that this implementation refers to.

Returns:
  the version of the derivation.

#### generateArgumentStringAndAssociateCredentials

    protected abstract java.lang.String generateArgumentStringAndAssociateCredentials(TransferJob job,
                                                                                      FileTransfer file)

It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.

Parameters:
  `job` - the job containing the transfer node.
  `file` - the FileTransfer that needs to be done.
Returns:
  the argument string

#### getCompleteTCName

    protected abstract java.lang.String getCompleteTCName()

Returns the complete name for the transformation that the implementation is using.

Returns:
  the complete name.