Class AnalysisController

java.lang.Object
kieker.analysis.AnalysisController
All Implemented Interfaces:
IAnalysisController, IProjectContext

@Deprecated
public final class AnalysisController
extends java.lang.Object
implements IAnalysisController
Deprecated.
1.15 can be removed when all filter and tools have been ported to TeeTime
The AnalysisController can be used to configure, control, save and load an analysis instance. It is responsible for the life cycle of the readers, filters and repositories.
Since:
0.95a
Author:
Andre van Hoorn, Matthias Rohr, Nils Christian Ehmke, Jan Waller
  • Constructor Details

    • AnalysisController

      public AnalysisController()
      Deprecated.
      Constructs an AnalysisController instance.
    • AnalysisController

      public AnalysisController​(java.lang.String projectName)
      Deprecated.
      Constructs an AnalysisController instance using the given parameter.
      Parameters:
      projectName - The name of the project.
    • AnalysisController

      public AnalysisController​(java.io.File file) throws java.io.IOException, AnalysisConfigurationException
      Deprecated.
      This constructors creates an AnalysisController instance, using the given file to load an analysis model. The given file should therefore be an instance of the analysis meta model.
      Parameters:
      file - The configuration file for the analysis.
      Throws:
      java.io.IOException - If the given file could not be loaded or is not a valid kax-configuration file.
      AnalysisConfigurationException - If one or more plugins or repositories could not be created, one or more properties of the plugins are invalid or if a connection between two filters is not allowed.
    • AnalysisController

      public AnalysisController​(java.io.File file, java.lang.ClassLoader classLoader) throws java.io.IOException, AnalysisConfigurationException
      Deprecated.
      This constructors creates an AnalysisController instance, using the given file to load an analysis model and the given classloader to initialize the objects. The given file should therefore be an instance of the analysis meta model.
      Parameters:
      file - The configuration file for the analysis.
      classLoader - The classloader used to initialize the plugins etc.
      Throws:
      java.io.IOException - If the given file could not be loaded or is not a valid kax-configuration file.
      AnalysisConfigurationException - If one or more plugins or repositories could not be created, one or more properties of the plugins are invalid or if a connection between two filters is not allowed.
    • AnalysisController

      public AnalysisController​(MIProject project) throws AnalysisConfigurationException
      Deprecated.
      Creates a new instance of the class AnalysisController but uses the given instance of MIProject to construct the analysis.
      Parameters:
      project - The project instance for the analysis.
      Throws:
      AnalysisConfigurationException - If the given project could not be loaded.
      java.lang.NullPointerException - If the project is null.
    • AnalysisController

      public AnalysisController​(MIProject project, java.lang.ClassLoader classLoader) throws AnalysisConfigurationException
      Deprecated.
      Creates a new instance of the class AnalysisController but uses the given instance of @link{Project} to construct the analysis.
      Parameters:
      project - The project instance for the analysis.
      classLoader - The class loader used for the initializing.
      Throws:
      java.lang.NullPointerException - If the project is null.
      AnalysisConfigurationException - If the given project could not be loaded.
    • AnalysisController

      public AnalysisController​(Configuration configuration)
      Deprecated.
      Constructs an AnalysisController instance using the given parameter.
      Parameters:
      configuration - The global configuration of this analysis. All plugins can indirectly access it.
  • Method Details

    • handleKiekerMetadataRecord

      public final void handleKiekerMetadataRecord​(KiekerMetadataRecord record)
      Deprecated.
      Called whenever an KiekerMetadataRecord is found inside the filters network. Currently this method only logs all details.
      Parameters:
      record - the KiekerMetadataRecord containing the information
    • registerStateObserver

      public final void registerStateObserver​(AnalysisController.IStateObserver stateObserver)
      Deprecated.
      Registers the given instance as a new state observer. All instances are informed when the state (Running, Terminated etc) changes and get the new state as an object.
      Specified by:
      registerStateObserver in interface IAnalysisController
      Parameters:
      stateObserver - The observer to be registered.
    • unregisterStateObserver

      public final void unregisterStateObserver​(AnalysisController.IStateObserver stateObserver)
      Deprecated.
      Unregisters the given instance from the state observers.
      Specified by:
      unregisterStateObserver in interface IAnalysisController
      Parameters:
      stateObserver - The observer to be unregistered.
    • getProperty

      public final java.lang.String getProperty​(java.lang.String key)
      Deprecated.
      Delivers the value for the given (global) property within the analysis.
      Specified by:
      getProperty in interface IProjectContext
      Parameters:
      key - The key of the property.
      Returns:
      The value for the given property if it exists, an empty string otherwise.
    • saveToFile

      public final void saveToFile​(java.io.File file) throws java.io.IOException, AnalysisConfigurationException
      Deprecated.
      This method can be used to store the current configuration of this analysis controller in a specified file. The file can later be used to initialize the analysis controller.
      Specified by:
      saveToFile in interface IAnalysisController
      Parameters:
      file - The file in which the configuration will be stored.
      Throws:
      java.io.IOException - If an exception during the storage occurred.
      AnalysisConfigurationException - If the current configuration is somehow invalid.
      See Also:
      IAnalysisController.saveToFile(String)
    • saveToFile

      public final void saveToFile​(java.lang.String pathname) throws java.io.IOException, AnalysisConfigurationException
      Deprecated.
      This method can be used to store the current configuration of this analysis controller in a specified file. It is just a convenient method which does the same as #saveToFile(File).
      Specified by:
      saveToFile in interface IAnalysisController
      Parameters:
      pathname - The pathname of the file in which the configuration will be stored.
      Throws:
      java.io.IOException - If an exception during the storage occurred.
      AnalysisConfigurationException - If the current configuration is somehow invalid.
      See Also:
      IAnalysisController.saveToFile(File)
    • connect

      public final void connect​(AbstractPlugin src, java.lang.String outputPortName, AbstractPlugin dst, java.lang.String inputPortName) throws AnalysisConfigurationException
      Deprecated.
      This method should be used to connect two plugins. The plugins have to be registered within this controller instance.
      Specified by:
      connect in interface IAnalysisController
      Parameters:
      src - The source plugin.
      outputPortName - The output port of the source plugin.
      dst - The destination plugin.
      inputPortName - The input port of the destination port.
      Throws:
      AnalysisConfigurationException - If the port names or the given plugins are invalid or not compatible.
    • connect

      public final void connect​(AbstractPlugin plugin, java.lang.String repositoryPort, AbstractRepository repository) throws AnalysisConfigurationException
      Deprecated.
      Connects the given repository to this plugin via the given name.
      Specified by:
      connect in interface IAnalysisController
      Parameters:
      plugin - The plugin to be connected.
      repositoryPort - The name of the port to connect the repository.
      repository - The repository which should be used.
      Throws:
      AnalysisConfigurationException - If the port names or the given objects are invalid or not compatible.
    • getCurrentConfiguration

      public final MIProject getCurrentConfiguration() throws AnalysisConfigurationException
      Deprecated.
      This method delivers the current configuration of this instance as an instance of MIProject.
      Specified by:
      getCurrentConfiguration in interface IProjectContext
      Returns:
      A filled meta model instance.
      Throws:
      AnalysisConfigurationException - If the current configuration is somehow invalid.
    • run

      public final void run() throws AnalysisConfigurationException
      Deprecated.
      Starts an AnalysisController instance. The method returns after all configured readers finished reading and all analysis plug-ins terminated On errors during the initialization, Exceptions are thrown.
      Specified by:
      run in interface IAnalysisController
      Throws:
      AnalysisConfigurationException - If plugins with mandatory repositories have not been connected properly or couldn't be initialized.
    • awaitInitialization

      public final void awaitInitialization()
      Deprecated.
      Causes the calling thread to wait until the analysis controller has been initialized.
    • terminate

      public final void terminate()
      Deprecated.
      Initiates a termination of the analysis.
      Specified by:
      terminate in interface IAnalysisController
    • terminate

      public final void terminate​(boolean error)
      Deprecated.
      Initiates a termination of the analysis.
      Specified by:
      terminate in interface IAnalysisController
      Parameters:
      error - Determines whether this is a normal termination or an termination due to an error during the analysis.
    • registerReader

      public final void registerReader​(AbstractReaderPlugin reader)
      Deprecated.
      Registers the given reader with this analysis instance. This method is for internal use only!
      Parameters:
      reader - The reader to register with this analysis.
      Throws:
      java.lang.IllegalStateException - If the analysis has already been started when this method is called.
    • registerFilter

      public final void registerFilter​(AbstractFilterPlugin filter)
      Deprecated.
      Registers the given filter with this analysis instance. This method is for internal use only!
      Parameters:
      filter - The filter to register with this analysis.
      Throws:
      java.lang.IllegalStateException - If the analysis has already been started when this method is called.
    • registerRepository

      public final void registerRepository​(AbstractRepository repository)
      Deprecated.
      Registers the given repository with this analysis instance. This method is for internal use only!
      Parameters:
      repository - The repository to register with this analysis.
      Throws:
      java.lang.IllegalStateException - If the analysis has already been started when this method is called.
    • getProjectName

      public final java.lang.String getProjectName()
      Deprecated.
      Delivers the current name of the project.
      Specified by:
      getProjectName in interface IProjectContext
      Returns:
      The current project name.
    • getReaders

      public final java.util.Collection<AbstractReaderPlugin> getReaders()
      Deprecated.
      Delivers an unmodifiable collection of all readers.
      Specified by:
      getReaders in interface IAnalysisController
      Returns:
      All registered readers.
    • getFilters

      public final java.util.Collection<AbstractFilterPlugin> getFilters()
      Deprecated.
      Delivers an unmodifiable collection of all filters.
      Specified by:
      getFilters in interface IAnalysisController
      Returns:
      All registered filters.
    • getRepositories

      public final java.util.Collection<AbstractRepository> getRepositories()
      Deprecated.
      Delivers an unmodifiable collection of all repositories.
      Specified by:
      getRepositories in interface IAnalysisController
      Returns:
      All registered repositories.
    • getState

      public final AnalysisController.STATE getState()
      Deprecated.
      Delivers the current state of the analysis controller.
      Specified by:
      getState in interface IProjectContext
      Returns:
      The current state.
    • loadFromFile

      public static final MIProject loadFromFile​(java.io.File file) throws java.io.IOException
      Deprecated.
      This method can be used to load a meta model instance from a given file.
      Parameters:
      file - The file to be loaded.
      Returns:
      An instance of MIProject if everything went well.
      Throws:
      java.io.IOException - If something during loading went wrong.
    • saveToFile

      public static final void saveToFile​(java.io.File file, MIProject project) throws java.io.IOException
      Deprecated.
      This method can be used to save the given instance of MIProject within a given file.
      Parameters:
      file - The file to be used for the storage.
      project - The project to be stored.
      Throws:
      java.io.IOException - In case of errors.
    • createAnalysisController

      public static final AnalysisController.AnalysisControllerWithMapping createAnalysisController​(MIProject project, java.lang.ClassLoader classLoader) throws AnalysisConfigurationException
      Deprecated.
      This is a factory method which can be used to create a new instance of AnalysisController, but delivers the mapping between the MIProject and the actual analysis. It calls the constructor AnalysisController(MIProject, ClassLoader).
      Parameters:
      project - The project to be loaded.
      classLoader - The class loader used to load the instances.
      Returns:
      The newly created controller and the mapping.
      Throws:
      java.lang.NullPointerException - If the project is null.
      AnalysisConfigurationException - If the given project could not be loaded.
    • tryRegisterComponentName

      public boolean tryRegisterComponentName​(java.lang.String name)
      Deprecated.
      This method tries to atomically register the given name for a component.
      Parameters:
      name - The component name to register
      Returns:
      true if and only if the given name is not already used and could now be registered.