package rose;

import com.linar.jintegra.*;
/**
 * Proxy for COM Interface 'IRoseClass'. Generated 31/01/2002 11:44:12 AM
 * from 'C:|Program Files|Rational|Rose|rationalrose.tlb'<P>
 * Generated using version 1.5 of <B>J-Integra[tm]</B> -- pure Java/COM integration technology from Intrinsyc Software Inc.
 * See  <A HREF="http://www.intrinsyc.com/">http://www.intrinsyc.com/</A><P>
 *
 * Generator Options:
 * PromptForTypeLibraries = False
 * AttemptNonDual = True
 * ClashPrefix = zz_
 * LowerCaseMemberNames = True
 * IDispatchOnly = False
 * RetryOnReject = False
 * AwtForOcxs = False
 * GenerateDeprecatedConstructors = True
 * ArraysAsObjects = False
 * DontGenerateDisp = False
 * DontRenameSameMethods = False
 * IgnoreConflictingInterfaces = True
 * MakeSerializable = True
 */
public class IRoseClassProxy extends com.linar.jintegra.Dispatch implements IRoseClass, java.io.Serializable {

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

  static { JIntegraInit.init(); }

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

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

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

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

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

  public IRoseClassProxy(String CLSID, String host, boolean deferred) throws java.net.UnknownHostException, java.io.IOException{
    super(CLSID, IRoseClass.IID, host, null);
  }

