com.corticon.eclipse.studio.rule.ruleflow.diagram.core

## Interface IRuleflowDiagramModelAPI

- All Superinterfaces:
    IModelAPI, IRuleflowModelAPI

      public interface IRuleflowDiagramModelAPI
      extends IRuleflowModelAPI

  The Ruleflow diagram model API provides a standardized interface for the Flow Diagram presentation metaphor.
  WARNING: this view API inherits all of the methods of its canonical (ancestor) API. Whenever a view API is used, it is essential that any model state changes be performed exclusively via view API methods, because the view API contains logic to update both view and canonical model objects in tandem. Invoking canonical (ancestor) state-change functions directly can create an asset that lacks necessary view-level objects, effectively corrupting the asset.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DIAGRAM_ID_RULEFLOW` Int used to track ID of Ruleflow Diagram.
    `static int` | `DRAG_FEEDBACK_ACTIVITY_ALREADY_EXISTS` Int used to track feedback for dragging an object that already contains the dragged object.
    `static int` | `DRAG_FEEDBACK_DESTINATION_BAD_STATE` Int used to track feedback for destination due to bad state of a drag.
    `static int` | `DRAG_FEEDBACK_DRAG_SOURCE_NOT_RESOURCE_URI` Int used to track feedback of dragging object without URI to represent object.
    `static int` | `DRAG_FEEDBACK_DRAG_SOURCE_NOT_RULESHEET_OR_RULEFLOW` Int used to track feedback of source not being rulesheet or ruleflow.
    `static int` | `DRAG_FEEDBACK_INVALID_TARGET` Int used to track feedback for dragging a object onto a invalid target.
    `static int` | `DRAG_FEEDBACK_OK` Int used to track Drag and Drop Feedback.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addActivityShape(org.eclipse.emf.common.util.URI aURIRuleActivity, Coordinates aCoordinates)` Add a new ActivityShape to the diagram at the specified Coordinates.
    `boolean` | `addActivityShapes(TreeviewSelection aTreeviewSelection, Coordinates aCoordinates)` Given a TreeviewSelection (of URIs representing Rulesheet and/or Ruleflow assets), add multiple ActivityShape instances to the diagram starting at the specified Coordinates.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addConnectorShape(java.lang.String astrConnectorClass, java.lang.String astrConnectorService, Coordinates aCoordinates)` Add a new ConnectorShape to the diagram.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addConnectorToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent, java.lang.String astrConnectorClass, java.lang.String astrConnectorService, Coordinates aCoordinates)` Add Connector to a specific Subflow.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowEdge` | `addFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource, com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)` Add a standard FlowEdge to the diagram.
    `boolean` | `addInitiateShape(Coordinates aCoordinates)` Add a new InitiateShape to the diagram.
    `boolean` | `addLoopbackEdge()` Add a LoopbackEdge to the diagram.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addRulesheetToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent, org.eclipse.emf.common.util.URI aRulesheetURI, Coordinates aCoordinates)` Add Rulesheet to Subflow.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addSubflow(Coordinates aCoordinates)` Add a Subflow at the specified coordinates
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape` | `addSubflowToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent, Coordinates aCoordinates)` Add Subflow to Subflow.
    `boolean` | `addTerminateShape(Coordinates aCoordinates)` Add a new TerminateShape to the diagram.
    `void` | `copy(DiagramSelection aDiagramSelection)` Copy the selected objects to the system clipboard.
    `void` | `cut(DiagramSelection aDiagramSelection)` Cut the selected objects to the system clipboard.
    `void` | `delete(DiagramSelection aDiagramSelection)` Delete the selected objects.
    `boolean` | `drag(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape, Coordinates aCoordinates)` Drag a FlowShape to the specified Coordinates.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowDiagram` | `findFlowDiagram()` Finder for FlowDiagram.
    `com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape` | `findFlowShapeByGUID(java.lang.String astrGUID)` Finder to return a FlowShape corresponding to a specified GUID.
    `java.lang.String` | `getConnectorClass(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector)` Returns the class name associated with the specified ActivtyShape (Connector).
    `java.lang.String` | `getConnectorService(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector)` Returns the service name associated with the specified ActivtyShape (Connector).
    `Coordinates` | `getCoordinates(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)` Return the coordinates of a specified FlowShape.
    `Dimensions` | `getDimensions(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)` Return the dimensions of a specified FlowShape.
    `java.util.List` | `getDragFeedback(DiagramSelection aDiagramSelection, Coordinates aCoordinates)` Given a DiagramSelection (consisting of FlowShape instances), and Coordinates, return an ArrayList of feedback codes (type Integer) corresponding to the order of the shapes specified in the DiagramSelection.
    `int` | `getDragFeedback(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape, Coordinates aCoordinates)` Given a FlowShape instance and a target Coordinates, return feedback generate feedback regarding whether the shape can be successfully dropped at the specified position.
    `java.util.List` | `getListEntityNames()` Return a list of localized fully-qualified entity names in the Vocabulary, including a blank item.
    `java.util.List<java.lang.String>` | `getListServiceCalloutNames(boolean abIncludeBlankItem, boolean abBase)` Return a list of base or localized fully-qualified service call-out names culled from the extended operators.
    `java.lang.String` | `getName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)` Return the name of a specified FlowShape.
    `org.eclipse.emf.common.util.URI` | `getRulesheetURI(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape)` Get URI of a supplied Rulesheet ActivityShape.
    `java.lang.String` | `getServiceCalloutDescription(java.lang.String astrServiceCalloutName, boolean abInputBase)` Given a Service Call-out name, return the localized Service Call-out description.
    `java.lang.String` | `getServiceCalloutName(java.lang.String astrServiceCalloutName, boolean abInputBase)` Convert a base Service Call-out name to localized form or vice-versa.
    `java.util.Collection` | `getShapes(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlow)` Given a Ruleflow/Subflow get all FlowShape instances contained within it.
    `java.util.List` | `getShapesSequence(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlow)` Get a sequence of activity shapes, in the order of execution, as defined by edges (arrows) connecting the shapes.
    `boolean` | `hasRulesheet(org.eclipse.emf.common.util.URI aURI)` Check if Ruleflow contains a given Rulesheet.
    `boolean` | `isAllowedAddActivityShape(org.eclipse.emf.common.util.URI aURIRuleActivity, Coordinates aCoordinates)` Determine whether a RuleActivity representing the specified Rulesheet or Ruleflow could be added to the diagram at the specified Coordinates.
    `boolean` | `isAllowedAddActivityShapes(TreeviewSelection aTreeviewSelection, Coordinates aCoordinates)` Given a TreeviewSelection consisting of one or more URIs that represent Rulesheet and/or Ruleflow assets, determine whether *all* of the assets can be successfully dropped onto the diagram as RuleActivity shapes.
    `boolean` | `isAllowedAddFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource, com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)` Determine whether a standard FlowEdge can be added to the diagram.
    `boolean` | `isAllowedAddInitiateShape(Coordinates aCoordinates)` Determine whether an InitiateShape can be added to the diagram.
    `boolean` | `isAllowedAddLoopbackEdge()` Determine whether a LoopbackEdge can be added to the diagram.
    `boolean` | `isAllowedAddTerminateShape(Coordinates aCoordinates)` Determine whether a TerminateShape can be added to the diagram.
    `boolean` | `isEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape)` Check if ActivityShape is enabled.
    `boolean` | `isEnabledCopy(DiagramSelection aDiagramSelection)` Determine whether copy function is enabled.
    `boolean` | `isEnabledCut(DiagramSelection aDiagramSelection)` Determine whether cut function is enabled.
    `boolean` | `isEnabledDelete(DiagramSelection aDiagramSelection)` Determine whether delete function is enabled.
    `boolean` | `isEnabledPaste(DiagramSelection aDiagramSelection)` Determine whether paste function is enabled.
    `boolean` | `isEnabledReport()` Determine whether report function is enabled.
    `boolean` | `isIterative(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aShape)` Determines whether the specified ActivityShape is iterative.
    `boolean` | `isRulesheet(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)` Determines whether the specified FlowShape represents a Rulesheet.
    `boolean` | `isSubflow(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aShape)` Determines whether the specified FlowShape represents a Subflow.
    `boolean` | `isValidConnection(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource, com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)` Check if a connection between two shapes is valid.
    `boolean` | `moveNode(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlowParent, com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape, Coordinates aCoordinates)` Move shape to a different Subflow, or to top-level in Ruleflow.
    `java.util.Collection` | `paste(DiagramSelection aDiagramSelection)` Paste the system clipboard into the selected area.
    `boolean` | `removeFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowEdge aFlowEdge)` Remove a FlowEdge from the diagram.
    `boolean` | `removeFlowShape(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)` Remove a FlowShape from the diagram.
    `void` | `reset()` Completely reset the diagram to its initial state.
    `boolean` | `setConnectorClass(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector, java.lang.String astrConnectorClass)` Set the connector class of the specified ActivityShape (Connector).
    `boolean` | `setConnectorService(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector, java.lang.String astrConnectorService)` Set the connector service of the specified ActivityShape (Connector).
    `boolean` | `setCoordinates(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape, Coordinates aCoordinates)` Set the coordinates of a specified shape.
    `boolean` | `setDimensions(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape, Dimensions aDimensions)` Update the dimensions of a specified shape.
    `boolean` | `setEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape, boolean abEnabled)` Set enabled/disable state for the activity shape.
    `boolean` | `setIterative(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape, boolean abIterative)` Set iterative flag of the specified ActivityShape.
    `boolean` | `setLogicalLoopEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape, boolean abLogicalLoopEnabled)` Set the logical loop indicator for a given ActivityShape.
    `boolean` | `setName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape, java.lang.String astrName)` Set name of the specified FlowShape.
    `boolean` | `setRulesheetURI(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aShape, org.eclipse.emf.common.util.URI aURI)` Set URI on a Rulesheet shape.
    `boolean` | `setSelection(DiagramSelection aDiagramSelection)` Set the selection state.
    `boolean` | `setServiceCalloutName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape, java.lang.String astrServiceCalloutName, boolean abInputBase)` Set the Service Call-out name of the specified ActivityShape.

    - ### Methods inherited from interface com.corticon.eclipse.studio.rule.ruleflow.core.IRuleflowModelAPI

      `canSetRulesheetURI, containsServiceCallout, createDefaultXmlReport, createRuleflow, deleteRuleflow, findRuleflow, findRuleflowAsset, getEffectiveDateStart, getEffectiveDateStop, getExpirationDate, getMajorVersion, getMinorVersion, getNewRuleflowName, getOperationsModelAPI, getRuleflowDescription, getRulesheetModelAPI, getRulesheetTableModelAPI, getRulesheetURI, getTotalNumberOfRules, getVersionLabel, getVocabulary, getVocabularyModelAPI, getVocabularyURI, getWorkDocumentEntityName, incrementMajorVersion, incrementMinorVersion, isDeployable, isVocabularyAvailable, presave, renameRuleflow, setEffectiveDateStart, setEffectiveDateStop, setExpirationDate, setMajorVersion, setMinorVersion, setRuleflowDescription, setVersionLabel, setVocabulary, setWorkDocumentEntity`

    - ### Methods inherited from interface com.corticon.eclipse.core.IModelAPI

      `activate, addAnnotation, addBatchedModelListener, addLowLevelModelListener, addModelListener, addResourceListener, addView, beginTransaction, cancelTransaction, canSetSupportedLocales, closeResource, createResource, deleteAnnotation, deleteAnnotation, deleteAnnotation, deleteResource, displayMessageBox, dispose, doPostLoadValidation, doSmartValidation, endTransaction, endTransaction, flushCommandStack, formatValidationMessageLocation, formatValidationMessageText, getAllLocalesProvidingCompleteLocalization, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAPIContextObject, getAsset, getBaseAttribute, getBaseAttributeString, getBatchedModelListeners, getBuildNumber, getBuildNumberOfLastValidationRulesChange, getEditingDomain, getErrors, getErrors, getIndexByLocale, getLocale, getLocalizedAttribute, getLocalizedAttributeString, getLowLevelModelListeners, getMajorServiceNumber, getMajorVersionNumber, getMessage, getMessage, getMessageBase, getMessageBoxDelegate, getMinorServiceNumber, getMinorVersionNumber, getModelAPIState, getModelListeners, getNewResourceName, getPersistenceServicesDelegate, getPreferences, getPrimaryResource, getPrimaryResourceURI, getScrollableMessageDelegate, getSupportedLocales, getSuppressBrokenLinkValidation, getSuppressValidation, getToolTip, getUpdateStamp, getUserInterfaceInfoDelegate, getValidationMessageCount, getValidationMessageCount, getValidationMessageCount, getValidationMessageCount, getValidationMessages, getValidationMessages, getWarnings, getWarnings, handleException, hasErrors, hasErrors, hasErrors, hasErrors, hasErrors, hasErrors, hasErrorsOrWarnings, hasErrorsOrWarnings, hasErrorsOrWarnings, hasErrorsOrWarnings, hasErrorsOrWarnings, hasErrorsOrWarnings, hasWarnings, hasWarnings, hasWarnings, hasWarnings, hasWarnings, hasWarnings, isAPIStateEstablished, isEnabledRedo, isEnabledUndo, isInhibitNotification, isLoaded, isOperationModeNormal, isOperationModeRedo, isOperationModeUndo, isPassive, isPostLoadInProgress, isPrimaryResourceSet, isReadOnly, isResourceActivated, isResourceConflict, isResourceDemandLoaded, isResourceLoaded, isScrollableMessageDelegateAvailable, isShowCanonicalValidationMessages, isSuppressModifiedFlagUpdates, isSuppressPostLoad, isTransactionInProgress, isValid, isValid, loadResource, loadResource, loadResource, newInstance, noOperation, postLoad, postMethod, postMethod, postsave, preMethod, redo, reloadResource, remapResource, remapResource, removeBatchedModelListener, removeLowLevelModelListener, removeModelListener, removeResource, removeResourceListener, removeView, renameResource, rollbackTransaction, saveAll, saveResource, setAnnotation, setAPIContextObject, setAPIState, setBuildNumber, setEditingDomain, setInhibitNotification, setLocale, setMajorServiceNumber, setMajorVersionNumber, setMessageBoxDelegate, setMinorServiceNumber, setMinorVersionNumber, setModelAPIState, setModelListeners, setPassive, setPersistenceServicesDelegate, setPostLoadInProgress, setPreferencesDelegate, setPrimaryResource, setReadOnly, setScrollableMessageDelegate, setSupportedLocales, setSuppressBrokenLinkValidation, setSuppressModifiedFlagUpdates, setSuppressPostLoad, setSuppressValidation, setUserInterfaceInfoDelegate, undo, unloadResource, validate, validateLicense`

- - ### Field Detail

    - #### DIAGRAM_ID_RULEFLOW

          static final int DIAGRAM_ID_RULEFLOW

      Int used to track ID of Ruleflow Diagram.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_OK

          static final int DRAG_FEEDBACK_OK

      Int used to track Drag and Drop Feedback.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_DESTINATION_BAD_STATE

          static final int DRAG_FEEDBACK_DESTINATION_BAD_STATE

      Int used to track feedback for destination due to bad state of a drag.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_INVALID_TARGET

          static final int DRAG_FEEDBACK_INVALID_TARGET

      Int used to track feedback for dragging a object onto a invalid target.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_ACTIVITY_ALREADY_EXISTS

          static final int DRAG_FEEDBACK_ACTIVITY_ALREADY_EXISTS

      Int used to track feedback for dragging an object that already contains the dragged object.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_DRAG_SOURCE_NOT_RESOURCE_URI

          static final int DRAG_FEEDBACK_DRAG_SOURCE_NOT_RESOURCE_URI

      Int used to track feedback of dragging object without URI to represent object.
      See Also:
        Constant Field Values

    - #### DRAG_FEEDBACK_DRAG_SOURCE_NOT_RULESHEET_OR_RULEFLOW

          static final int DRAG_FEEDBACK_DRAG_SOURCE_NOT_RULESHEET_OR_RULEFLOW

      Int used to track feedback of source not being rulesheet or ruleflow.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### addActivityShape

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addActivityShape(org.eclipse.emf.common.util.URI aURIRuleActivity,
                                                                                                Coordinates aCoordinates)

      Add a new ActivityShape to the diagram at the specified Coordinates.
      Parameters:
        `aURIRuleActivity` - URI of Rulesheet that the new ActivityShape will represent, or null if URI is not known yet.
        `aCoordinates` - Coordinates where new shape will be added or `null`.
      Returns:
        ActivityShape created.
      Throws:
        `java.lang.IllegalArgumentException` - if ruleflow is being added to ruleflow (nesting of ruleflows isn't supported)

    - #### addActivityShapes

          boolean addActivityShapes(TreeviewSelection aTreeviewSelection,
                                  Coordinates aCoordinates)

      Given a TreeviewSelection (of URIs representing Rulesheet and/or Ruleflow assets), add multiple ActivityShape instances to the diagram starting at the specified Coordinates.
      Parameters:
        `aTreeviewSelection` - TreeviewSelection of Rulesheet and/or Ruleflow assets.
        `aCoordinates` - Coordinates where new shapes will be added.
      Returns:
        `true` if the command was successful.

    - #### addConnectorShape

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addConnectorShape(java.lang.String astrConnectorClass,
                                                                                                 java.lang.String astrConnectorService,
                                                                                                 Coordinates aCoordinates)

      Add a new ConnectorShape to the diagram.
      Parameters:
        `aConnectorClass` - Connector class name.
        `aConnectorService` - Connector service name.
        `aCoordinates` - Coordinates where Connector is to be positioned, or `null`.
      Returns:
        New ActivityShape representing added Connector.

    - #### addConnectorToSubflow

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addConnectorToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent,
                                                                                                     java.lang.String astrConnectorClass,
                                                                                                     java.lang.String astrConnectorService,
                                                                                                     Coordinates aCoordinates)

      Add Connector to a specific Subflow.
      Parameters:
        `aSubflowParent` - Subflow parent.
        `aConnectorClass` - Connector class name.
        `aConnectorService` - Connector service name.
        `aCoordinates` - Coordinates where Connector is to be positioned, or null.
      Returns:
        New ActivityShape representing added Connector.

    - #### addFlowEdge

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowEdge addFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource,
                                                                                      com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)

      Add a standard FlowEdge to the diagram. Before adding, calls isValidConnection to make sure this connection is valid.
      Parameters:
        `aFlowShapeSource` - Source FlowShape instance.
        `aFlowShapeTarget` - Target FlowShape instance.
      Returns:
        New FlowEdge or `null` if an error occurs.

    - #### addInitiateShape

          boolean addInitiateShape(Coordinates aCoordinates)

      Add a new InitiateShape to the diagram.
      Parameters:
        `aCoordinates` - Coordinates of new shape.
      Returns:
        `true` if the command was successful.

    - #### addLoopbackEdge

          boolean addLoopbackEdge()

      Add a LoopbackEdge to the diagram. This special type of edge is only used to connect the last Rulesheet in the diagram with the first, indicating that Ruleflow looping should be enabled.
      Returns:
        `true` if the command was successful.

    - #### addRulesheetToSubflow

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addRulesheetToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent,
                                                                                                     org.eclipse.emf.common.util.URI aRulesheetURI,
                                                                                                     Coordinates aCoordinates)

      Add Rulesheet to Subflow.
      Parameters:
        `aSubflowParent` - Subflow parent
        `aRulesheetURI` - Rulesheet URI, or `null` if it's not known yet.
        `aCoordinates` - Coordinates where Rulesheet is to be positioned, or `null`.
      Returns:
        New ActivityShape representing added Rulesheet.

    - #### addSubflow

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addSubflow(Coordinates aCoordinates)

      Add a Subflow at the specified coordinates
      Parameters:
        `aCoordinates` - Coordinates of new Subflow.
      Returns:
        New ActivityShape representing added Subflow.

    - #### addSubflowToSubflow

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape addSubflowToSubflow(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Subflow aSubflowParent,
                                                                                                   Coordinates aCoordinates)

      Add Subflow to Subflow.
      Parameters:
        `aSubflowParent` - Subflow parent.
        `aCoordinates` - Coordinates where Subflow is to be positioned, or `null`.
      Returns:
        New ActivityShape representing added Subflow.

    - #### addTerminateShape

          boolean addTerminateShape(Coordinates aCoordinates)

      Add a new TerminateShape to the diagram.
      Parameters:
        `aCoordinates` - Coordinates of new shape.
      Returns:
        `true` if the command was successful.

    - #### copy

          void copy(DiagramSelection aDiagramSelection)

      Copy the selected objects to the system clipboard.
      Parameters:
        `aDiagramSelection` - DiagramSelection to copy.

    - #### cut

          void cut(DiagramSelection aDiagramSelection)

      Cut the selected objects to the system clipboard.
      Parameters:
        `aDiagramSelection` - DiagramSelection to cut.

    - #### delete

          void delete(DiagramSelection aDiagramSelection)

      Delete the selected objects.
      Parameters:
        `aDiagramSelection` - DiagramSelection to delete.

    - #### drag

          boolean drag(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape,
                     Coordinates aCoordinates)

      Drag a FlowShape to the specified Coordinates.
      Parameters:
        `aFlowShape` - FlowShape to be dragged.
        `aCoordinates` - New Coordinates.

    - #### findFlowDiagram

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowDiagram findFlowDiagram()

      Finder for FlowDiagram.
      Returns:
        Instance of FlowDiagram.

    - #### findFlowShapeByGUID

          com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape findFlowShapeByGUID(java.lang.String astrGUID)

      Finder to return a FlowShape corresponding to a specified GUID.
      Parameters:
        `astrGUID` - String GUID to use as key for search.
      Returns:
        FlowShape instance matching specified GUID or `null` if no match could be found.

    - #### getConnectorClass

          java.lang.String getConnectorClass(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector)

      Returns the class name associated with the specified ActivtyShape (Connector).
      Parameters:
        `aActivityShapeConnector` - ActivityShape (Connector).
      Returns:
        Connector class name.

    - #### getConnectorService

          java.lang.String getConnectorService(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector)

      Returns the service name associated with the specified ActivtyShape (Connector).
      Parameters:
        `aActivityShapeConnector` - ActivityShape (Connector).
      Returns:
        Connector service name.

    - #### getCoordinates

          Coordinates getCoordinates(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)

      Return the coordinates of a specified FlowShape.
      Parameters:
        `aFlowShape` - FlowShape whose coordinates are to be returned.
      Returns:
        Coordinates of specified FlowShape.

    - #### getDimensions

          Dimensions getDimensions(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)

      Return the dimensions of a specified FlowShape.
      Parameters:
        `aFlowShape` - FlowShape whose coordinates are to be returned.
      Returns:
        Dimensions of specified FlowShape.

    - #### getDragFeedback

          java.util.List getDragFeedback(DiagramSelection aDiagramSelection,
                                       Coordinates aCoordinates)

      Given a DiagramSelection (consisting of FlowShape instances), and Coordinates, return an ArrayList of feedback codes (type Integer) corresponding to the order of the shapes specified in the DiagramSelection. Each feedback code indicates whether the given shape could be successfully dropped. An ArrayList consisting of all zero values indicates that the drop would be permitted.
      Parameters:
        `aDiagramSelection` - Selection of FlowShape instances.
        `aCoordinates` - Mouse coordinates.
      Returns:
        Drag feedback code.

    - #### getDragFeedback

          int getDragFeedback(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape,
                            Coordinates aCoordinates)

      Given a FlowShape instance and a target Coordinates, return feedback generate feedback regarding whether the shape can be successfully dropped at the specified position.
      Parameters:
        `aFlowShape` - FlowShape being dragged.
        `aCoordinates` - Coordinates where FlowShape would be dropped.
      Returns:
        Drag feedback code.

    - #### getListEntityNames

          java.util.List getListEntityNames()

      Return a list of localized fully-qualified entity names in the Vocabulary, including a blank item.
      Returns:
        List of all entity names (fully-qualified).

    - #### getListServiceCalloutNames

          java.util.List<java.lang.String> getListServiceCalloutNames(boolean abIncludeBlankItem,
                                                                    boolean abBase)

      Return a list of base or localized fully-qualified service call-out names culled from the extended operators. The list may optionally include a blank value at the top.
      Parameters:
        `abIncludeBlankItem` - `true` to include blank item.
        `abBase` - `true` to return base values.
      Returns:
        List of all service call-out names.

    - #### getName

          java.lang.String getName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)

      Return the name of a specified FlowShape.
      Parameters:
        `aFlowShape` - FlowShape whose name is to be returned.
      Returns:
        Name of specified FlowShape.

    - #### getRulesheetURI

          org.eclipse.emf.common.util.URI getRulesheetURI(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape)

      Get URI of a supplied Rulesheet ActivityShape.
      Parameters:
        `aActivityShape` - Rulesheet shape
      Returns:
        URI, or `null` if there is no URI or the shape is not a Rulesheet shape.

    - #### getServiceCalloutDescription

          java.lang.String getServiceCalloutDescription(java.lang.String astrServiceCalloutName,
                                                      boolean abInputBase)

      Given a Service Call-out name, return the localized Service Call-out description.
      Parameters:
        `astrServiceCalloutName` - Fully-qualified Service Call-out name.
        `abInputBase` - `true` if Service Call-out name is expressed in base form.
      Returns:
        Localized service Call-out description.

    - #### getServiceCalloutName

          java.lang.String getServiceCalloutName(java.lang.String astrServiceCalloutName,
                                               boolean abInputBase)

      Convert a base Service Call-out name to localized form or vice-versa.
      Parameters:
        `astrServiceCalloutName` - Fully-qualified Service Call-out name.
        `abInputBase` - `true` if Service Call-out name is expressed in base form.
      Returns:
        Base or localized Service Call-out name.

    - #### getShapes

          java.util.Collection getShapes(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlow)

      Given a Ruleflow/Subflow get all FlowShape instances contained within it. This method is non-recursive; if a Subflow has nested Subflow instances, it will only return immediate children of the Subflow (i.e., without grandchildren).
      Parameters:
        `aFlow` - Ruleflow or Subflow.
      Returns:
        Collection of FlowShape instances contained within the given Ruleflow/Subflow.

    - #### getShapesSequence

          java.util.List getShapesSequence(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlow)

      Get a sequence of activity shapes, in the order of execution, as defined by edges (arrows) connecting the shapes.
      Parameters:
        `aFlow` - Flow whose activities are to be returned.
      Returns:
        List of ActvitiyShape instances.

    - #### hasRulesheet

          boolean hasRulesheet(org.eclipse.emf.common.util.URI aURI)

      Check if Ruleflow contains a given Rulesheet.
      Parameters:
        `aURI` - Rulesheet URI.
      Returns:
        `true` if this Ruleflow contains the specified Rulesheet.

    - #### isAllowedAddActivityShape

          boolean isAllowedAddActivityShape(org.eclipse.emf.common.util.URI aURIRuleActivity,
                                          Coordinates aCoordinates)

      Determine whether a RuleActivity representing the specified Rulesheet or Ruleflow could be added to the diagram at the specified Coordinates.
      Parameters:
        `aURIRuleActivity` - URI of Ruleflow or Rulesheet of new shape.
        `aCoordinates` - Coordinates where shape would be dropped.
      Returns:
        `true` if function should be enabled.

    - #### isAllowedAddActivityShapes

          boolean isAllowedAddActivityShapes(TreeviewSelection aTreeviewSelection,
                                           Coordinates aCoordinates)

      Given a TreeviewSelection consisting of one or more URIs that represent Rulesheet and/or Ruleflow assets, determine whether *all* of the assets can be successfully dropped onto the diagram as RuleActivity shapes. The system will return `false` if any of the drops would be invalid.
      Parameters:
        `aTreeviewSelection` - TreeviewSelection consisting of one or more URI instances.
        `aCoordinates` - Coordinates where RuleActivity shapes should be added.
      Returns:
        `true` if function should be enabled.

    - #### isAllowedAddFlowEdge

          boolean isAllowedAddFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource,
                                     com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)

      Determine whether a standard FlowEdge can be added to the diagram.
      Parameters:
        `aFlowShapeSource` - Source FlowShape instance.
        `aFlowShapeTarget` - Target FlowShape instance.
      Returns:
        `true` if function should be enabled.

    - #### isAllowedAddInitiateShape

          boolean isAllowedAddInitiateShape(Coordinates aCoordinates)

      Determine whether an InitiateShape can be added to the diagram.
      Parameters:
        `aCoordinates` - Coordinates where new shape will be added.
      Returns:
        `true` if function should be enabled.

    - #### isAllowedAddLoopbackEdge

          boolean isAllowedAddLoopbackEdge()

      Determine whether a LoopbackEdge can be added to the diagram.
      Returns:
        `true` if function should be enabled.

    - #### isAllowedAddTerminateShape

          boolean isAllowedAddTerminateShape(Coordinates aCoordinates)

      Determine whether a TerminateShape can be added to the diagram.
      Parameters:
        `aCoordinates` - Coordinates where new shape will be added.
      Returns:
        `true` if function should be enabled.

    - #### isEnabled

          boolean isEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape)

      Check if ActivityShape is enabled.
      Parameters:
        `aActivityShape` - ActivityShape to be tested.
      Returns:
        `true` if ActivityShape is enabled.

    - #### isEnabledCopy

          boolean isEnabledCopy(DiagramSelection aDiagramSelection)

      Determine whether copy function is enabled.
      Parameters:
        `aDiagramSelection` - DiagramSelection instance.
      Returns:
        `true` if function should be enabled.

    - #### isEnabledCut

          boolean isEnabledCut(DiagramSelection aDiagramSelection)

      Determine whether cut function is enabled.
      Parameters:
        `aDiagramSelection` - DiagramSelection instance.
      Returns:
        `true` if function should be enabled.

    - #### isEnabledDelete

          boolean isEnabledDelete(DiagramSelection aDiagramSelection)

      Determine whether delete function is enabled.
      Parameters:
        `aDiagramSelection` - DiagramSelection instance.
      Returns:
        `true` if function should be enabled.

    - #### isEnabledPaste

          boolean isEnabledPaste(DiagramSelection aDiagramSelection)

      Determine whether paste function is enabled.
      Parameters:
        `aDiagramSelection` - DiagramSelection instance.
      Returns:
        `true` if function should be enabled.

    - #### isEnabledReport

          boolean isEnabledReport()

      Determine whether report function is enabled.
      Returns:
        `true` if function should be enabled.

    - #### isIterative

          boolean isIterative(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aShape)

      Determines whether the specified ActivityShape is iterative.
      Parameters:
        `aActivityShape` - ActivityShape to be tested.
      Returns:
        `true` if ActivityShape is iterative.

    - #### isRulesheet

          boolean isRulesheet(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)

      Determines whether the specified FlowShape represents a Rulesheet.
      Parameters:
        `aFlowShape` - FlowShape to be tested.
      Returns:
        `true` if FlowShape is a Rulesheet.

    - #### isSubflow

          boolean isSubflow(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aShape)

      Determines whether the specified FlowShape represents a Subflow.
      Parameters:
        `aFlowShape` - FlowShape to be tested.
      Returns:
        `true` if FlowShape is a Subflow.

    - #### isValidConnection

          boolean isValidConnection(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeSource,
                                  com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShapeTarget)

      Check if a connection between two shapes is valid. Look for things like invalid connections across subflows, more than one outgoing connection etc.
      Parameters:
        `aFlowShapeSource` - Source FlowShape.
        `aFlowShapeTarget` - Target FlowShape.
      Returns:
        `true` if connection between shapes is valid.

    - #### moveNode

          boolean moveNode(com.corticon.rulesemf.canonicalrulemodel.ruleflow.Flow aFlowParent,
                         com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape,
                         Coordinates aCoordinates)

      Move shape to a different Subflow, or to top-level in Ruleflow. Ruleflow is the top-level container, containing Subflows. If shape has connections to other shapes, they are removed.
      Parameters:
        `aFlowParent` - Destination Subflow or Ruleflow; if `null` shape will be moved to top level. (same as passing in the Ruleflow).
        `aFlowParent` - Shape parent.
        `aActivityShape` - ActivityShape to be moved.
        `aCoordinates` - New coordinates.
      Returns:
        `true` command was successful.

    - #### paste

          java.util.Collection paste(DiagramSelection aDiagramSelection)

      Paste the system clipboard into the selected area.
      Parameters:
        `aDiagramSelection` - DiagramSelection instance.
      Returns:
        Collection of pasted shapes

    - #### removeFlowEdge

          boolean removeFlowEdge(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowEdge aFlowEdge)

      Remove a FlowEdge from the diagram.
      Parameters:
        `aFlowEdge` - FlowEdge to be removed.
      Returns:
        `true` if the command was successful.

    - #### removeFlowShape

          boolean removeFlowShape(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape)

      Remove a FlowShape from the diagram.
      Parameters:
        `aFlowShape` - FlowShape to be removed.
      Returns:
        `true` if the command was successful.

    - #### reset

          void reset()

      Completely reset the diagram to its initial state.

    - #### setConnectorClass

          boolean setConnectorClass(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector,
                                  java.lang.String astrConnectorClass)

      Set the connector class of the specified ActivityShape (Connector).
      Parameters:
        `aActivityShapeConnector` - ActivityShape to be updated.
        `astrConnectorClass` - Connector class name.
      Returns:
        `true` if the command was successful.

    - #### setConnectorService

          boolean setConnectorService(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShapeConnector,
                                    java.lang.String astrConnectorService)

      Set the connector service of the specified ActivityShape (Connector).
      Parameters:
        `aActivityShapeConnector` - ActivityShape to be updated.
        `astrConnectorService` - Connector service name.
      Returns:
        `true` if the command was successful.

    - #### setCoordinates

          boolean setCoordinates(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape,
                               Coordinates aCoordinates)

      Set the coordinates of a specified shape.
      Parameters:
        `aFlowShape` - FlowShape to be updated.
        `aCoordinates` - Coordinates of shape.
      Returns:
        `true` if the command was successful.

    - #### setDimensions

          boolean setDimensions(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape,
                              Dimensions aDimensions)

      Update the dimensions of a specified shape.
      Parameters:
        `aFlowShape` - FlowShape to be updated.
        `aDimensions` - New dimensions.
      Returns:
        `true` if the command was successful.

    - #### setEnabled

          boolean setEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape,
                           boolean abEnabled)

      Set enabled/disable state for the activity shape.
      Parameters:
        `aActivityShape` - Activity shape whose enable/disable state should be toggled.
        `abEnabled` - `true` to enable shape.
      Returns:
        `true` if command was successful.

    - #### setIterative

          boolean setIterative(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape,
                             boolean abIterative)

      Set iterative flag of the specified ActivityShape.
      Parameters:
        `aActivityShape` - ActivityShape whose iterative flag is to be set.
        `abIterative` - Iterative value `true` or `false/`.``
      Returns:
        `true` if command was successful.

    - #### setLogicalLoopEnabled

          boolean setLogicalLoopEnabled(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape,
                                      boolean abLogicalLoopEnabled)

      Set the logical loop indicator for a given ActivityShape. This call will set the logical loop indicator in the underlying Rulesheet asset.
      Parameters:
        `aActivityShape` - ActivityShape to update.
        `abLogicalLoopEnabled` - `true` to enable logical loop.
      Returns:
        `true` if the command was successful.

    - #### setName

          boolean setName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.FlowShape aFlowShape,
                        java.lang.String astrName)

      Set name of the specified FlowShape.
      Parameters:
        `aFlowShape` - FlowShape whose name is to be set.
        `astrName` - Name of FlowShape.
      Returns:
        `true` if the command was successful.

    - #### setRulesheetURI

          boolean setRulesheetURI(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aShape,
                                org.eclipse.emf.common.util.URI aURI)

      Set URI on a Rulesheet shape.
      Parameters:
        `aShape` - Rulesheet shape.
        `aURI` - Rulesheet URI.
      Returns:
        `true` if the command was successful.
      Throws:
        `java.lang.IllegalArgumentException` - if URI points to an invalid resource, or shape is a Subflow.

    - #### setSelection

          boolean setSelection(DiagramSelection aDiagramSelection)

      Set the selection state.
      Parameters:
        `aDiagramSelection` - Selection instance bearing selection state information.
      Returns:
        `true` if the set command was successful.

    - #### setServiceCalloutName

          boolean setServiceCalloutName(com.corticon.rulesemf.viewrulemodel.ruleflow.flowdiagram.ActivityShape aActivityShape,
                                      java.lang.String astrServiceCalloutName,
                                      boolean abInputBase)

      Set the Service Call-out name of the specified ActivityShape. The name may be specified in either base or localized form.
      Parameters:
        `aActivityShape` - ActivityShape instance.
        `astrServiceCalloutName` - Service Call-out name.
        `abInputBase` - `true` if Service Call-out name is specified in base form.
      Returns:
        `true` if the command was successful.

Copyright © 2005-2013 Progress Software Corporation and/or its subsidiaries and affiliates. All rights reserved.