<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_15) on Thu Jul 29 16:06:34 CEST 2010 -->
<TITLE>
G-Index
</TITLE>

<META NAME="date" CONTENT="2010-07-29">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="G-Index";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html#getActualProject()"><B>getActualProject()</B></A> - 
Static method in class org.eclipse.emf.refactor.runtime.config.<A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html" title="class in org.eclipse.emf.refactor.runtime.config">RuntimeConfig</A>
<DD>Static method that returns the project in the workspace
 according to the actual editor in the workbench.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getAlias()"><B>getAlias()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">EmfRefactoringEntry</A>
<DD>Returns the value of the '<em><b>Alias</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">EmfRefactoringEntryImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html#getAliasOfId(java.lang.String)"><B>getAliasOfId(String)</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.config.<A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html" title="class in org.eclipse.emf.refactor.runtime.config">RuntimeConfig</A>
<DD>Method that returns the alias name of a EMF model 
 refactoring with the given id.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getById(java.lang.String)"><B>getById(String)</B></A> - 
Static method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Returns the emf model refactoring with the specified id.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html#getCheckFinalFileName()"><B>getCheckFinalFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.<A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator">RefactoringConfigHenshin</A>
<DD>Gets the name of the Henshin file used for the final checking 
 of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html#getCheckFinalFileName()"><B>getCheckFinalFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">TransformationWizardPage</A>
<DD>Gets the name of the Henshin file used for the final checking 
 of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html#getCheckInitialFileName()"><B>getCheckInitialFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.<A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator">RefactoringConfigHenshin</A>
<DD>Gets the name of the Henshin file used for the initial checking 
 of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html#getCheckInitialFileName()"><B>getCheckInitialFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">TransformationWizardPage</A>
<DD>Gets the name of the Henshin file used for the initial checking 
 of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the class the model refactoring shall be 
 executed on.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the class the model refactoring shall be 
 executed on.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getController()"><B>getController()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Gets the controller object of the emf model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getController()"><B>getController()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the name of the Controller class of the model refactoring 
 specified in the extension point.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html#getCreateChangeFileName()"><B>getCreateChangeFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.<A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator">RefactoringConfigHenshin</A>
<DD>Gets the name of the Henshin file used for executing the EMF model
 refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html#getCreateChangeHenshinInformation()"><B>getCreateChangeHenshinInformation()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinDataManagement</A>
<DD>Gets a HenshinInformation object used for executing the EMF 
 model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IController.html#getDataManagementObject()"><B>getDataManagementObject()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IController.html" title="interface in org.eclipse.emf.refactor.common.core">IController</A>
