Class PMController


  • public class PMController
    extends java.lang.Object
    The PMController class allows to merge several input PEAR files in one PEAR file and generate an aggregate analysis engine from the components encapsulated in the input PEARs.
    See Also:
    PMControllerHelper, PMUimaAgent
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  PMController.PMLogFormatter
      The PMLogFormatter class formats messages for the log file.
    • Constructor Summary

      Constructors 
      Constructor Description
      PMController​(java.io.File[] inpPearFiles, java.lang.String outCompName, java.io.File outPearFile)
      Constructor that takes a given array of input PEAR files, a given output component name (ID) and a given output PEAR file.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cleanUp()
      Deletes all temporary directories and files after the merging operation is completed.
      private long extractInputPears()
      Extracts all specified input PEARs to their corresponding folders inside the output root folder.
      static java.util.logging.Logger getLogger()
      Returns the instance of the class-specific Logger object.
      private void initializeTaskAttributes()
      Intializes the 'PEAR Merger' task attributes, based on the specified input.
      static void logErrorMessage​(java.lang.String message)
      Logs a given error message to the log file and prints it to the standard error console stream.
      static void logInfoMessage​(java.lang.String message)
      Logs a given info message to the log file and prints it to the standard output console stream.
      static void logWarningMessage​(java.lang.String message)
      Logs a given warning message to the log file and prints it to the standard error console stream.
      static void main​(java.lang.String[] args)
      The command line application entry point.
      boolean mergePears()
      Merges specified input PEARs into one PEAR, which encapsulates aggregate AE that refers to input components, as delegates.
      private static boolean parseCommandLine​(java.lang.String[] args)
      Parses and validates the command line and initializes static attributes.
      static void setLogFileEnabled​(boolean enable)
      Enables/disables PM log file.
      • Methods inherited from class java.lang.Object

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

      • AGGREGATE_PEAR_FILE_ARG

        static final java.lang.String AGGREGATE_PEAR_FILE_ARG
        See Also:
        Constant Field Values
      • __pearFiles

        private static java.io.File[] __pearFiles
      • __aggregateName

        private static java.lang.String __aggregateName
      • __aggregatePearFile

        private static java.io.File __aggregatePearFile
      • __logger

        private static java.util.logging.Logger __logger
      • __logFileEnabled

        private static boolean __logFileEnabled
      • _inpPearFiles

        private java.io.File[] _inpPearFiles
      • _outAggCompName

        private java.lang.String _outAggCompName
      • _outAggPearFile

        private java.io.File _outAggPearFile
      • _tempWorkDir

        private java.io.File _tempWorkDir
      • _outAggRootDir

        private java.io.File _outAggRootDir
      • _outDlgRootDirs

        private java.io.File[] _outDlgRootDirs
    • Constructor Detail

      • PMController

        public PMController​(java.io.File[] inpPearFiles,
                            java.lang.String outCompName,
                            java.io.File outPearFile)
                     throws java.io.IOException
        Constructor that takes a given array of input PEAR files, a given output component name (ID) and a given output PEAR file.
        Parameters:
        inpPearFiles - The given array of input PEAR files.
        outCompName - The given output component name (ID).
        outPearFile - The given output PEAR file.
        Throws:
        java.io.IOException - If any I/O exception occurred during initialization.
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
        The command line application entry point. This method expects the following command line arguments:
        • pear_file_1 ... pear_file_n - input PEAR files (required)
        • -n agg_name - a name of the output aggregate analysis engine (required)
        • -f agg_pear_file - output aggregate PEAR file (optional).
          If the output PEAR file is not specified, the default output PEAR file is created in the current working directory.
        Parameters:
        args - pear_file_1 ... pear_file_n -n agg_name [-f agg_pear_file]
      • getLogger

        public static java.util.logging.Logger getLogger()
        Returns the instance of the class-specific Logger object.
        Returns:
        The instance of the class-specific Logger object.
      • logErrorMessage

        public static void logErrorMessage​(java.lang.String message)
        Logs a given error message to the log file and prints it to the standard error console stream.
        Parameters:
        message - The given error message.
      • logInfoMessage

        public static void logInfoMessage​(java.lang.String message)
        Logs a given info message to the log file and prints it to the standard output console stream.
        Parameters:
        message - The given info message.
      • logWarningMessage

        public static void logWarningMessage​(java.lang.String message)
        Logs a given warning message to the log file and prints it to the standard error console stream.
        Parameters:
        message - The given warning message.
      • parseCommandLine

        private static boolean parseCommandLine​(java.lang.String[] args)
        Parses and validates the command line and initializes static attributes.
        Parameters:
        args - The given command line arguments.
        Returns:
        true, if the command line arguments are valid, false otherwise.
      • setLogFileEnabled

        public static void setLogFileEnabled​(boolean enable)
        Enables/disables PM log file. By default, the log file is disabled.
        Parameters:
        enable - if true, the log file is enabled, otherwise it is disabled.
      • cleanUp

        public void cleanUp()
                     throws java.io.IOException
        Deletes all temporary directories and files after the merging operation is completed.
        Throws:
        java.io.IOException - If an I/O exception occurred.
      • extractInputPears

        private long extractInputPears()
                                throws java.io.IOException
        Extracts all specified input PEARs to their corresponding folders inside the output root folder. Returns the total size (bytes) of extracted files.
        Returns:
        The total size of extracted files.
        Throws:
        java.io.IOException - If any I/O exception occurred during extraction.
      • initializeTaskAttributes

        private void initializeTaskAttributes()
                                       throws java.io.IOException
        Intializes the 'PEAR Merger' task attributes, based on the specified input.
        Throws:
        java.io.IOException - If any I/O exception occurred during initialization.
      • mergePears

        public boolean mergePears()
                           throws java.io.IOException
        Merges specified input PEARs into one PEAR, which encapsulates aggregate AE that refers to input components, as delegates. Returns true, if the merging operation completed successfully, false otherwise.
        Returns:
        true, if the merge operation completed successfully, false otherwise.
        Throws:
        java.io.IOException - If an I/O exception occurred during the merging operation.