Class TransformationCatalogTextParser


  • public class TransformationCatalogTextParser
    extends java.lang.Object
    Parses the input stream and generates the TransformationStore as output. This parser is able to parse the Transformation Catalog specification in the following format
     tr example::keg:1.0 {
     
      #specify profiles that apply for all the sites for the transformation
      #in each site entry the profile can be overriden
      profile env "APP_HOME" "/tmp/karan"
      profile env "JAVA_HOME" "/bin/java.1.5"
     
      site isi {
       profile env "me" "with"
       profile condor "more" "test"
       profile env "JAVA_HOME" "/bin/java.1.6"
       pfn "/path/to/keg"
       arch  "x86"
       os    "linux"
       osrelease "fc"
       osversion "4"
       type "installed"            
      }
     
      site wind {
       profile env "me" "with"
       profile condor "more" "test"
       pfn "/path/to/keg"
       arch  "x86"
       os    "linux"
       osrelease "fc"
       osversion "4"
       type "STAGEABLE"
      }
     }
    
     
    Version:
    $Revision$
    Author:
    Karan Vahi, Jens Vöckler
    See Also:
    TransformationCatalogTextScanner
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private Profile getProfile()
      Parses a single line and returns a profile.
      private Profiles getProfilesForTransformation()
      Returns a list of profiles that have to be applied to the entries for all the sites corresponding to a transformation.
      private java.lang.String getQuotedValue​(java.lang.String key)
      Parses a quoted value and strips out the enclosing quotes.
      private java.lang.String getSite()
      Returns the site transformation for a site, and moves the scanner to hold the next TransformationCatalogReservedWord.
      private java.lang.String getTransformation()
      Returns the transformation name, and moves the scanner to hold the next TransformationCatalogReservedWord.
      private TransformationCatalogEntry getTransformationCatalogEntry​(java.lang.String transformation, Profiles profiles, boolean modifyFileURL)
      Constructs a single transformation catalog entry and returns it.
      static void main​(java.lang.String[] args)
      Test function.
      java.lang.String niceString​(java.lang.String input)
      Remove potential leading and trainling quotes from a string.
      TransformationStore parse​(boolean modifyFileURL)
      Parses the complete input stream, into the PoolConfig data object that holds the contents of all the sites referred to in the stream.
      • Methods inherited from class java.lang.Object

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

      • mLookAhead

        private Token mLookAhead
        Stores the look-ahead symbol.
      • mLogger

        private LogManager mLogger
        The transformation to the logger used to log messages.
    • Constructor Detail

      • TransformationCatalogTextParser

        public TransformationCatalogTextParser​(java.io.Reader r,
                                               LogManager logger)
                                        throws java.io.IOException,
                                               ScannerException
        Initializes the parser with an input stream to read from.
        Parameters:
        r - is the stream opened for reading.
        logger - the transformation to the logger.
        Throws:
        java.io.IOException
        ScannerException
    • Method Detail

      • parse

        public TransformationStore parse​(boolean modifyFileURL)
                                  throws java.io.IOException,
                                         ScannerException
        Parses the complete input stream, into the PoolConfig data object that holds the contents of all the sites referred to in the stream.
        Parameters:
        modifyFileURL - Boolean indicating whether to modify the file URL or not
        Returns:
        TransformationStore
        Throws:
        java.io.IOException
        ScannerException
        java.lang.Exception
        See Also:
        org.griphyn.cPlanner.classes.PoolConfig
      • niceString

        public java.lang.String niceString​(java.lang.String input)
        Remove potential leading and trainling quotes from a string.
        Parameters:
        input - is a string which may have leading and trailing quotes
        Returns:
        a string that is either identical to the input, or a substring thereof.
      • getTransformationCatalogEntry

        private TransformationCatalogEntry getTransformationCatalogEntry​(java.lang.String transformation,
                                                                         Profiles profiles,
                                                                         boolean modifyFileURL)
                                                                  throws java.io.IOException,
                                                                         ScannerException
        Constructs a single transformation catalog entry and returns it.
        Parameters:
        entry - the TransformationCatalogEntry object that is to be populated.
        profiles - the profiles that apply to all the entries
        modifyFileURL - Boolean indicating whether to modify the file URL or not
        Returns:
        the transformation catalog entry object.
        Throws:
        even - more mystery
        java.io.IOException
        ScannerException
      • getTransformation

        private java.lang.String getTransformation()
                                            throws java.io.IOException,
                                                   ScannerException
        Returns the transformation name, and moves the scanner to hold the next TransformationCatalogReservedWord.
        Returns:
        the transformation name
        Throws:
        plenty
        java.io.IOException
        ScannerException
      • getSite

        private java.lang.String getSite()
                                  throws java.io.IOException,
                                         ScannerException
        Returns the site transformation for a site, and moves the scanner to hold the next TransformationCatalogReservedWord.
        Returns:
        the transformation name
        Throws:
        plenty
        java.io.IOException
        ScannerException
      • getProfilesForTransformation

        private Profiles getProfilesForTransformation()
                                               throws java.io.IOException,
                                                      ScannerException
        Returns a list of profiles that have to be applied to the entries for all the sites corresponding to a transformation.
        Returns:
        Profiles specified
        Throws:
        java.io.IOException
        ScannerException
      • getQuotedValue

        private java.lang.String getQuotedValue​(java.lang.String key)
                                         throws java.io.IOException
        Parses a quoted value and strips out the enclosing quotes.
        Parameters:
        key - the key for which we need to associated the quoted value
        Returns:
        quoted value.
        Throws:
        java.io.IOException