Class WriterCallback

  • All Implemented Interfaces:
    Callback

    public class WriterCallback
    extends java.lang.Object
    implements Callback
    This callback writes out a DAX file for each of the partitions, and also writes out a PDAX file that captures the relations between the partitions.
    Version:
    $Revision$
    Author:
    not attributable
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected DAXWriter mDAXWriter
      The handle to the dax writer that writes out the dax corresponding to the partition identified.
      protected LogManager mLogger
      The handle to the logger object.
      protected boolean mPartitioningStarted
      A boolean indicating that the partitioning has started.
      protected java.lang.String mPDAX
      The path to the PDAX file written out.
      protected PDAXWriter mPDAXWriter
      The handle to the partition graph writer.
      protected PegasusProperties mProps
      Handle to the properties available.
    • Constructor Summary

      Constructors 
      Constructor Description
      WriterCallback()
      The default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cbDone()
      Callback for the partitioner to signal that it is done with the processing.
      void cbParents​(java.lang.String child, java.util.List parents)
      Callback for when a partitioner determines the relations between partitions that it has previously constructed.
      void cbPartition​(Partition p)
      Callback for when a partitioner determines that partition has been constructed.
      protected PDAXWriter getHandletoPDAXWriter​(java.lang.String daxFile, java.lang.String name, java.lang.String directory)
      It returns the handle to the writer for writing out the pdax file that contains the relations amongst the partitions and the jobs making up the partitions.
      protected java.lang.String getPartitionName()
      Returns the name of the partition, that needs to be set while creating the Partition object corresponding to each partition.
      java.lang.String getPDAX()
      Returns the name of the pdax file written out.
      void initialize​(PegasusProperties properties, java.lang.String daxFile, java.lang.String daxName, java.lang.String directory)
      Initializes the Writer Callback.
      protected java.lang.String partitionRelation2XML​(java.lang.String childID, java.lang.String parentID)
      Returns the xml description of a relation between 2 partitions.
      protected java.lang.String partitionRelation2XML​(java.lang.String childID, java.util.List parentIDs)
      Returns the xml description of a relation between 2 partitions.
      protected java.lang.String partitionRelation2XML​(java.lang.String childID, java.util.Set parentIDs)
      Returns the xml description of a relation between 2 partitions.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • mPDAXWriter

        protected PDAXWriter mPDAXWriter
        The handle to the partition graph writer.
      • mDAXWriter

        protected DAXWriter mDAXWriter
        The handle to the dax writer that writes out the dax corresponding to the partition identified. The base name of the partition is gotten from it.
      • mPDAX

        protected java.lang.String mPDAX
        The path to the PDAX file written out.
      • mLogger

        protected LogManager mLogger
        The handle to the logger object.
      • mPartitioningStarted

        protected boolean mPartitioningStarted
        A boolean indicating that the partitioning has started. This is set, by the first call to the cbPartition( Partition ) callback.
    • Constructor Detail

      • WriterCallback

        public WriterCallback()
        The default constructor.
    • Method Detail

      • initialize

        public void initialize​(PegasusProperties properties,
                               java.lang.String daxFile,
                               java.lang.String daxName,
                               java.lang.String directory)
        Initializes the Writer Callback.
        Parameters:
        properties - the properties passed to the planner.
        daxFile - the path to the DAX file that is being partitioned.
        daxName - the namelabel of the DAX as set in the root element of the DAX.
        directory - the directory where the partitioned daxes have to reside.
      • cbPartition

        public void cbPartition​(Partition p)
        Callback for when a partitioner determines that partition has been constructed. A DAX file is written out for the partition.
        Specified by:
        cbPartition in interface Callback
        Parameters:
        p - the constructed partition.
        Throws:
        java.lang.RuntimeException - in case of any error while writing out the DAX or the PDAX files.
      • cbParents

        public void cbParents​(java.lang.String child,
                              java.util.List parents)
        Callback for when a partitioner determines the relations between partitions that it has previously constructed.
        Specified by:
        cbParents in interface Callback
        Parameters:
        child - the id of a partition.
        parents - the list of String objects that contain the id's of the parents of the partition.
        Throws:
        java.lang.RuntimeException - in case of any error while writing out the DAX or the PDAX files.
      • cbDone

        public void cbDone()
        Callback for the partitioner to signal that it is done with the processing. This internally closes all the handles to the DAX and PDAX writers.
        Specified by:
        cbDone in interface Callback
      • getPDAX

        public java.lang.String getPDAX()
        Returns the name of the pdax file written out. Will be null if the partitioning has not completed.
        Returns:
        path to the pdax file.
      • getPartitionName

        protected java.lang.String getPartitionName()
        Returns the name of the partition, that needs to be set while creating the Partition object corresponding to each partition.
        Returns:
        the name of the partition.
      • getHandletoPDAXWriter

        protected PDAXWriter getHandletoPDAXWriter​(java.lang.String daxFile,
                                                   java.lang.String name,
                                                   java.lang.String directory)
        It returns the handle to the writer for writing out the pdax file that contains the relations amongst the partitions and the jobs making up the partitions.
        Parameters:
        daxFile - the path to the DAX file that is being partitioned.
        name - the name/label that is to be assigned to the pdax file.
        directory - the directory where the partitioned daxes have to reside.
        Returns:
        handle to the writer of pdax file.
      • partitionRelation2XML

        protected java.lang.String partitionRelation2XML​(java.lang.String childID,
                                                         java.lang.String parentID)
        Returns the xml description of a relation between 2 partitions.
        Parameters:
        childID - the ID of the child.
        parentID - the ID of the parent.
        Returns:
        the XML description of child parent relation.
      • partitionRelation2XML

        protected java.lang.String partitionRelation2XML​(java.lang.String childID,
                                                         java.util.List parentIDs)
        Returns the xml description of a relation between 2 partitions.
        Parameters:
        childID - the ID of the child
        parentIDs - List of parent IDs.
        Returns:
        the XML description of child parent relations.
      • partitionRelation2XML

        protected java.lang.String partitionRelation2XML​(java.lang.String childID,
                                                         java.util.Set parentIDs)
        Returns the xml description of a relation between 2 partitions.
        Parameters:
        childID - the ID of the child
        parentIDs - Set of parent IDs.
        Returns:
        the XML description of child parent relations.