<DD>Returns the DataManagement object of the model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinController.html#getDataManagementObject()"><B>getDataManagementObject()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinController.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinController</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/Activator.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.eclipse.emf.refactor.common.<A HREF="../org/eclipse/emf/refactor/common/Activator.html" title="class in org.eclipse.emf.refactor.common">Activator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/generator/Activator.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/Activator.html" title="class in org.eclipse.emf.refactor.generator">Activator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/Activator.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.eclipse.emf.refactor.henshin.<A HREF="../org/eclipse/emf/refactor/henshin/Activator.html" title="class in org.eclipse.emf.refactor.henshin">Activator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/Activator.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.eclipse.emf.refactor.runtime.<A HREF="../org/eclipse/emf/refactor/runtime/Activator.html" title="class in org.eclipse.emf.refactor.runtime">Activator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#getDefaultGroup()"><B>getDefaultGroup()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Returns the default model refactoring group named "DefaultGroup".
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#getDescription()"><B>getDescription()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/Port.html" title="class in org.eclipse.emf.refactor.common.core">Port</A>
<DD>Gets the description of the port.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ParameterConfig.html#getDescription()"><B>getDescription()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/ParameterConfig.html" title="class in org.eclipse.emf.refactor.generator">ParameterConfig</A>
<DD>Gets the description of the model refactoring parameter.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#getElements()"><B>getElements()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html" title="class in org.eclipse.emf.refactor.runtime.ltk">LtkEmfRefactoringProcessorAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getEmfRefactoringEntry()"><B>getEmfRefactoringEntry()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><CODE><em>Emf Refactoring Entry</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getEmfRefactoringEntry()"><B>getEmfRefactoringEntry()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getEmfRefactoringEntry_Alias()"><B>getEmfRefactoringEntry_Alias()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getAlias()"><CODE><em>Alias</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getEmfRefactoringEntry_Alias()"><B>getEmfRefactoringEntry_Alias()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getEmfRefactoringEntry_Id()"><B>getEmfRefactoringEntry_Id()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getId()"><CODE><em>Id</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getEmfRefactoringEntry_Id()"><B>getEmfRefactoringEntry_Id()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getEmfRefactoringEntry_Mmgroup()"><B>getEmfRefactoringEntry_Mmgroup()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getMmgroup()"><CODE><em>Mmgroup</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getEmfRefactoringEntry_Mmgroup()"><B>getEmfRefactoringEntry_Mmgroup()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getEmfRefactoringEntry_Name()"><B>getEmfRefactoringEntry_Name()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getEmfRefactoringEntry_Name()"><B>getEmfRefactoringEntry_Name()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/MetaModelGroupImpl.html#getEntries()"><B>getEntries()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/MetaModelGroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">MetaModelGroupImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html#getEntries()"><B>getEntries()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">MetaModelGroup</A>
<DD>Returns the value of the '<em><b>Entries</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html#getFinalConditionsHenshinInformation()"><B>getFinalConditionsHenshinInformation()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinDataManagement</A>
<DD>Gets a HenshinInformation object used for checking the final
 conditions of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroup()"><B>getGroup()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><CODE><em>Group</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroup()"><B>getGroup()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroup_MmGroups()"><B>getGroup_MmGroups()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html#getMmGroups()"><CODE><em>Mm Groups</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroup_MmGroups()"><B>getGroup_MmGroups()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroup_Name()"><B>getGroup_Name()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroup_Name()"><B>getGroup_Name()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html#getGroupManagement()"><B>getGroupManagement()</B></A> - 
Method in class org.eclipse.emf.refactor.common.config.<A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html" title="class in org.eclipse.emf.refactor.common.config">EmfRefactorConfig</A>
<DD>Gets the GroupManagement object used for managing model refactoring
 groups.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#getGroupManagement()"><B>getGroupManagement()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Gets the GroupManagement object to be controlled.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroupManagement()"><B>getGroupManagement()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagement.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><CODE><em>Group Management</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroupManagement()"><B>getGroupManagement()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroupManagement_Groups()"><B>getGroupManagement_Groups()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagement.html#getGroups()"><CODE><em>Groups</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroupManagement_Groups()"><B>getGroupManagement_Groups()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getGroupmanagementFactory()"><B>getGroupmanagementFactory()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the factory that creates the instances of the model
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getGroupmanagementFactory()"><B>getGroupmanagementFactory()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementFactory.html#getGroupmanagementPackage()"><B>getGroupmanagementPackage()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementFactory.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementFactory</A>
<DD>Returns the package supported by this factory
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#getGroupmanagementPackage()"><B>getGroupmanagementPackage()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#getGroupManagementPreferencePage()"><B>getGroupManagementPreferencePage()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Gets the PreferencePage from which the controller is invoked.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#getGroupName()"><B>getGroupName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Gets the actual model refactoring group name.
<DT><A HREF="../org/eclipse/emf/refactor/common/projectgroupmapping/ProjectGroupMapping.html#getGroupNames()"><B>getGroupNames()</B></A> - 
Method in class org.eclipse.emf.refactor.common.projectgroupmapping.<A HREF="../org/eclipse/emf/refactor/common/projectgroupmapping/ProjectGroupMapping.html" title="class in org.eclipse.emf.refactor.common.projectgroupmapping">ProjectGroupMapping</A>
<DD>Gets the names of the groups mapped to the project.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagement.html#getGroups()"><B>getGroups()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagement.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupManagement</A>
<DD>Returns the value of the '<em><b>Groups</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupManagementImpl.html#getGroups()"><B>getGroups()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupManagementImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupManagementImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getGui()"><B>getGui()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Gets the guiHandler object of the emf model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getGuiHandler()"><B>getGuiHandler()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the name of the GuiHandler class of the model refactoring 
 specified in the extension point.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinInformation.html#getHenshinDataManagement()"><B>getHenshinDataManagement()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinInformation.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinInformation</A>
