Package org.kie.internal.command

## Class CommandFactory

- java.lang.Object
- - org.kie.internal.command.CommandFactory

-     public class CommandFactory
      extends Object

  The CommandFactory returns Commands that can be used by classes that implement CommandExecutor. Typically more than one Command will want to be executed, where is where the BatchExecution comes in, which takes a List of commands, think of it as CompositeCommand.

  Out of the box marshalling to XML is support for the Commands, specifically the BatchExecution command and ExecutionResults, using the Drools Pipeline. If the drools-pipeline module is added then the PipelineFactory can be used in conjunction with the BatchExecutionHelper to marshall to and from XML. BatchExecutionHelper also provides additional documentation on the supported XML format.

  `

  This api is experimental and thus the classes and the interfaces returned are subject to change.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CommandFactory()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static org.kie.api.command.Command<org.kie.api.runtime.rule.FactHandle>` | `fromExternalFactHandleCommand​(String factHandleExternalForm)` |
    `static org.kie.api.command.Command<org.kie.api.runtime.rule.FactHandle>` | `fromExternalFactHandleCommand​(String factHandleExternalForm, boolean disconnected)` |
    `static org.kie.api.command.Command` | `newAbortWorkItem​(long workItemId)` |
    `static org.kie.api.command.BatchExecutionCommand` | `newBatchExecution​(List<? extends org.kie.api.command.Command> commands)` | This is a special composite command and will execute all the supplied commands in turn.
    `static org.kie.api.command.BatchExecutionCommand` | `newBatchExecution​(List<? extends org.kie.api.command.Command> commands, String lookup)` |
    `static org.kie.api.command.Command` | `newCompleteWorkItem​(long workItemId, Map<String,​Object> results)` |
    `static org.kie.api.command.Command` | `newDelete​(org.kie.api.runtime.rule.FactHandle factHandle)` |
    `static org.kie.api.command.Command` | `newDeleteObject​(Object object, String entryPoint)` |
    `static org.kie.api.command.Command` | `newDispose()` |
    `static org.kie.api.command.Command` | `newEnableAuditLog​(String filename)` |
    `static org.kie.api.command.Command` | `newEnableAuditLog​(String directory, String filename)` |
    `static org.kie.api.command.Command` | `newFireAllRules()` |
    `static org.kie.api.command.Command` | `newFireAllRules​(int max)` |
    `static org.kie.api.command.Command` | `newFireAllRules​(String outidentifier)` |
    `static org.kie.api.command.Command` | `newGetFactHandle​(Object object)` |
    `static org.kie.api.command.Command` | `newGetFactHandleInEntryPoint​(Object object, String entryPoint)` |
    `static org.kie.api.command.Command` | `newGetGlobal​(String identifier)` | Gets the global and adds it to the ExecutionResults
    `static org.kie.api.command.Command` | `newGetGlobal​(String identifier, String outIdentifier)` | Gets the global and adds it ot the BatchExecutionresults using the alternative outIdentifier.
    `static org.kie.api.command.Command` | `newGetObject​(org.kie.api.runtime.rule.FactHandle factHandle)` |
    `static org.kie.api.command.Command` | `newGetObject​(org.kie.api.runtime.rule.FactHandle factHandle, String outIdentifier)` |
    `static org.kie.api.command.Command` | `newGetObjects()` |
    `static org.kie.api.command.Command` | `newGetObjects​(String outIdentifier)` |
    `static org.kie.api.command.Command` | `newGetObjects​(org.kie.api.runtime.ObjectFilter filter)` |
    `static org.kie.api.command.Command` | `newGetObjects​(org.kie.api.runtime.ObjectFilter filter, String outIdentifier)` |
    `static org.kie.api.command.Command` | `newInsert​(Object object)` | Inserts a new instance
    `static org.kie.api.command.Command` | `newInsert​(Object object, String outIdentifier)` | Inserts a new instance but references via the outIdentifier, which is returned as part of the ExecutionResults
    `static org.kie.api.command.Command` | `newInsert​(Object object, String outIdentifier, boolean returnObject, String entryPoint)` | Inserts a new instance but references via the outIdentifier, which is returned as part of the ExecutionResults The outIdentifier can be null.
    `static org.kie.api.command.Command` | `newInsertElements​(Collection objects)` | Iterate and insert each of the elements of the Collection.
    `static org.kie.api.command.Command` | `newInsertElements​(Collection objects, String outIdentifier, boolean returnObject, String entryPoint)` | Iterate and insert each of the elements of the Collection.
    `static org.kie.api.command.Command` | `newModify​(org.kie.api.runtime.rule.FactHandle factHandle, List<org.kie.api.command.Setter> setters)` |
    `static org.kie.api.command.Command` | `newQuery​(String identifier, String name)` | Executes a query.
    `static org.kie.api.command.Command` | `newQuery​(String identifier, String name, Object[] arguments)` | Executes a query using the given parameters.
    `static org.kie.api.command.Command` | `newRegisterWorkItemHandlerCommand​(org.kie.api.runtime.process.WorkItemHandler handler, String workItemName)` |
    `static org.kie.api.command.Command` | `newSetGlobal​(String identifier, Object object)` | Sets the global.
    `static org.kie.api.command.Command` | `newSetGlobal​(String identifier, Object object, boolean out)` | Sets the global but also when the out parameter is true specifies that the global is added to the ExecutionResults.
    `static org.kie.api.command.Command` | `newSetGlobal​(String identifier, Object object, String outIdentifier)` | Sets the global but also specifies that the global is added to the ExecutionResults.
    `static org.kie.api.command.Setter` | `newSetter​(String accessor, String value)` |
    `static org.kie.api.command.Command` | `newSignalEvent​(long processInstanceId, String type, Object event)` |
    `static org.kie.api.command.Command` | `newSignalEvent​(String type, Object event)` |
    `static org.kie.api.command.Command` | `newStartProcess​(String processId)` | Start a process
    `static org.kie.api.command.Command` | `newStartProcess​(String processId, Map<String,​Object> parameters)` | Start a process using the given parameters.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CommandFactory

          public CommandFactory()

  - ### Method Detail

    - #### newInsert

          public static org.kie.api.command.Command newInsert​(Object object)

      Inserts a new instance
      Parameters:
        `object` -
      Returns:

    - #### newDispose

          public static org.kie.api.command.Command newDispose()

    - #### newInsert

          public static org.kie.api.command.Command newInsert​(Object object,
                                                              String outIdentifier)

      Inserts a new instance but references via the outIdentifier, which is returned as part of the ExecutionResults
      Parameters:
        `object` -
        `outIdentifier` -
      Returns:

    - #### newInsert

          public static org.kie.api.command.Command newInsert​(Object object,
                                                              String outIdentifier,
                                                              boolean returnObject,
                                                              String entryPoint)

      Inserts a new instance but references via the outIdentifier, which is returned as part of the ExecutionResults The outIdentifier can be null. The entryPoint, which can also be null, specifies the entrypoint the object is inserted into.
      Parameters:
        `object` -
        `outIdentifier` -
        `entryPoint` -
      Returns:

    - #### newInsertElements

          public static org.kie.api.command.Command newInsertElements​(Collection objects)

      Iterate and insert each of the elements of the Collection.
      Parameters:
        `objects` - The objects to insert
      Returns:

    - #### newInsertElements

          public static org.kie.api.command.Command newInsertElements​(Collection objects,
                                                                      String outIdentifier,
                                                                      boolean returnObject,
                                                                      String entryPoint)

      Iterate and insert each of the elements of the Collection.
      Parameters:
        `objects` - The objects to insert
        `outIdentifier` - Identifier to lookup the returned objects
        `returnObject` - boolean to specify whether the inserted Collection is part of the ExecutionResults
        `entryPoint` - Optional EntryPoint for the insertions
      Returns:

    - #### newDelete

          public static org.kie.api.command.Command newDelete​(org.kie.api.runtime.rule.FactHandle factHandle)

    - #### newDeleteObject

          public static org.kie.api.command.Command newDeleteObject​(Object object,
                                                                    String entryPoint)

    - #### newGetFactHandle

          public static org.kie.api.command.Command newGetFactHandle​(Object object)

    - #### newGetFactHandleInEntryPoint

          public static org.kie.api.command.Command newGetFactHandleInEntryPoint​(Object object,
                                                                                 String entryPoint)

    - #### newSetter

          public static org.kie.api.command.Setter newSetter​(String accessor,
                                                             String value)

    - #### newModify

          public static org.kie.api.command.Command newModify​(org.kie.api.runtime.rule.FactHandle factHandle,
                                                              List<org.kie.api.command.Setter> setters)

    - #### newGetObject

          public static org.kie.api.command.Command newGetObject​(org.kie.api.runtime.rule.FactHandle factHandle)

    - #### newGetObject

          public static org.kie.api.command.Command newGetObject​(org.kie.api.runtime.rule.FactHandle factHandle,
                                                                 String outIdentifier)

    - #### newGetObjects

          public static org.kie.api.command.Command newGetObjects()

    - #### newGetObjects

          public static org.kie.api.command.Command newGetObjects​(String outIdentifier)

    - #### newGetObjects

          public static org.kie.api.command.Command newGetObjects​(org.kie.api.runtime.ObjectFilter filter)

    - #### newGetObjects

          public static org.kie.api.command.Command newGetObjects​(org.kie.api.runtime.ObjectFilter filter,
                                                                  String outIdentifier)

    - #### newSetGlobal

          public static org.kie.api.command.Command newSetGlobal​(String identifier,
                                                                 Object object)

      Sets the global. Does not add the global to the ExecutionResults.
      Parameters:
        `identifier` - The identifier of the global
        `object` - The instance to be set as the global.
      Returns:

    - #### newSetGlobal

          public static org.kie.api.command.Command newSetGlobal​(String identifier,
                                                                 Object object,
                                                                 boolean out)

      Sets the global but also when the out parameter is true specifies that the global is added to the ExecutionResults.
      Parameters:
        `identifier` - The identifier of the global
        `object` - The instance to be set as the global.
        `out` - When true the global will be added to the ExecutionResults using the global's identifier.
      Returns:

    - #### newSetGlobal

          public static org.kie.api.command.Command newSetGlobal​(String identifier,
                                                                 Object object,
                                                                 String outIdentifier)

      Sets the global but also specifies that the global is added to the ExecutionResults. Instead of using the global's identifier it uses the outIdentifier when being added to the ExecutionResults.
      Parameters:
        `identifier` - The identifier of the global
        `object` - The instance to be set as the global.
        `outIdentifier` - The identifier used to store the global in the ExecutionResults
      Returns:

    - #### newGetGlobal

          public static org.kie.api.command.Command newGetGlobal​(String identifier)

      Gets the global and adds it to the ExecutionResults
      Parameters:
        `identifier` -
      Returns:

    - #### newGetGlobal

          public static org.kie.api.command.Command newGetGlobal​(String identifier,
                                                                 String outIdentifier)

      Gets the global and adds it ot the BatchExecutionresults using the alternative outIdentifier.
      Parameters:
        `identifier` - The identifier of the global
        `outIdentifier` - The identifier used in the ExecutionResults to store the global.
      Returns:

    - #### newFireAllRules

          public static org.kie.api.command.Command newFireAllRules()

    - #### newFireAllRules

          public static org.kie.api.command.Command newFireAllRules​(int max)

    - #### newFireAllRules

          public static org.kie.api.command.Command newFireAllRules​(String outidentifier)

    - #### newStartProcess

          public static org.kie.api.command.Command newStartProcess​(String processId)

      Start a process
      Parameters:
        `processId` -
      Returns:

    - #### newStartProcess

          public static org.kie.api.command.Command newStartProcess​(String processId,
                                                                    Map<String,​Object> parameters)

      Start a process using the given parameters.
      Parameters:
        `processId` -
        `parameters` -
      Returns:

    - #### newSignalEvent

          public static org.kie.api.command.Command newSignalEvent​(String type,
                                                                   Object event)

    - #### newSignalEvent

          public static org.kie.api.command.Command newSignalEvent​(long processInstanceId,
                                                                   String type,
                                                                   Object event)

    - #### newRegisterWorkItemHandlerCommand

          public static org.kie.api.command.Command newRegisterWorkItemHandlerCommand​(org.kie.api.runtime.process.WorkItemHandler handler,
                                                                                      String workItemName)

    - #### newCompleteWorkItem

          public static org.kie.api.command.Command newCompleteWorkItem​(long workItemId,
                                                                        Map<String,​Object> results)

    - #### newAbortWorkItem

          public static org.kie.api.command.Command newAbortWorkItem​(long workItemId)

    - #### newQuery

          public static org.kie.api.command.Command newQuery​(String identifier,
                                                             String name)

      Executes a query. The query results will be added to the ExecutionResults using the given identifier.
      Parameters:
        `identifier` - The identifier to be used for the results when added to the ExecutionResults
        `name` - The name of the query to execute
      Returns:

    - #### newQuery

          public static org.kie.api.command.Command newQuery​(String identifier,
                                                             String name,
                                                             Object[] arguments)

      Executes a query using the given parameters. The query results will be added to the ExecutionResults using the given identifier.
      Parameters:
        `identifier` - The identifier to be used for the results when added to the ExecutionResults
        `name` - The name of the query to execute
        `arguments` - The arguments to be used for the query parameters
      Returns:

    - #### newBatchExecution

          public static org.kie.api.command.BatchExecutionCommand newBatchExecution​(List<? extends org.kie.api.command.Command> commands)

      This is a special composite command and will execute all the supplied commands in turn.
      Parameters:
        `commands` -
      Returns:

    - #### newBatchExecution

          public static org.kie.api.command.BatchExecutionCommand newBatchExecution​(List<? extends org.kie.api.command.Command> commands,
                                                                                    String lookup)

      Returns:

    - #### fromExternalFactHandleCommand

          public static org.kie.api.command.Command<org.kie.api.runtime.rule.FactHandle> fromExternalFactHandleCommand​(String factHandleExternalForm)

    - #### fromExternalFactHandleCommand

          public static org.kie.api.command.Command<org.kie.api.runtime.rule.FactHandle> fromExternalFactHandleCommand​(String factHandleExternalForm,
                                                                                                                       boolean disconnected)

    - #### newEnableAuditLog

          public static org.kie.api.command.Command newEnableAuditLog​(String directory,
                                                                      String filename)

    - #### newEnableAuditLog

          public static org.kie.api.command.Command newEnableAuditLog​(String filename)