edu.isi.pegasus.planner.refiner.createdir

## Class AbstractStrategy

- java.lang.Object
- - edu.isi.pegasus.planner.refiner.createdir.AbstractStrategy

All Implemented Interfaces:
  Strategy

Direct Known Subclasses:
  HourGlass, Minimal, Tentacles

    public abstract class AbstractStrategy
    extends java.lang.Object
    implements Strategy

The interface that defines how the cleanup job is invoked and created.

Version:
  $Revision$
Author:
  Karan Vahi

### Field Summary

Fields
`static java.lang.String` `CREATE_DIR_PREFIX` Constant prefix for the names of the create directory nodes.
`static java.lang.String` `CREATE_DIR_SUFFIX` Constant suffix for the names of the create directory nodes.
`protected Implementation` `mImpl` The implementation instance that is used to create a create dir job.
`protected java.lang.String` `mJobPrefix` The job prefix that needs to be applied to the job file basenames.
`protected LogManager` `mLogger` The handle to the logging object, that is used to log the messages.
`protected SiteStore` `mSiteStore` The Site Store handle.
`protected boolean` `mUseMkdir` Whether we want to use dirmanager or mkdir directly.

### Fields inherited from interface edu.isi.pegasus.planner.refiner.createdir.Strategy

`VERSION`

### Constructor Summary

Constructors
Constructor and Description
`AbstractStrategy()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`java.lang.String` `getCreateDirJobName(ADag dag, java.lang.String pool)` It returns the name of the create directory job, that is to be assigned.
`static java.util.Set` `getCreateDirSites(ADag dag)` Retrieves the sites for which the create dir jobs need to be created.
`void` `initialize(PegasusBag bag, Implementation impl)` Intializes the class.

### 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.refiner.createdir.Strategy

`addCreateDirectoryNodes`

### Field Detail

#### CREATE_DIR_SUFFIX

    public static final java.lang.String CREATE_DIR_SUFFIX

Constant suffix for the names of the create directory nodes.

See Also:
  Constant Field Values

#### CREATE_DIR_PREFIX

    public static final java.lang.String CREATE_DIR_PREFIX

Constant prefix for the names of the create directory nodes.

See Also:
  Constant Field Values

#### mLogger

    protected LogManager mLogger

The handle to the logging object, that is used to log the messages.

#### mJobPrefix

    protected java.lang.String mJobPrefix

The job prefix that needs to be applied to the job file basenames.

#### mUseMkdir

    protected boolean mUseMkdir

Whether we want to use dirmanager or mkdir directly.

#### mImpl

    protected Implementation mImpl

The implementation instance that is used to create a create dir job.

#### mSiteStore

    protected SiteStore mSiteStore

The Site Store handle.

### Constructor Detail

#### AbstractStrategy

    public AbstractStrategy()

### Method Detail

#### initialize

    public void initialize(PegasusBag bag,
                           Implementation impl)

Intializes the class.

Specified by:
  `initialize` in interface `Strategy`
Parameters:
  `bag` - bag of initialization objects
  `impl` - the implementation instance that creates create dir job

#### getCreateDirJobName

    public java.lang.String getCreateDirJobName(ADag dag,
                                                java.lang.String pool)

It returns the name of the create directory job, that is to be assigned. The name takes into account the workflow name while constructing it, as that is thing that can guarentee uniqueness of name in case of deferred planning.

Parameters:
  `dag` - the workflow to which the create dir jobs are being added.
  `pool` - the execution pool for which the create directory job is responsible.
Returns:
  String corresponding to the name of the job.

#### getCreateDirSites

    public static java.util.Set getCreateDirSites(ADag dag)

Retrieves the sites for which the create dir jobs need to be created. It returns all the sites where the compute jobs have been scheduled.

Returns:
  a Set containing a list of siteID's of the sites where the dag has to be run.