<DD>Gets the HenshinDataManagement object of the specific EMF
 model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinController.html#getHenshinRunner()"><B>getHenshinRunner()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinController.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinController</A>
<DD>Gets a HenshinRunner that executes Henshin transformations using 
 the Henshin interpreter.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getId()"><B>getId()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Gets the id of the emf model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getId()"><B>getId()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">EmfRefactoringEntry</A>
<DD>Returns the value of the '<em><b>Id</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html#getId()"><B>getId()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">EmfRefactoringEntryImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#getIdentifier()"><B>getIdentifier()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html" title="class in org.eclipse.emf.refactor.runtime.ltk">LtkEmfRefactoringProcessorAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html#getInitialConditionsHenshinInformation()"><B>getInitialConditionsHenshinInformation()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinDataManagement.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinDataManagement</A>
<DD>Gets a HenshinInformation object used for checking the initial
 conditions of the EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html#getInPortByName(java.lang.String)"><B>getInPortByName(String)</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html" title="interface in org.eclipse.emf.refactor.common.core">IDataManagement</A>
<DD>Gets the input model refactoring port with the given name.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html#getInPortByName(java.lang.String)"><B>getInPortByName(String)</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.<A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html" title="class in org.eclipse.emf.refactor.runtime">DataManagementAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html#getInPorts()"><B>getInPorts()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html" title="interface in org.eclipse.emf.refactor.common.core">IDataManagement</A>
<DD>Gets the input ports of the model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html#getInPorts()"><B>getInPorts()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.<A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html" title="class in org.eclipse.emf.refactor.runtime">DataManagementAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.eclipse.emf.refactor.common.config.<A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html" title="class in org.eclipse.emf.refactor.common.config">EmfRefactorConfig</A>
<DD>Returns the singleton instance.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getJar()"><B>getJar()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the jar file that owns the class 
 specified in 'className'.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getJar()"><B>getJar()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the jar file that owns the class 
 specified in 'className'.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IController.html#getLtkRefactoringProcessor()"><B>getLtkRefactoringProcessor()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IController.html" title="interface in org.eclipse.emf.refactor.common.core">IController</A>
<DD>Returns the ltk RefactoringProcessor of the model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getMenuLabel()"><B>getMenuLabel()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the label that shall appear before applying the 
 model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getMenuLabel()"><B>getMenuLabel()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the menu Label of the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getMenuLabel()"><B>getMenuLabel()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the menu Label of the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html#getMessages()"><B>getMessages()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.runtime.command.<A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html" title="class in org.eclipse.emf.refactor.henshin.runtime.command">CheckConditionsCommand</A>
<DD>Gets a list of messages indicating errors which occur during
 conditions checking.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getMetaModelGroup()"><B>getMetaModelGroup()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><CODE><em>Meta Model Group</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getMetaModelGroup()"><B>getMetaModelGroup()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getMetaModelGroup_Entries()"><B>getMetaModelGroup_Entries()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html#getEntries()"><CODE><em>Entries</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getMetaModelGroup_Entries()"><B>getMetaModelGroup_Entries()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#getMetaModelGroup_NsUri()"><B>getMetaModelGroup_NsUri()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html#getNsUri()"><CODE><em>Ns Uri</em></CODE></A>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html#getMetaModelGroup_NsUri()"><B>getMetaModelGroup_NsUri()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementPackageImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getMmgroup()"><B>getMmgroup()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">EmfRefactoringEntry</A>
