edu.isi.pegasus.planner.cluster.aggregator
Class JobAggregatorInstanceFactory

java.lang.Object
  extended by edu.isi.pegasus.planner.cluster.aggregator.JobAggregatorInstanceFactory

public class JobAggregatorInstanceFactory
extends Object

A JobAggergator factory that caches up the loaded implementations. It loads a new implementation only if it has not loaded it earlier. However, it is different from a Singleton Factory, as the implementations are not stored in static instances. Hence, two different instances of this Factory can load different instances of the same implementation.

Version:
$Revision: 2590 $
Author:
Karan Vahi
See Also:
JobAggregatorFactory

Field Summary
private  PegasusBag mBag
          The bag of initialization objects
private  ADag mDAG
          ADag object containing the jobs that have been scheduled by the site selector.
private static Map mImplementingClassNameTable
          A table that maps, Pegasus style keys to the names of the corresponding classes implementing the CondorStyle interface.
private  Map mImplementingClassTable
          A table that maps, Pegasus style keys to appropriate classes implementing the JobAggregator interface
private  boolean mInitialized
          A boolean indicating that the factory has been initialized.
protected  PegasusProperties mProps
          The handle to the properties object holding all the properties.
 
Constructor Summary
JobAggregatorInstanceFactory()
          The default constructor.
 
Method Summary
private  Object get(String style)
          Returns the implementation from the implementing class table.
private static Map implementingClassNameTable()
          Returns a table that maps, the Pegasus style keys to the names of implementing classes.
 void initialize(ADag dag, PegasusBag bag)
          Initializes the Factory.
 JobAggregator loadInstance(Job job)
          Returns the appropriate handle to the JobAggregator that is to be used for a particular type of job.
private  void put(String style, Object implementation)
          Inserts an entry into the implementing class table.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mImplementingClassNameTable

private static Map mImplementingClassNameTable
A table that maps, Pegasus style keys to the names of the corresponding classes implementing the CondorStyle interface.


mImplementingClassTable

private Map mImplementingClassTable
A table that maps, Pegasus style keys to appropriate classes implementing the JobAggregator interface


mProps

protected PegasusProperties mProps
The handle to the properties object holding all the properties.


mDAG

private ADag mDAG
ADag object containing the jobs that have been scheduled by the site selector.


mInitialized

private boolean mInitialized
A boolean indicating that the factory has been initialized.


mBag

private PegasusBag mBag
The bag of initialization objects

Constructor Detail

JobAggregatorInstanceFactory

public JobAggregatorInstanceFactory()
The default constructor.

Method Detail

initialize

public void initialize(ADag dag,
                       PegasusBag bag)
                throws JobAggregatorFactoryException
Initializes the Factory. Loads all the implementations just once.

Parameters:
dag - the workflow that is being clustered.
bag - the bag of initialization objects.
Throws:
JobAggregatorFactoryException - that nests any error that might occur during the instantiation of the implementation.

loadInstance

public JobAggregator loadInstance(Job job)
                           throws JobAggregatorFactoryException
Returns the appropriate handle to the JobAggregator that is to be used for a particular type of job. Aggregators for mpiexec and seqexec are already loaded in the constructor, and just the reference is returned. For any other aggregator it is dynamically loaded.

Parameters:
job - the job corresponding to which the aggregator is to be loaded.
Returns:
the appropriate JobAggregator
Throws:
JobAggregatorFactoryException - that nests any error that might occur during the instantiation

get

private Object get(String style)
Returns the implementation from the implementing class table.

Parameters:
style - the aggregator style
Returns:
implementation the class implementing that style, else null

put

private void put(String style,
                 Object implementation)
Inserts an entry into the implementing class table.

Parameters:
style - the aggregator style
implementation - the class implementing that aggregator.

implementingClassNameTable

private static Map implementingClassNameTable()
Returns a table that maps, the Pegasus style keys to the names of implementing classes.

Returns:
a Map indexed by Pegasus styles, and values as names of implementing classes.


Copyright © 2011 The University of Southern California. All Rights Reserved.