package rose;

import com.linar.jintegra.*;
/**
 * Proxy for COM Interface 'IRoseAddIn'. Generated 30/01/2002 3:46:15 PM
 * from 'C:\Program Files\Rational\Rose\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 IRoseAddInProxy extends com.linar.jintegra.Dispatch implements IRoseAddIn {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * setFundamentalTypes. 
   *
   * @param     rhs 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 void setFundamentalTypes  (
              rose.IRoseStringCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setFundamentalTypes", 12537, 4, parameters);
    return;
  }

  /**
   * 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", 12538, 2, parameters).getDISPATCH();
    return res == null ? null : new IRoseStringCollectionProxy(res);
  }

  /**
   * setToolNames. 
   *
   * @param     rhs 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 void setToolNames  (
              rose.IRoseStringCollection rhs) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("rhs", 9, rhs),};
    invoke("setToolNames", 12538, 4, parameters);
    return;
  }

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

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

  /**
   * 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", 12540, 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", 12540, 4, parameters);
    return;
  }

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

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

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

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

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

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

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

  /**
   * readSetting. 
   *
   * @param     Section The Section (in)
   * @param     Entry The Entry (in)
   * @param     Default The Default (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 readSetting  (
              String Section,
              String Entry,
              String Default) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("Section", 8, Section),
                                         new Variant("Entry", 8, Entry),
                                         new Variant("Default", 8, Default),};
    return invoke("readSetting", 12596, 1, parameters).getBSTR();
  }

  /**
   * writeSetting. 
   *
   * @param     Section The Section (in)
   * @param     Entry The Entry (in)
   * @param     Value The Value (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 writeSetting  (
              String Section,
              String Entry,
              String Value) throws java.io.IOException, com.linar.jintegra.AutomationException{
    com.linar.jintegra.Variant[] parameters = {new Variant("Section", 8, Section),
                                         new Variant("Entry", 8, Entry),
                                         new Variant("Value", 8, Value),};
    return invoke("writeSetting", 12597, 1, parameters).getBOOL();
  }

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

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

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

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

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

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