<DD>Returns the value of the '<em><b>Mmgroup</b></em>' reference
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html#getMmgroup()"><B>getMmgroup()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">EmfRefactoringEntryImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html#getMmGroups()"><B>getMmGroups()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">Group</A>
<DD>Returns the value of the '<em><b>Mm Groups</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html#getMmGroups()"><B>getMmGroups()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html#getModelCompareInput()"><B>getModelCompareInput()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.change.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html" title="class in org.eclipse.emf.refactor.runtime.ltk.change">RefactoringChange</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html#getModifiedElement()"><B>getModifiedElement()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.change.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html" title="class in org.eclipse.emf.refactor.runtime.ltk.change">RefactoringChange</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/UndoRedoChange.html#getModifiedElement()"><B>getModifiedElement()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.change.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/UndoRedoChange.html" title="class in org.eclipse.emf.refactor.runtime.ltk.change">UndoRedoChange</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#getModus()"><B>getModus()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Gets the actual modus of the group management process.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Gets the name of the emf model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/Port.html" title="class in org.eclipse.emf.refactor.common.core">Port</A>
<DD>Gets the Name of the port.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/EmfRefactoringEntry.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">EmfRefactoringEntry</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">Group</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/EmfRefactoringEntryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">EmfRefactoringEntryImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/generator/ParameterConfig.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/ParameterConfig.html" title="class in org.eclipse.emf.refactor.generator">ParameterConfig</A>
<DD>Gets the name of the model refactoring parameter.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.change.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/RefactoringChange.html" title="class in org.eclipse.emf.refactor.runtime.ltk.change">RefactoringChange</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/UndoRedoChange.html#getName()"><B>getName()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.change.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/change/UndoRedoChange.html" title="class in org.eclipse.emf.refactor.runtime.ltk.change">UndoRedoChange</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getNamespaceUri()"><B>getNamespaceUri()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Gets the namespace of the emf model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getNamespaceUri()"><B>getNamespaceUri()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the namespace of the models the model refactoring 
 has to be generated for.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/MetaModelGroupImpl.html#getNsUri()"><B>getNsUri()</B></A> - 
Method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/MetaModelGroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">MetaModelGroupImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html#getNsUri()"><B>getNsUri()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/MetaModelGroup.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">MetaModelGroup</A>
<DD>Returns the value of the '<em><b>Ns Uri</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getNsUri()"><B>getNsUri()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the namespace for the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getNsUri()"><B>getNsUri()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the namespace for the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html#getOutPortByName(java.lang.String)"><B>getOutPortByName(String)</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html" title="interface in org.eclipse.emf.refactor.common.core">IDataManagement</A>
<DD>Gets the output model refactoring port with the given name.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html#getOutPortByName(java.lang.String)"><B>getOutPortByName(String)</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.<A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html" title="class in org.eclipse.emf.refactor.runtime">DataManagementAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html#getOutPorts()"><B>getOutPorts()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IDataManagement.html" title="interface in org.eclipse.emf.refactor.common.core">IDataManagement</A>
<DD>Gets the output ports of the model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html#getOutPorts()"><B>getOutPorts()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.<A HREF="../org/eclipse/emf/refactor/runtime/DataManagementAdapter.html" title="class in org.eclipse.emf.refactor.runtime">DataManagementAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#getPackage()"><B>getPackage()</B></A> - 
Static method in class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementFactoryImpl</A>
<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the name of the package the model refactoring code 
 has to be generated into.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the list of parameters of the model refactoring to be 
 generated.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/ParameterWizardPage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/ParameterWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">ParameterWizardPage</A>
<DD>Gets a list of model refactoring parameter configuration data.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/IController.html#getParent()"><B>getParent()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/IController.html" title="interface in org.eclipse.emf.refactor.common.core">IController</A>
<DD>Gets the EmfRefactoring supported by the controller.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/ui/IGuiHandler.html#getParent()"><B>getParent()</B></A> - 
Method in interface org.eclipse.emf.refactor.common.core.ui.<A HREF="../org/eclipse/emf/refactor/common/core/ui/IGuiHandler.html" title="interface in org.eclipse.emf.refactor.common.core.ui">IGuiHandler</A>
<DD>Gets the EmfRefactoring supported by the GuiHandler.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#getProcessorName()"><B>getProcessorName()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html" title="class in org.eclipse.emf.refactor.runtime.ltk">LtkEmfRefactoringProcessorAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html#getProjectGroupMapping()"><B>getProjectGroupMapping()</B></A> - 
Method in class org.eclipse.emf.refactor.common.config.<A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html" title="class in org.eclipse.emf.refactor.common.config">EmfRefactorConfig</A>
<DD>Gets the mapping of the actual project to several EMF model 
 refactoring groups.
