edu.isi.pegasus.planner.parser.dax

## Interface Callback

All Known Implementing Classes:
  DAX2CDAG, DAX2Graph, DAX2LabelGraph, DAX2Metadata, DAX2NewGraph, ExampleDAXCallback

    public interface Callback

This interfaces defines the callback calls from DAX parsing. A slim and memory-efficient parser of DAX is expected to implement these callbacks, and generate its own information on the fly.

Version:
  $Revision$
Author:
  Karan Vahi, Jens-S. Vöckler

### Field Summary

Fields
`static java.lang.String` `VERSION` The version of the Callback api

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `cbCompoundTransformation(CompoundTransformation compoundTransformation)` Callback when a compound transformation is encountered in the DAX from Section 3: that lists Transformations that Aggregate executables and Files
`void` `cbDocument(java.util.Map attributes)` Callback when the opening tag was parsed.
`void` `cbDone()` Callback when the parsing of the document is done.
`void` `cbExecutable(TransformationCatalogEntry tce)` Callback when a transformation catalog entry is encountered in the DAX from Section 2: Executables that list entries in a Transformaton Catalog
`void` `cbFile(ReplicaLocation rl)` Callback when a replica catalog entry is encountered in the DAX from Section 1: Files that lists entries in a Replica Catalog
`void` `cbJob(Job job)` Callback for the job from section 4: Job's, DAX's or Dag's that list a JOB or DAX or DAG .
`void` `cbParents(java.lang.String child, java.util.List<PCRelation> parents)` Callback for child and parent relationships from Section 5: Dependencies that lists Parent Child relationships (can be empty)
`void` `cbWfInvoke(Invoke invoke)` Callback when a invoke is encountered in the DAX from the top level inside adag tag.
`java.lang.Object` `getConstructedObject()` Return a object that is constructed during the parsing of the object.
`void` `initialize(PegasusBag bag, java.lang.String dax)` The overloaded constructor.

### Field Detail

#### VERSION

    static final java.lang.String VERSION

The version of the Callback api

See Also:
  Constant Field Values

### Method Detail

#### initialize

    void initialize(PegasusBag bag,
                    java.lang.String dax)

The overloaded constructor.

Parameters:
  `bag` - the bag of initialization objects containing the properties and the logger
  `dax` - the path to the DAX file.

#### getConstructedObject

    java.lang.Object getConstructedObject()

Return a object that is constructed during the parsing of the object. The type of the object that is constructed is determined by the implementing callback handler. For example, it could be an Adag object used by Pegasus or a map containing the graph structure of the dax. The implementing classes should keep a boolean flag that signifies whether the corresponding object has been created by the implementing class or not. The variable should be set when the implementing callback handler deems that it has enough data to construct that object.

Returns:
  constructed object

#### cbDocument

    void cbDocument(java.util.Map attributes)

Callback when the opening tag was parsed. This contains all attributes and their raw values within a map. This callback can also be used to initialize callback-specific resources.

Parameters:
  `attributes` - is a map of attribute key to attribute value

#### cbWfInvoke

    void cbWfInvoke(Invoke invoke)

Callback when a invoke is encountered in the DAX from the top level inside adag tag.

Parameters:
  `invoke` - the invoke object

#### cbFile

    void cbFile(ReplicaLocation rl)

Callback when a replica catalog entry is encountered in the DAX from Section 1: Files that lists entries in a Replica Catalog

Parameters:
  `rl` - the ReplicaLocation object

#### cbExecutable

    void cbExecutable(TransformationCatalogEntry tce)

Callback when a transformation catalog entry is encountered in the DAX from Section 2: Executables that list entries in a Transformaton Catalog

Parameters:
  `tce` - the transformationc catalog entry object.

#### cbCompoundTransformation

    void cbCompoundTransformation(CompoundTransformation compoundTransformation)

Callback when a compound transformation is encountered in the DAX from Section 3: that lists Transformations that Aggregate executables and Files

Parameters:
  `compoundTransformation` - the compound transforamtion

#### cbJob

    void cbJob(Job job)

Callback for the job from section 4: Job's, DAX's or Dag's that list a JOB or DAX or DAG . These jobs are completely assembled, but each is passed separately.

Parameters:
  `job` - is the DAX-style job.

#### cbParents

    void cbParents(java.lang.String child,
                   java.util.List<PCRelation> parents)

Callback for child and parent relationships from Section 5: Dependencies that lists Parent Child relationships (can be empty)

Parameters:
  `child` - is the IDREF of the child element.
  `parents` - is a list of edjes denoted by PCRelation object.

#### cbDone

    void cbDone()

Callback when the parsing of the document is done. While this state could also be determined from the return of the invocation of the parser, that return may be hidden in another place of the code. This callback can be used to free callback-specific resources.