package rose;

import com.linar.jintegra.*;
/**
 * Proxy for COM Interface 'IRoseState'. Generated 1/31/00 1:50:03 PM
 * from 'C:\Program Files\Rational\Rose 2000\rationalrose.tlb'<P>
 * Generated using version 1.3.1  of <B>J-Integra[tm]</B> -- pure Java/COM integration technology from Linar Ltd.
 * See  <A HREF="http://www.linar.com/">http://www.linar.com/</A><P>
 */
public class IRoseStateProxy extends com.linar.jintegra.Dispatch implements IRoseState {

  protected String getJintegraVersion() { return "1.3.1"; }

  public static final Class targetClass = rose.IRoseState.class;

  public IRoseStateProxy(String CLSID, String host, AuthInfo authInfo) throws java.net.UnknownHostException, java.io.IOException{
    super(CLSID, IRoseState.IID, host, authInfo);
  }

  /** For internal use only */
  public IRoseStateProxy() {}

  public IRoseStateProxy(Object obj) throws java.io.IOException {
    super(obj, IRoseState.IID);
  }

  protected IRoseStateProxy(Object obj, String iid) throws java.io.IOException {
    super(obj, iid);
  }

  protected IRoseStateProxy(String CLSID, String iid, String host, AuthInfo authInfo) throws java.io.IOException {
    super(CLSID, iid, host, authInfo);
  }

  public void addListener(String iidStr, Object theListener, Object theSource) throws java.io.IOException {
    super.addListener(iidStr, theListener, theSource);
  }

  public void removeListener(String iidStr, Object theListener) throws java.io.IOException {
    super.removeListener(iidStr, theListener);
  }