<DT><A HREF="../org/eclipse/emf/refactor/common/projectgroupmapping/ProjectGroupMapping.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.common.projectgroupmapping.<A HREF="../org/eclipse/emf/refactor/common/projectgroupmapping/ProjectGroupMapping.html" title="class in org.eclipse.emf.refactor.common.projectgroupmapping">ProjectGroupMapping</A>
<DD>Gets the name of the project to be mapped.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the name of the project the model refactoring code 
 has to be generated to.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the project the model refactoring code 
 has to be generated to.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the name of the project the model refactoring code 
 has to be generated to.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">CreationWizardHenshin</A>
<DD>Gets the name of the project the model refactoring code has to be 
 generated to.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html#getProjectName()"><B>getProjectName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">ParameterWizardPage</A>
<DD>Gets the name of the project the model refactoring code has to be 
 generated to.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html#getProjectRefactorings(java.util.List)"><B>getProjectRefactorings(List&lt;EObject&gt;)</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.config.<A HREF="../org/eclipse/emf/refactor/runtime/config/RuntimeConfig.html" title="class in org.eclipse.emf.refactor.runtime.config">RuntimeConfig</A>
<DD>Gets a list of EMF model refactorings applicable on the given
 selection elements.
<DT><A HREF="../org/eclipse/emf/refactor/generator/util/RefactoringGeneratorUtil.html#getRefactoringConfig(java.lang.String)"><B>getRefactoringConfig(String)</B></A> - 
Static method in class org.eclipse.emf.refactor.generator.util.<A HREF="../org/eclipse/emf/refactor/generator/util/RefactoringGeneratorUtil.html" title="class in org.eclipse.emf.refactor.generator.util">RefactoringGeneratorUtil</A>
<DD>Abstract method for getting a list of RefactoringConfig out from
 the model refactoring extension point served in the plugin.xml 
 file of the project with the given name.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getRefactoringId()"><B>getRefactoringId()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the id of the model refactoring that has to be 
 generated.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html#getRefactoringId()"><B>getRefactoringId()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.generator.ui">BasicsWizardPage</A>
<DD>Gets the id of the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#getRefactoringId()"><B>getRefactoringId()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">BasicsWizardPage</A>
<DD>Gets the id of the model refactoring to be generated.
<DT><A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html#getRefactorings()"><B>getRefactorings()</B></A> - 
Method in class org.eclipse.emf.refactor.common.config.<A HREF="../org/eclipse/emf/refactor/common/config/EmfRefactorConfig.html" title="class in org.eclipse.emf.refactor.common.config">EmfRefactorConfig</A>
<DD>Gets a set of all registered emf model refactorings.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#getRefactorings()"><B>getRefactorings()</B></A> - 
Static method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html" title="class in org.eclipse.emf.refactor.common.core">EmfRefactoring</A>
<DD>Return a list of all registered emf model refactorings.
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/PreviewCommand.html#getRootCopy()"><B>getRootCopy()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.command.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/PreviewCommand.html" title="class in org.eclipse.emf.refactor.runtime.ltk.command">PreviewCommand</A>
<DD>Gets a copy of the root element of the model (temporary model).
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html#getRootPackageName()"><B>getRootPackageName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.<A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator">RefactoringConfigHenshin</A>
<DD>Returns the root package name to generate the code in.
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getSelectedEObjectClass()"><B>getSelectedEObjectClass()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the class of the model element that will be the 
 selected EObject when applying the refactoring (context).
<DT><A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html#getSelectedEObjectJar()"><B>getSelectedEObjectJar()</B></A> - 
Method in class org.eclipse.emf.refactor.generator.<A HREF="../org/eclipse/emf/refactor/generator/RefactoringConfig.html" title="class in org.eclipse.emf.refactor.generator">RefactoringConfig</A>
<DD>Gets the jar file owning the class specified in 
 'selectedEObjectClass'.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html#getSelectedParameters()"><B>getSelectedParameters()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">ParameterWizardPage</A>
<DD>Gets the list of selected refactoring parameters out of those 
 from the main transformation unit of the specified Henshin 
 transformation file.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html#getTransformationDirectory()"><B>getTransformationDirectory()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.<A HREF="../org/eclipse/emf/refactor/henshin/generator/RefactoringConfigHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator">RefactoringConfigHenshin</A>