  protected IRoseClassProxy(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  (
              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;
  }

  /**
   * getAbstract. 
   *
   * @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 getAbstract  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getAbstract", 412, 2, parameters).getBOOL();
  }

  /**
   * setAbstract. 
   *
   * @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 setAbstract  (
              boolean rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 11, rhs),};
    invoke("setAbstract", 412, 4, parameters);
    return;
  }

  /**
   * getCardinality. 
   *
   * @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 getCardinality  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getCardinality", 413, 2, parameters).getBSTR();
  }

  /**
   * setCardinality. 
   *
   * @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 setCardinality  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setCardinality", 413, 4, parameters);
    return;
  }

  /**
   * getPersistence. 
   *
   * @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 getPersistence  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getPersistence", 414, 2, parameters).getBOOL();
  }

  /**
   * setPersistence. 
   *
   * @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 setPersistence  (
              boolean rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 11, rhs),};
    invoke("setPersistence", 414, 4, parameters);
    return;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * getFundamentalType. 
   *
   * @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 getFundamentalType  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getFundamentalType", 421, 2, parameters).getBOOL();
  }

  /**
   * setFundamentalType. 
   *
   * @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 setFundamentalType  (
              boolean rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 11, rhs),};
    invoke("setFundamentalType", 421, 4, parameters);
    return;
  }

  /**
   * getSpace. 
   *
   * @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 getSpace  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getSpace", 449, 2, parameters).getBSTR();
  }

  /**
   * setSpace. 
   *
   * @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 setSpace  (
              String rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 8, rhs),};
    invoke("setSpace", 449, 4, parameters);
    return;
  }

  /**
   * getStateMachine. 
   *
   * @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 getStateMachine  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getStateMachine", 463, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStateMachineProxy(res);
  }

  /**
   * setStateMachine. 
   *
   * @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 setStateMachine  (
              IRoseStateMachine rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setStateMachine", 463, 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  (
              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;
  }

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

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

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

  /**
   * setParameters. 
   *
   * @param     rhs An reference to a IRoseParameterCollection)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void setParameters  (
              IRoseParameterCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setParameters", 12666, 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  (
              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;
  }

  /**
   * 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  (
              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();
  }

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

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

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

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

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

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

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

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

  /**
   * deleteHas. 
   *
   * @param     theHas An reference to a IRoseHasRelationship (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 deleteHas  (
              IRoseHasRelationship theHas) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theHas", 9, theHas),};
    return invoke("deleteHas", 432, 1, parameters).getBOOL();
  }

  /**
   * deleteAssociation. 
   *
   * @param     theAss An reference to a IRoseAssociation (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 deleteAssociation  (
              IRoseAssociation theAss) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theAss", 9, theAss),};
    return invoke("deleteAssociation", 433, 1, parameters).getBOOL();
  }

  /**
   * deleteOperation. 
   *
   * @param     theOper An reference to a IRoseOperation (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 deleteOperation  (
              IRoseOperation theOper) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theOper", 9, theOper),};
    return invoke("deleteOperation", 434, 1, parameters).getBOOL();
  }

  /**
   * deleteAttribute. 
   *
   * @param     theAttr An reference to a IRoseAttribute (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 deleteAttribute  (
              IRoseAttribute theAttr) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theAttr", 9, theAttr),};
    return invoke("deleteAttribute", 435, 1, parameters).getBOOL();
  }

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

  /**
   * deleteInheritRel. 
   *
   * @param     theInheritRel An reference to a IRoseInheritRelation (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 deleteInheritRel  (
              IRoseInheritRelation theInheritRel) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theInheritRel", 9, theInheritRel),};
    return invoke("deleteInheritRel", 438, 1, parameters).getBOOL();
  }

  /**
   * isALinkClass. 
   *
   * @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 isALinkClass  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("isALinkClass", 439, 1, parameters).getBOOL();
  }

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

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

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

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

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

  /**
   * deleteNestedClass. 
   *
   * @param     theClass An reference to a IRoseClass (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 deleteNestedClass  (
              IRoseClass theClass) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theClass", 9, theClass),};
    return invoke("deleteNestedClass", 448, 1, parameters).getBOOL();
  }

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

  /**
   * addAssignedModule. 
   *
   * @param     theModule An reference to a IRoseModule (in)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void addAssignedModule  (
              IRoseModule theModule) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theModule", 9, theModule),};
    invoke("addAssignedModule", 12522, 1, parameters);
    return;
  }

  /**
   * removeAssignedModule. 
   *
   * @param     theModule An reference to a IRoseModule (in)
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public void removeAssignedModule  (
              IRoseModule theModule) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theModule", 9, theModule),};
    invoke("removeAssignedModule", 12526, 1, parameters);
    return;
  }

  /**
   * 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();
  }

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

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

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

  /**
   * deleteRealizeRel. 
   *
   * @param     theRealizeRel An reference to a IRoseRealizeRelation (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 deleteRealizeRel  (
              IRoseRealizeRelation theRealizeRel) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theRealizeRel", 9, theRealizeRel),};
    return invoke("deleteRealizeRel", 12611, 1, parameters).getBOOL();
  }

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

  /**
   * getAssignedLanguage. 
   *
   * @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 getAssignedLanguage  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("getAssignedLanguage", 12642, 1, parameters).getBSTR();
  }

  /**
   * isNestedClass. 
   *
   * @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 isNestedClass  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    return invoke("isNestedClass", 12643, 1, parameters).getBOOL();
  }

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

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

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

  /**
   * deleteClassDependency. 
   *
   * @param     theClassDependency An reference to a IRoseClassDependency (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 deleteClassDependency  (
              IRoseClassDependency theClassDependency) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theClassDependency", 9, theClassDependency),};
    return invoke("deleteClassDependency", 12664, 1, parameters).getBOOL();
  }

  /**
   * addParameter. 
   *
   * @param     theName The theName (in)
   * @param     theType The theType (in)
   * @param     theDef The theDef (in)
   * @param     position The position (in)
   * @return    return value.  An reference to a IRoseParameter
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseParameter addParameter  (
              String theName,
              String theType,
              String theDef,
              short position) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theName", 8, theName),
                                         new Variant("theType", 8, theType),
                                         new Variant("theDef", 8, theDef),
                                         new Variant("position", 2, position),};
    Object res = invoke("addParameter", 12667, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseParameterProxy(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();
  }

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

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

  /**
   * deleteInstantiateRel. 
   *
   * @param     theInstantiateRel An reference to a IRoseInstantiateRelation (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 deleteInstantiateRel  (
              IRoseInstantiateRelation theInstantiateRel) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theInstantiateRel", 9, theInstantiateRel),};
    return invoke("deleteInstantiateRel", 12672, 1, parameters).getBOOL();
  }

  /**
   * getClients. 
   *
   * @param     relationKind The relationKind (in)
   * @param     relationType The relationType (in)
   * @return    return value.  An reference to a IRoseClassCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseClassCollection getClients  (
              short relationKind,
              short relationType) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("relationKind", 2, relationKind),
                                         new Variant("relationType", 2, relationType),};
    Object res = invoke("getClients", 12673, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseClassCollectionProxy(res);
  }

  /**
   * deleteParameter. 
   *
   * @param     theParameter An reference to a IRoseParameter (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 deleteParameter  (
              IRoseParameter theParameter) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theParameter", 9, theParameter),};
    return invoke("deleteParameter", 12678, 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();
  }

  /**
   * getAllNestedClasses. 
   *
   * @return    return value.  An reference to a IRoseClassCollection
   * @exception java.io.IOException If there are communications problems.
   * @exception com.linar.jintegra.AutomationException If the remote server throws an exception.
   */
  public IRoseClassCollection getAllNestedClasses  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAllNestedClasses", 12808, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseClassCollectionProxy(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();
  }

  /**
   * getAssignedUnloadedComponents. 
   *
   * @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 getAssignedUnloadedComponents  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getAssignedUnloadedComponents", 12838, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseStringCollectionProxy(res);
  }

  /**
   * changeAttributePosition. 
   *
   * @param     theAttribute An reference to a IRoseAttribute (in)
   * @param     thePosition The thePosition (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 changeAttributePosition  (
              IRoseAttribute theAttribute,
              short thePosition) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theAttribute", 9, theAttribute),
                                         new Variant("thePosition", 2, thePosition),};
    return invoke("changeAttributePosition", 12870, 1, parameters).getBOOL();
  }

  /**
   * relocateClass. 
   *
   * @param     theClass An reference to a IRoseClass (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 relocateClass  (
              IRoseClass theClass) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("theClass", 9, theClass),};
    return invoke("relocateClass", 12871, 1, parameters).getBOOL();
  }

  /**
   * getContext. 
   *
   * @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 getContext  () throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {};
    Object res = invoke("getContext", 12872, 1, parameters).getDISPATCH();
    return res == null ? null : new IRoseItemProxy(res);
  }

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

  static {
    com.linar.jintegra.InterfaceDesc.add("bc57d1c0-863e-11cf-b3d4-00a0241db1d0", IRoseClassProxy.class, null, 0, null );
  }
}
