Class MultipleFTPerXFERJobRefiner

  • All Implemented Interfaces:
    Refiner, Refiner
    Direct Known Subclasses:
    Basic, Empty

    public abstract class MultipleFTPerXFERJobRefiner
    extends AbstractRefiner
    The refiner interface, that determines the functions that need to be implemented to add various types of transfer nodes to the workflow. The multiple in the name indicates that the refiner works only with the implementation that handles multiple file transfer per transfer job.
    Version:
    $Revision$
    Author:
    Karan Vahi, Gaurang Mehta
    • Constructor Detail

      • MultipleFTPerXFERJobRefiner

        public MultipleFTPerXFERJobRefiner​(ADag dag,
                                           PegasusBag bag)
        The overloaded constructor.
        Parameters:
        dag - the workflow to which transfer nodes need to be added.
        bag - the bag of initialization objects.
    • Method Detail

      • loadImplementations

        public void loadImplementations​(PegasusBag bag)
                                 throws TransferImplementationFactoryException
        Loads the appropriate implementations that is required by this refinement strategy for different types of transfer jobs. It calls to the factory method to load the appropriate Implementor. Loads the implementing class corresponding to the mode specified by the user at runtime in the properties file. The properties object passed should not be null.
        Parameters:
        bag - the bag of initialization objects.
        Throws:
        TransferImplementationFactoryException - that nests any error that might occur during the instantiation.
        java.lang.ClassCastException - in case the incompatible implementation is loaded
      • checkCompatibility

        private void checkCompatibility​(Implementation implementation)
                                 throws java.lang.ClassCastException
        Checks whether the implementation loaded is compatible with the refiner. If not throws a ClassCastException.
        Parameters:
        implementation - the implementation whose compatibility needs to be checked.
        Throws:
        java.lang.ClassCastException - in case the implementation is incompatible.