<DD>Return the name of the transformations directory inside the plugin
 project.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinInformation.html#getTransformationFileName()"><B>getTransformationFileName()</B></A> - 
Method in interface org.eclipse.emf.refactor.henshin.core.<A HREF="../org/eclipse/emf/refactor/henshin/core/IHenshinInformation.html" title="interface in org.eclipse.emf.refactor.henshin.core">IHenshinInformation</A>
<DD>Returns the name of the Henshin transformation file that 
 shall be used by a specific EMF model refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html#getTransformationFileName()"><B>getTransformationFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">CreationWizardHenshin</A>
<DD>Gets the name of the Henshin file used for executing the EMF model
 refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html#getTransformationFileName()"><B>getTransformationFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">ParameterWizardPage</A>
<DD>Gets the name of the Henshin file used for executing the EMF model
 refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html#getTransformationFileName()"><B>getTransformationFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.generator.ui.<A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui">TransformationWizardPage</A>
<DD>Gets the name of the Henshin file used for executing the EMF model
 refactoring.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinInformationAdapter.html#getTransformationFileName()"><B>getTransformationFileName()</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.runtime.<A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinInformationAdapter.html" title="class in org.eclipse.emf.refactor.henshin.runtime">HenshinInformationAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#getType()"><B>getType()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/Port.html" title="class in org.eclipse.emf.refactor.common.core">Port</A>
<DD>Gets the type of the port.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#getValue()"><B>getValue()</B></A> - 
Method in class org.eclipse.emf.refactor.common.core.<A HREF="../org/eclipse/emf/refactor/common/core/Port.html" title="class in org.eclipse.emf.refactor.common.core">Port</A>
<DD>Gets the value of the port.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/Group.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><B>Group</B></A> - Interface in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>A representation of the model object '<em><b>Group</b></em>'<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP"><B>GROUP</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The meta object id for the '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><CODE><em>Group</em></CODE></A>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html#GROUP"><B>GROUP</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage.Literals</A>
<DD>The meta object literal for the '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><CODE><em>Group</em></CODE></A>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP__MM_GROUPS"><B>GROUP__MM_GROUPS</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The feature id for the '<em><b>Mm Groups</b></em>' containment reference list
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html#GROUP__MM_GROUPS"><B>GROUP__MM_GROUPS</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage.Literals</A>
<DD>The meta object literal for the '<em><b>Mm Groups</b></em>' containment reference list feature
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP__NAME"><B>GROUP__NAME</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The feature id for the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html#GROUP__NAME"><B>GROUP__NAME</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage.Literals</A>
<DD>The meta object literal for the '<em><b>Name</b></em>' attribute feature
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP_FEATURE_COUNT"><B>GROUP_FEATURE_COUNT</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The number of structural features of the '<em>Group</em>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP_MANAGEMENT"><B>GROUP_MANAGEMENT</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The meta object id for the '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupManagementImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><CODE><em>Group Management</em></CODE></A>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html#GROUP_MANAGEMENT"><B>GROUP_MANAGEMENT</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage.Literals</A>
<DD>The meta object literal for the '<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupManagementImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><CODE><em>Group Management</em></CODE></A>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP_MANAGEMENT__GROUPS"><B>GROUP_MANAGEMENT__GROUPS</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The feature id for the '<em><b>Groups</b></em>' containment reference list
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html#GROUP_MANAGEMENT__GROUPS"><B>GROUP_MANAGEMENT__GROUPS</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage.Literals</A>
<DD>The meta object literal for the '<em><b>Groups</b></em>' containment reference list feature
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html#GROUP_MANAGEMENT_FEATURE_COUNT"><B>GROUP_MANAGEMENT_FEATURE_COUNT</B></A> - 
Static variable in interface org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement">GroupmanagementPackage</A>
<DD>The number of structural features of the '<em>Group Management</em>' class
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><B>GroupImpl</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.impl</A><DD>An implementation of the model object '<em><b>Group</b></em>'<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagement.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupManagement</B></A> - Interface in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>A representation of the model object '<em><b>Group Management</b></em>'<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementAdapterFactory.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.util"><B>GroupmanagementAdapterFactory</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.util</A><DD>The <b>Adapter Factory</b> for the model.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementAdapterFactory.html#GroupmanagementAdapterFactory()"><B>GroupmanagementAdapterFactory()</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.util.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementAdapterFactory.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.util">GroupmanagementAdapterFactory</A>
<DD>Creates an instance of the adapter factory
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupManagementController</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>Controller used for managing the group management process.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#GroupManagementController(org.eclipse.emf.refactor.common.groupmanagement.ui.GroupManagementPreferencePage)"><B>GroupManagementController(GroupManagementPreferencePage)</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html" title="class in org.eclipse.emf.refactor.common.groupmanagement">GroupManagementController</A>
<DD>Default constructor invoked from the given PreferencePage.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementFactory.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupmanagementFactory</B></A> - Interface in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>The <b>Factory</b> for the model.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><B>GroupmanagementFactoryImpl</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.impl</A><DD>An implementation of the model <b>Factory</b><DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#GroupmanagementFactoryImpl()"><B>GroupmanagementFactoryImpl()</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.impl.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl">GroupmanagementFactoryImpl</A>
<DD>Creates an instance of the factory
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupManagementImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><B>GroupManagementImpl</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.impl</A><DD>An implementation of the model object '<em><b>Group Management</b></em>'<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementModus.html" title="enum in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupManagementModus</B></A> - Enum in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>Enumeration for modi when editing emf model refactoring groups.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupmanagementPackage</B></A> - Interface in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>The <b>Package</b> for the model.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementPackage.Literals.html" title="interface in org.eclipse.emf.refactor.common.groupmanagement"><B>GroupmanagementPackage.Literals</B></A> - Interface in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement</A><DD>Defines literals for the meta objects that represent
 
   each class,
   each feature of each class,
   each enum,
   and each data type
 
 <!<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementPackageImpl.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.impl"><B>GroupmanagementPackageImpl</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.impl</A><DD>An implementation of the model <b>Package</b><DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementPreferencePage.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.ui"><B>GroupManagementPreferencePage</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.ui</A><DD>PreferencePage of EMF Refactor.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementPreferencePage.html#GroupManagementPreferencePage()"><B>GroupManagementPreferencePage()</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.ui.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementPreferencePage.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.ui">GroupManagementPreferencePage</A>
