Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK
11g Release 2 (11.1.2.2.0)

E17493-03


oracle.ide.runner
Interface StarterFactoryDescription


public interface StarterFactoryDescription

Provides a description of a StarterFactory that can be lazily loaded by a StarterFactoryProvider. In the implementation of StarterFactoryDescriptions, it is important to delay the loading, and initialization, of the StarterFactory as long as possible.

Since:
11.1.2.0.0

Method Summary
 boolean areRulesSatisfied(Project project, Node node)
          Determine if the rules, if any, of the StarterFactory registration are satisfied by the incoming project to be run/debugged.
 java.lang.String getKey()
          Return a unique String that identifies this StarterFactoryDescription
 StarterFactory getStarterFactory()
          Get an instance of the StarterFactory.
 java.lang.String getStarterFactoryBaseClassName()
          Get the name of the base class of the StarterFactory.
 java.lang.Class getStarterFactoryClass()
          Get the Class object of the StarterFactory.
 java.lang.String getStarterFactoryClassName()
          What is the name of the StarterFactory class? It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
 java.lang.Class getTargetClass()
          Get the Class object of the target this StarterFactory can start.
 java.lang.String getTargetClassName()
          What is the name of the target class that the StarterFactory can start? It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
 boolean hasInitializedStarterFactory()
          Determine if the StarterFactory, and its module, have already been initialized.
 boolean isAcceptableNode(Project project, Node node)
          Determine if the Node of the target that needs to be started is acceptable.
 boolean isAcceptableProject(Project project)
          Determine if the project of the target that needs to be started is acceptable.
 boolean isAcceptableStarterFactory(java.lang.Class starterFactoryClass)
          Determine if the incoming StarterFactory Class is acceptable to the registered StarterFactory Class and BaseClass.
 boolean isAcceptableTarget(java.lang.Class targetClass, boolean exactTargetClass)
          Determine if the StarterFactory finds the incoming targetClass acceptable.

 

Method Detail

getKey

java.lang.String getKey()
Return a unique String that identifies this StarterFactoryDescription
Returns:
A unique identifier

getTargetClassName

java.lang.String getTargetClassName()
What is the name of the target class that the StarterFactory can start? It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Returns:
The fully qualified name of the target class, which should not be null

getStarterFactoryClassName

java.lang.String getStarterFactoryClassName()
What is the name of the StarterFactory class? It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Returns:
The full qualified name of the StarterFactory class, which should not be null

getStarterFactoryBaseClassName

java.lang.String getStarterFactoryBaseClassName()
Get the name of the base class of the StarterFactory. This base class name is used to determine if the StarterFactory requested by the RunProcess is the same or derived from this base class. By default this method can return null, indicating that the default oracle.ide.runner.StarterFactory class name should be used. It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Returns:
NULL to indicate the default value should be used, or a the fully qualified name of a base class of the StarterFactory

getTargetClass

java.lang.Class getTargetClass()
Get the Class object of the target this StarterFactory can start. In general this method is not called since there is a good chance it will cause initialization of the extension that owns the StarterFactory
Returns:
The Class object of the target

areRulesSatisfied

boolean areRulesSatisfied(Project project,
                          Node node)
Determine if the rules, if any, of the StarterFactory registration are satisfied by the incoming project to be run/debugged. It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Parameters:
project - The project to be run/debugged, which can be NULL if the project is not known
node - The Node being started for the run/debug session
Returns:
True if the rules, if any, are satisfied OR if there are no rules OR the project is NULL. Return false otherwise.

isAcceptableTarget

boolean isAcceptableTarget(java.lang.Class targetClass,
                           boolean exactTargetClass)
Determine if the StarterFactory finds the incoming targetClass acceptable. Normally, acceptable means that the incoming targetClass derives from, or is, the targetClass registered with the StarterFactory This method should execute very quickly, it is used to enable/disable menu items and other time-sensitive actions. It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Parameters:
targetClass - The Class of a target that needs to be started
exactTargetClass - If true, only consider the exact target class, such as only accept it if the incoming targetClass is the exact class registered with the StarterFactory
Returns:
True if the targetClass is acceptable

isAcceptableProject

boolean isAcceptableProject(Project project)
Determine if the project of the target that needs to be started is acceptable. This allows for more in-depth queries, such as if the project has certain properties or files This method should execute fairly quickly; it is called after the user has already decided to run/debug/profile, and the runner is trying to find the best StarterFactory for the run. It should be possible to answer this question without initializing the StarterFactory.
Parameters:
project - The project of the target that needs to be started, which can be NULL if the project is not known
Returns:
True if the project is acceptable

isAcceptableNode

boolean isAcceptableNode(Project project,
                         Node node)
Determine if the Node of the target that needs to be started is acceptable. This allows for more in-depth queries, such as looking inside the Node for annotations or other markers. This method should execute fairly quickly; it is called after the user has already decided to run/debug/profile, and the runner is trying to find the best StarterFactory for the run. It should be possible to answer this question without initializing the StarterFactory.
Parameters:
project - The project of the target that needs to be started, which can be NULL if the project is not known
node - The Node of the target that needs to be started
Returns:
True if the node is acceptable

hasInitializedStarterFactory

boolean hasInitializedStarterFactory()
Determine if the StarterFactory, and its module, have already been initialized.
Returns:
True if the StarterFactory has been initialized

isAcceptableStarterFactory

boolean isAcceptableStarterFactory(java.lang.Class starterFactoryClass)
Determine if the incoming StarterFactory Class is acceptable to the registered StarterFactory Class and BaseClass. Normally, acceptable means that the incoming class is derived from the registered StarterFactory BaseClass or is derived from the default StarterFactory base class (oracle.ide.runner.StarterFactory) It should be possible to answer this question using the StarterFactory declaration in the extension.xml file without instantiating the extension that owns the StarterFactory
Parameters:
starterFactoryClass - The StarterFactory
Returns:
True if the incoming Class is acceptable

getStarterFactoryClass

java.lang.Class getStarterFactoryClass()
Get the Class object of the StarterFactory. This will usually not be called. Will only be called after hasInitializedStarterFactory returns true, OR after isAcceptableTarget/Project/Node all return true, since this causes the StarterFactory and its module to be initialized
Returns:
The Class object of the StarterFactory

getStarterFactory

StarterFactory getStarterFactory()
Get an instance of the StarterFactory. Will only be called after hasInitializedStarterFactory returns true, OR after isAcceptableTarget/Project/Node all return true, since this causes the StarterFactory and its module to be initialized
Returns:
An instance of the StarterFactory

Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK
11g Release 2 (11.1.2.2.0)

E17493-03


Copyright © 1997, 2012, Oracle. All rights reserved.