  /**
   * getPropertyByName. Get the value of a property dynamically at run-time, based on its name
   *
   * @return    return value.  The value of the property.
   * @param     name. The name of the property to get.
   * @exception java.lang.NoSuchFieldException If the property does not exit.
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public Object getPropertyByName(String name) throws NoSuchFieldException, java.io.IOException, com.linar.jintegra.AutomationException {
    com.linar.jintegra.Variant parameters[] = {};
    return super.invoke(name, super.getDispatchIdOfName(name), 2, parameters).getVARIANT();
  }

  /**
   * getPropertyByName. Get the value of a property dynamically at run-time, based on its name and a parameter value
   *
   * @return    return value.  The value of the property.
   * @param     name. The name of the property to get.
   * @param     rhs. Parameter used when getting the property.
   * @exception java.lang.NoSuchFieldException If the property does not exit.
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public Object getPropertyByName(String name, Object rhs) throws NoSuchFieldException, java.io.IOException, com.linar.jintegra.AutomationException {
    com.linar.jintegra.Variant parameters[] = {rhs == null ? new Variant("rhs", 10, 0x80020004L) : new Variant("rhs", 12, rhs)};
    return super.invoke(name, super.getDispatchIdOfName(name), 2, parameters).getVARIANT();
  }

  /**
   * invokeMethodByName. Invoke a method dynamically at run-time
   *
   * @return    return value.  The value returned by the method (null if none).
   * @param     name. The name of the method to be invoked
   * @param     parameters.  One element for each parameter.  Use primitive type wrappers
   *            to pass primitive types (eg Integer to pass an int).
   * @exception java.lang.NoSuchMethodException If the method does not exit.
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public Object invokeMethodByName(String name, Object[] parameters) throws NoSuchMethodException, java.io.IOException, com.linar.jintegra.AutomationException {
    com.linar.jintegra.Variant variantParameters[] = new com.linar.jintegra.Variant[parameters.length];
    for(int i = 0; i < parameters.length; i++) {
      variantParameters[i] = parameters[i] == null ? new Variant("p" + i, 10, 0x80020004L) :
	                                                   new Variant("p" + i, 12, parameters[i]);
    }
    try {
      return super.invoke(name, super.getDispatchIdOfName(name), 1, variantParameters).getVARIANT();
    } catch(NoSuchFieldException nsfe) {
      throw new NoSuchMethodException("There is no method called " + name);
    }
  }

  /**
   * getName. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getName  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getName", 100, 2, parameters).getBSTR();
  }

  /**
   * setName. 
   *
   * @param     rhs The rhs)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setName  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setName", 100, 4, parameters);
    return;
  }

  /**
   * getDocumentation. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getDocumentation  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getDocumentation", 203, 2, parameters).getBSTR();
  }

  /**
   * setDocumentation. 
   *
   * @param     rhs The rhs)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setDocumentation  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setDocumentation", 203, 4, parameters);
    return;
  }

  /**
   * getStereotype. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getStereotype  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getStereotype", 212, 2, parameters).getBSTR();
  }

  /**
   * setStereotype. 
   *
   * @param     rhs The rhs)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setStereotype  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setStereotype", 212, 4, parameters);
    return;
  }

  /**
   * getExternalDocuments. 
   *
   * @return    return value.  An reference to a IRoseExternalDocumentCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseExternalDocumentCollection getExternalDocuments  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getExternalDocuments", 213, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseExternalDocumentCollectionProxy(res);
  }

  /**
   * setExternalDocuments. 
   *
   * @param     rhs An reference to a IRoseExternalDocumentCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setExternalDocuments  (
              rose.IRoseExternalDocumentCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setExternalDocuments", 213, 4, parameters);
    return;
  }

  /**
   * getParentStateMachine. 
   *
   * @return    return value.  An reference to a IRoseStateMachine
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateMachine getParentStateMachine  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getParentStateMachine", 413, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateMachineProxy(res);
  }

  /**
   * setParentStateMachine. 
   *
   * @param     rhs An reference to a IRoseStateMachine)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setParentStateMachine  (
              rose.IRoseStateMachine rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setParentStateMachine", 413, 4, parameters);
    return;
  }

  /**
   * getHistory. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean getHistory  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getHistory", 421, 2, parameters).getBOOL();
  }

  /**
   * setHistory. 
   *
   * @param     rhs The rhs)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setHistory  (
              boolean rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 11, rhs),};
    invoke("setHistory", 421, 4, parameters);
    return;
  }

  /**
   * getTransitions. 
   *
   * @return    return value.  An reference to a IRoseTransitionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseTransitionCollection getTransitions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getTransitions", 422, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseTransitionCollectionProxy(res);
  }

  /**
   * setTransitions. 
   *
   * @param     rhs An reference to a IRoseTransitionCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setTransitions  (
              rose.IRoseTransitionCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setTransitions", 422, 4, parameters);
    return;
  }

  /**
   * getStateKind. 
   *
   * @return    return value.  A reference to another Automation Object (IDispatch)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public Object getStateKind  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getStateKind", 423, 2, parameters).getDISPATCH();
  }

  /**
   * setStateKind. 
   *
   * @param     rhs A reference to another Automation Object (IDispatch))
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setStateKind  (
              Object rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setStateKind", 423, 4, parameters);
    return;
  }

  /**
   * getSubStates. 
   *
   * @return    return value.  An reference to a IRoseStateCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateCollection getSubStates  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getSubStates", 444, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateCollectionProxy(res);
  }

  /**
   * setSubStates. 
   *
   * @param     rhs An reference to a IRoseStateCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setSubStates  (
              rose.IRoseStateCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setSubStates", 444, 4, parameters);
    return;
  }

  /**
   * getApplication. 
   *
   * @return    return value.  A reference to another Automation Object (IDispatch)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public Object getApplication  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getApplication", 12523, 2, parameters).getDISPATCH();
  }

  /**
   * setApplication. 
   *
   * @param     rhs A reference to another Automation Object (IDispatch))
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setApplication  (
              Object rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setApplication", 12523, 4, parameters);
    return;
  }

  /**
   * getModel. 
   *
   * @return    return value.  An reference to a IRoseModel
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseModel getModel  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getModel", 12524, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseModelProxy(res);
  }

  /**
   * setModel. 
   *
   * @param     rhs An reference to a IRoseModel)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setModel  (
              rose.IRoseModel rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setModel", 12524, 4, parameters);
    return;
  }

  /**
   * getLocalizedStereotype. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getLocalizedStereotype  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getLocalizedStereotype", 12554, 2, parameters).getBSTR();
  }

  /**
   * setLocalizedStereotype. 
   *
   * @param     rhs The rhs)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setLocalizedStereotype  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setLocalizedStereotype", 12554, 4, parameters);
    return;
  }

  /**
   * getParent. 
   *
   * @return    return value.  An reference to a IRoseStateVertex
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateVertex getParent  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getParent", 12747, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateVertexProxy(res);
  }

  /**
   * setParent. 
   *
   * @param     rhs An reference to a IRoseStateVertex)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setParent  (
              rose.IRoseStateVertex rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setParent", 12747, 4, parameters);
    return;
  }

  /**
   * getStateMachineOwner. 
   *
   * @return    return value.  An reference to a IRoseStateMachineOwner
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateMachineOwner getStateMachineOwner  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getStateMachineOwner", 12790, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateMachineOwnerProxy(res);
  }

  /**
   * setStateMachineOwner. 
   *
   * @param     rhs An reference to a IRoseStateMachineOwner)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setStateMachineOwner  (
              rose.IRoseStateMachineOwner rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setStateMachineOwner", 12790, 4, parameters);
    return;
  }

  /**
   * getSubActivities. 
   *
   * @return    return value.  An reference to a IRoseActivityCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActivityCollection getSubActivities  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getSubActivities", 12802, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseActivityCollectionProxy(res);
  }

  /**
   * setSubActivities. 
   *
   * @param     rhs An reference to a IRoseActivityCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setSubActivities  (
              rose.IRoseActivityCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setSubActivities", 12802, 4, parameters);
    return;
  }

  /**
   * getSubDecisions. 
   *
   * @return    return value.  An reference to a IRoseDecisionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseDecisionCollection getSubDecisions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getSubDecisions", 12803, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseDecisionCollectionProxy(res);
  }

  /**
   * setSubDecisions. 
   *
   * @param     rhs An reference to a IRoseDecisionCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setSubDecisions  (
              rose.IRoseDecisionCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setSubDecisions", 12803, 4, parameters);
    return;
  }

  /**
   * getSubSynchronizations. 
   *
   * @return    return value.  An reference to a IRoseSyncItemCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseSyncItemCollection getSubSynchronizations  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getSubSynchronizations", 12804, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseSyncItemCollectionProxy(res);
  }

  /**
   * setSubSynchronizations. 
   *
   * @param     rhs An reference to a IRoseSyncItemCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setSubSynchronizations  (
              rose.IRoseSyncItemCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setSubSynchronizations", 12804, 4, parameters);
    return;
  }

  /**
   * getUniqueID. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getUniqueID  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getUniqueID", 102, 1, parameters).getBSTR();
  }

  /**
   * getCurrentPropertySetName. 
   *
   * @param     ToolName The ToolName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getCurrentPropertySetName  (
              String ToolName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ToolName", 8, ToolName),};
    return invoke("getCurrentPropertySetName", 109, 1, parameters).getBSTR();
  }

  /**
   * overrideProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @param     theValue The theValue (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean overrideProperty  (
              String theToolName,
              String thePropName,
              String theValue) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),
                                         new Variant("theValue", 8, theValue),};
    return invoke("overrideProperty", 110, 1, parameters).getBOOL();
  }

  /**
   * inheritProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean inheritProperty  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    return invoke("inheritProperty", 111, 1, parameters).getBOOL();
  }

  /**
   * getPropertyValue. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getPropertyValue  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    return invoke("getPropertyValue", 119, 1, parameters).getBSTR();
  }

  /**
   * getDefaultPropertyValue. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getDefaultPropertyValue  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    return invoke("getDefaultPropertyValue", 120, 1, parameters).getBSTR();
  }

  /**
   * findProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  An reference to a IRoseProperty
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseProperty findProperty  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    Object res = invoke("findProperty", 121, 1, parameters).getDISPATCH();
    return res == null ? null : new IRosePropertyProxy(res);
  }

  /**
   * getAllProperties. 
   *
   * @return    return value.  An reference to a IRosePropertyCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRosePropertyCollection getAllProperties  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllProperties", 122, 1, parameters).getDISPATCH();
    return res == null ? null : new IRosePropertyCollectionProxy(res);
  }

  /**
   * getToolProperties. 
   *
   * @param     theToolName The theToolName (in)
   * @return    return value.  An reference to a IRosePropertyCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRosePropertyCollection getToolProperties  (
              String theToolName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),};
    Object res = invoke("getToolProperties", 123, 1, parameters).getDISPATCH();
    return res == null ? null : new IRosePropertyCollectionProxy(res);
  }

  /**
   * isOverriddenProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean isOverriddenProperty  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    return invoke("isOverriddenProperty", 124, 1, parameters).getBOOL();
  }

  /**
   * isDefaultProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean isDefaultProperty  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    return invoke("isDefaultProperty", 125, 1, parameters).getBOOL();
  }

  /**
   * findDefaultProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @return    return value.  An reference to a IRoseProperty
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseProperty findDefaultProperty  (
              String theToolName,
              String thePropName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),};
    Object res = invoke("findDefaultProperty", 126, 1, parameters).getDISPATCH();
    return res == null ? null : new IRosePropertyProxy(res);
  }

  /**
   * createProperty. 
   *
   * @param     theToolName The theToolName (in)
   * @param     thePropName The thePropName (in)
   * @param     theValue The theValue (in)
   * @param     theType The theType (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean createProperty  (
              String theToolName,
              String thePropName,
              String theValue,
              String theType) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theToolName", 8, theToolName),
                                         new Variant("thePropName", 8, thePropName),
                                         new Variant("theValue", 8, theValue),
                                         new Variant("theType", 8, theType),};
    return invoke("createProperty", 127, 1, parameters).getBOOL();
  }

  /**
   * getPropertyClassName. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getPropertyClassName  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getPropertyClassName", 128, 1, parameters).getBSTR();
  }

  /**
   * getDefaultSetNames. 
   *
   * @param     ToolName The ToolName (in)
   * @return    return value.  An reference to a IRoseStringCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStringCollection getDefaultSetNames  (
              String ToolName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ToolName", 8, ToolName),};
    Object res = invoke("getDefaultSetNames", 129, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStringCollectionProxy(res);
  }

  /**
   * getToolNames. 
   *
   * @return    return value.  An reference to a IRoseStringCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStringCollection getToolNames  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getToolNames", 130, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStringCollectionProxy(res);
  }

  /**
   * setCurrentPropertySetName. 
   *
   * @param     ToolName The ToolName (in)
   * @param     SetName The SetName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean setCurrentPropertySetName  (
              String ToolName,
              String SetName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ToolName", 8, ToolName),
                                         new Variant("SetName", 8, SetName),};
    return invoke("setCurrentPropertySetName", 131, 1, parameters).getBOOL();
  }

  /**
   * getRoseItem. 
   *
   * @return    return value.  An reference to a IRoseItem
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseItem getRoseItem  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getRoseItem", 207, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseItemProxy(res);
  }

  /**
   * addExternalDocument. 
   *
   * @param     szName The szName (in)
   * @param     iType The iType (in)
   * @return    return value.  An reference to a IRoseExternalDocument
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseExternalDocument addExternalDocument  (
              String szName,
              short iType) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("szName", 8, szName),
                                         new Variant("iType", 2, iType),};
    Object res = invoke("addExternalDocument", 214, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseExternalDocumentProxy(res);
  }

  /**
   * deleteExternalDocument. 
   *
   * @param     pIDispatch An reference to a IRoseExternalDocument (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteExternalDocument  (
              rose.IRoseExternalDocument pIDispatch) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("pIDispatch", 9, pIDispatch),};
    return invoke("deleteExternalDocument", 215, 1, parameters).getBOOL();
  }

  /**
   * openSpecification. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean openSpecification  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("openSpecification", 216, 1, parameters).getBOOL();
  }

  /**
   * getAllSubStates. 
   *
   * @return    return value.  An reference to a IRoseStateCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateCollection getAllSubStates  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllSubStates", 425, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateCollectionProxy(res);
  }

  /**
   * addTransition. 
   *
   * @param     OnEvent The OnEvent (in)
   * @param     Target An reference to a IRoseState (in)
   * @return    return value.  An reference to a IRoseTransition
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseTransition addTransition  (
              String OnEvent,
              rose.IRoseState Target) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("OnEvent", 8, OnEvent),
                                         new Variant("Target", 9, Target),};
    Object res = invoke("addTransition", 426, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseTransitionProxy(res);
  }

  /**
   * deleteTransition. 
   *
   * @param     Transition An reference to a IRoseTransition (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteTransition  (
              rose.IRoseTransition Transition) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("Transition", 9, Transition),};
    return invoke("deleteTransition", 427, 1, parameters).getBOOL();
  }

  /**
   * addState. 
   *
   * @param     Name The Name (in)
   * @return    return value.  An reference to a IRoseState
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseState addState  (
              String Name) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("Name", 8, Name),};
    Object res = invoke("addState", 428, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateProxy(res);
  }

  /**
   * deleteState. 
   *
   * @param     State An reference to a IRoseState (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteState  (
              rose.IRoseState State) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("State", 9, State),};
    return invoke("deleteState", 429, 1, parameters).getBOOL();
  }

  /**
   * relocateState. 
   *
   * @param     State An reference to a IRoseState (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean relocateState  (
              rose.IRoseState State) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("State", 9, State),};
    return invoke("relocateState", 430, 1, parameters).getBOOL();
  }

  /**
   * deleteAction. 
   *
   * @param     theAction An reference to a IRoseAction (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteAction  (
              rose.IRoseAction theAction) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theAction", 9, theAction),};
    return invoke("deleteAction", 446, 1, parameters).getBOOL();
  }

  /**
   * getQualifiedName. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String getQualifiedName  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getQualifiedName", 12555, 1, parameters).getBSTR();
  }

  /**
   * getUserDefinedEvents. 
   *
   * @return    return value.  An reference to a IRoseEventCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseEventCollection getUserDefinedEvents  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getUserDefinedEvents", 12623, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseEventCollectionProxy(res);
  }

  /**
   * getAction. 
   *
   * @param     theEvent An reference to a IRoseEvent (in)
   * @return    return value.  An reference to a IRoseAction
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseAction getAction  (
              rose.IRoseEvent theEvent) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theEvent", 9, theEvent),};
    Object res = invoke("getAction", 12624, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionProxy(res);
  }

  /**
   * getEntryActions. 
   *
   * @return    return value.  An reference to a IRoseActionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActionCollection getEntryActions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getEntryActions", 12625, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionCollectionProxy(res);
  }

  /**
   * getExitActions. 
   *
   * @return    return value.  An reference to a IRoseActionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActionCollection getExitActions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getExitActions", 12626, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionCollectionProxy(res);
  }

  /**
   * getDoActions. 
   *
   * @return    return value.  An reference to a IRoseActionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActionCollection getDoActions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getDoActions", 12627, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionCollectionProxy(res);
  }

  /**
   * addUserDefinedEvent. 
   *
   * @param     EventName The EventName (in)
   * @param     ActionName The ActionName (in)
   * @return    return value.  An reference to a IRoseEvent
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseEvent addUserDefinedEvent  (
              String EventName,
              String ActionName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("EventName", 8, EventName),
                                         new Variant("ActionName", 8, ActionName),};
    Object res = invoke("addUserDefinedEvent", 12635, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseEventProxy(res);
  }

  /**
   * deleteUserDefinedEvent. 
   *
   * @param     theEvent An reference to a IRoseEvent (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteUserDefinedEvent  (
              rose.IRoseEvent theEvent) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theEvent", 9, theEvent),};
    return invoke("deleteUserDefinedEvent", 12636, 1, parameters).getBOOL();
  }

  /**
   * addEntryAction. 
   *
   * @param     ActionName The ActionName (in)
   * @return    return value.  An reference to a IRoseAction
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseAction addEntryAction  (
              String ActionName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ActionName", 8, ActionName),};
    Object res = invoke("addEntryAction", 12637, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionProxy(res);
  }

  /**
   * addExitAction. 
   *
   * @param     ActionName The ActionName (in)
   * @return    return value.  An reference to a IRoseAction
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseAction addExitAction  (
              String ActionName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ActionName", 8, ActionName),};
    Object res = invoke("addExitAction", 12638, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionProxy(res);
  }

  /**
   * addDoAction. 
   *
   * @param     ActionName The ActionName (in)
   * @return    return value.  An reference to a IRoseAction
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseAction addDoAction  (
              String ActionName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("ActionName", 8, ActionName),};
    Object res = invoke("addDoAction", 12639, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionProxy(res);
  }

  /**
   * identifyClass. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public String identifyClass  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("identifyClass", 12668, 1, parameters).getBSTR();
  }

  /**
   * isClass. 
   *
   * @param     theClassName The theClassName (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean isClass  (
              String theClassName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theClassName", 8, theClassName),};
    return invoke("isClass", 12669, 1, parameters).getBOOL();
  }

  /**
   * openCustomSpecification. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean openCustomSpecification  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("openCustomSpecification", 12728, 1, parameters).getBOOL();
  }

  /**
   * getSwimLanes. 
   *
   * @return    return value.  An reference to a IRoseSwimLaneCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseSwimLaneCollection getSwimLanes  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getSwimLanes", 12748, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseSwimLaneCollectionProxy(res);
  }

  /**
   * getActions. 
   *
   * @return    return value.  An reference to a IRoseActionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActionCollection getActions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getActions", 12767, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActionCollectionProxy(res);
  }

  /**
   * getStateMachines. 
   *
   * @return    return value.  An reference to a IRoseStateMachineCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateMachineCollection getStateMachines  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getStateMachines", 12768, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateMachineCollectionProxy(res);
  }

  /**
   * addStateMachine. 
   *
   * @param     theName The theName (in)
   * @return    return value.  An reference to a IRoseStateMachine
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseStateMachine addStateMachine  (
              String theName) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theName", 8, theName),};
    Object res = invoke("addStateMachine", 12774, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateMachineProxy(res);
  }

  /**
   * deleteStateMachine. 
   *
   * @param     theStateMachine An reference to a IRoseStateMachine (in)
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean deleteStateMachine  (
              rose.IRoseStateMachine theStateMachine) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theStateMachine", 9, theStateMachine),};
    return invoke("deleteStateMachine", 12775, 1, parameters).getBOOL();
  }

  /**
   * getAllSubActivities. 
   *
   * @return    return value.  An reference to a IRoseActivityCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseActivityCollection getAllSubActivities  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllSubActivities", 12805, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseActivityCollectionProxy(res);
  }

  /**
   * getAllSubDecisions. 
   *
   * @return    return value.  An reference to a IRoseDecisionCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseDecisionCollection getAllSubDecisions  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllSubDecisions", 12806, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseDecisionCollectionProxy(res);
  }

  /**
   * getAllSubSynchronizations. 
   *
   * @return    return value.  An reference to a IRoseSyncItemCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseSyncItemCollection getAllSubSynchronizations  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllSubSynchronizations", 12807, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseSyncItemCollectionProxy(res);
  }

  /**
   * addTransitionToVertex. 
   *
   * @param     OnEvent The OnEvent (in)
   * @param     Target An reference to a IRoseStateVertex (in)
   * @return    return value.  An reference to a IRoseTransition
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseTransition addTransitionToVertex  (
              String OnEvent,
              rose.IRoseStateVertex Target) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("OnEvent", 8, OnEvent),
                                         new Variant("Target", 9, Target),};
    Object res = invoke("addTransitionToVertex", 12814, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseTransitionProxy(res);
  }

  /**
   * renderIconToClipboard. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public boolean renderIconToClipboard  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("renderIconToClipboard", 12820, 1, parameters).getBOOL();
  }

  /**
   * getIconIndex. 
   *
   * @return    return value.  The return value
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public short getIconIndex  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getIconIndex", 12824, 1, parameters).getI2();
  }

  /** Dummy reference from interface to proxy to make sure proxy gets compiled */
  static final int xxDummy = 0;
}