<DD>Default contructor that initializes the controller of the 
 group management process.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementRefactoringDialog.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.ui"><B>GroupManagementRefactoringDialog</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.ui</A><DD>Dialog for assigning existing EMF model refactorings to a specific
 model refactoring group.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementRefactoringDialog.html#GroupManagementRefactoringDialog(org.eclipse.emf.refactor.common.groupmanagement.GroupManagementController)"><B>GroupManagementRefactoringDialog(GroupManagementController)</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.ui.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementRefactoringDialog.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.ui">GroupManagementRefactoringDialog</A>
<DD>Contructor using the controller of the group management process.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementRefactoringDialog.html#GroupManagementRefactoringDialog(org.eclipse.emf.refactor.common.groupmanagement.GroupManagementController, org.eclipse.emf.refactor.common.groupmanagement.Group, boolean)"><B>GroupManagementRefactoringDialog(GroupManagementController, Group, boolean)</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.ui.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/ui/GroupManagementRefactoringDialog.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.ui">GroupManagementRefactoringDialog</A>
<DD>Contructor using the controller of the group management process, the
 actual refactoring group and a flag for disabling the ok button.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.util"><B>GroupmanagementSwitch</B></A>&lt;<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html" title="type parameter in GroupmanagementSwitch">T</A>&gt; - Class in <A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/package-summary.html">org.eclipse.emf.refactor.common.groupmanagement.util</A><DD>The <b>Switch</b> for the model's inheritance hierarchy.<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html#GroupmanagementSwitch()"><B>GroupmanagementSwitch()</B></A> - 
Constructor for class org.eclipse.emf.refactor.common.groupmanagement.util.<A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html" title="class in org.eclipse.emf.refactor.common.groupmanagement.util">GroupmanagementSwitch</A>
<DD>Creates an instance of the switch
</DL>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <HR>

</BODY>
</HTML>
