<!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 08 14:00:03 CEST 2010 -->
<TITLE>
C-Index
</TITLE>

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

<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="C-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-2.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-3.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="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html#canExecute()"><B>canExecute()</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/PreviewCommand.html#canExecute()"><B>canExecute()</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/RefactoringCommand.html#canExecute()"><B>canExecute()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.command.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/RefactoringCommand.html" title="class in org.eclipse.emf.refactor.runtime.ltk.command">RefactoringCommand</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html#canUndo()"><B>canUndo()</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/PreviewCommand.html#canUndo()"><B>canUndo()</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/RefactoringCommand.html#canUndo()"><B>canUndo()</B></A> - 
Method in class org.eclipse.emf.refactor.runtime.ltk.command.<A HREF="../org/eclipse/emf/refactor/runtime/ltk/command/RefactoringCommand.html" title="class in org.eclipse.emf.refactor.runtime.ltk.command">RefactoringCommand</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html#caseEmfRefactoringEntry(org.eclipse.emf.refactor.common.groupmanagement.EmfRefactoringEntry)"><B>caseEmfRefactoringEntry(EmfRefactoringEntry)</B></A> - 
Method in 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>Returns the result of interpreting the object as an instance of '<em>Emf Refactoring Entry</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html#caseGroup(org.eclipse.emf.refactor.common.groupmanagement.Group)"><B>caseGroup(Group)</B></A> - 
Method in 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>Returns the result of interpreting the object as an instance of '<em>Group</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html#caseGroupManagement(org.eclipse.emf.refactor.common.groupmanagement.GroupManagement)"><B>caseGroupManagement(GroupManagement)</B></A> - 
Method in 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>Returns the result of interpreting the object as an instance of '<em>Group Management</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/util/GroupmanagementSwitch.html#caseMetaModelGroup(org.eclipse.emf.refactor.common.groupmanagement.MetaModelGroup)"><B>caseMetaModelGroup(MetaModelGroup)</B></A> - 
Method in 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>Returns the result of interpreting the object as an instance of '<em>Meta Model Group</em>'
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinRunner.html#checkConditions(org.eclipse.emf.refactor.henshin.core.IHenshinInformation, org.eclipse.emf.ecore.EObject)"><B>checkConditions(IHenshinInformation, EObject)</B></A> - 
Static method in class org.eclipse.emf.refactor.henshin.runtime.<A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinRunner.html" title="class in org.eclipse.emf.refactor.henshin.runtime">HenshinRunner</A>
<DD>Static method for checking initial or final conditions of a EMF
 model refactoring using Henshin transformations.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html" title="class in org.eclipse.emf.refactor.henshin.runtime.command"><B>CheckConditionsCommand</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/package-summary.html">org.eclipse.emf.refactor.henshin.runtime.command</A><DD>Class used for checking initial an final conditions of
 a EMF model refactoring using Henshin transformations.<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/command/CheckConditionsCommand.html#CheckConditionsCommand(org.eclipse.emf.refactor.henshin.core.IHenshinInformation, org.eclipse.emf.ecore.EObject)"><B>CheckConditionsCommand(IHenshinInformation, EObject)</B></A> - 
Constructor for 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>Default constructor using the corresponding HenshinInformation
 object and the root of the corresponding EMF model.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinLtkEmfRefactoringProcessorAdapter.html#checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)"><B>checkFinalConditions(IProgressMonitor, CheckConditionsContext)</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.runtime.<A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinLtkEmfRefactoringProcessorAdapter.html" title="class in org.eclipse.emf.refactor.henshin.runtime">HenshinLtkEmfRefactoringProcessorAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)"><B>checkFinalConditions(IProgressMonitor, CheckConditionsContext)</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/runtime/HenshinLtkEmfRefactoringProcessorAdapter.html#checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)"><B>checkInitialConditions(IProgressMonitor)</B></A> - 
Method in class org.eclipse.emf.refactor.henshin.runtime.<A HREF="../org/eclipse/emf/refactor/henshin/runtime/HenshinLtkEmfRefactoringProcessorAdapter.html" title="class in org.eclipse.emf.refactor.henshin.runtime">HenshinLtkEmfRefactoringProcessorAdapter</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)"><B>checkInitialConditions(IProgressMonitor)</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/runtime/config/RuntimeConfig.html#checkIsTypeOf(java.lang.Class, java.lang.String, boolean)"><B>checkIsTypeOf(Class&lt;?&gt;, String, boolean)</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>Checks whether the given class has the given name or whether one
 of its interfaces has the given name.
<DT><A HREF="../org/eclipse/emf/refactor/common/core/EmfRefactoring.html#compareTo(org.eclipse.emf.refactor.common.core.EmfRefactoring)"><B>compareTo(EmfRefactoring)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#compareTo(org.eclipse.emf.refactor.common.core.Port)"><B>compareTo(Port)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/core/Port.html#connect(org.eclipse.emf.refactor.common.core.Port)"><B>connect(Port&lt;T&gt;)</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>Connects two ports of equal types by setting the value of this to
 that of the given port.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#continueBeyondNameDialog()"><B>continueBeyondNameDialog()</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>Method for continuing the group management process after
 editing a group name.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#continueBeyondRefactoringDialog(org.eclipse.emf.refactor.common.groupmanagement.Group)"><B>continueBeyondRefactoringDialog(Group)</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>Method for continuing the group management process after
 editing the model refactorings.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupManagementController.html#continueBeyondSelection(java.lang.String)"><B>continueBeyondSelection(String)</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>Method for continuing the group management process after
 editing the model refactoring group name.
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#create(org.eclipse.emf.ecore.EClass)"><B>create(EClass)</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/util/GroupmanagementAdapterFactory.html#createAdapter(org.eclipse.emf.common.notify.Notifier)"><B>createAdapter(Notifier)</B></A> - 
Method in 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 adapter for the <code>target</code>
<DT><A HREF="../org/eclipse/emf/refactor/runtime/ltk/LtkEmfRefactoringProcessorAdapter.html#createChange(org.eclipse.core.runtime.IProgressMonitor)"><B>createChange(IProgressMonitor)</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/generator/ui/BasicsWizardPage.html#createControl(org.eclipse.swt.widgets.Composite)"><B>createControl(Composite)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/ParameterWizardPage.html#createControl(org.eclipse.swt.widgets.Composite)"><B>createControl(Composite)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/BasicsWizardPage.html#createControl(org.eclipse.swt.widgets.Composite)"><B>createControl(Composite)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/ParameterWizardPage.html#createControl(org.eclipse.swt.widgets.Composite)"><B>createControl(Composite)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/TransformationWizardPage.html#createControl(org.eclipse.swt.widgets.Composite)"><B>createControl(Composite)</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>&nbsp;
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementFactory.html#createEmfRefactoringEntry()"><B>createEmfRefactoringEntry()</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 a new object of class '<em>Emf Refactoring Entry</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#createEmfRefactoringEntry()"><B>createEmfRefactoringEntry()</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/util/GroupmanagementAdapterFactory.html#createEmfRefactoringEntryAdapter()"><B>createEmfRefactoringEntryAdapter()</B></A> - 
Method in 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 a new adapter for an object of 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/util/GroupmanagementAdapterFactory.html#createEObjectAdapter()"><B>createEObjectAdapter()</B></A> - 
Method in 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 a new adapter for the default case
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/GroupmanagementFactory.html#createGroup()"><B>createGroup()</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 a new object of class '<em>Group</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#createGroup()"><B>createGroup()</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/util/GroupmanagementAdapterFactory.html#createGroupAdapter()"><B>createGroupAdapter()</B></A> - 
Method in 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 a new adapter for an object of 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/GroupmanagementFactory.html#createGroupManagement()"><B>createGroupManagement()</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 a new object of class '<em>Group Management</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#createGroupManagement()"><B>createGroupManagement()</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/util/GroupmanagementAdapterFactory.html#createGroupManagementAdapter()"><B>createGroupManagementAdapter()</B></A> - 
Method in 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 a new adapter for an object of 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/GroupmanagementFactory.html#createMetaModelGroup()"><B>createMetaModelGroup()</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 a new object of class '<em>Meta Model Group</em>'
<DT><A HREF="../org/eclipse/emf/refactor/common/groupmanagement/impl/GroupmanagementFactoryImpl.html#createMetaModelGroup()"><B>createMetaModelGroup()</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/util/GroupmanagementAdapterFactory.html#createMetaModelGroupAdapter()"><B>createMetaModelGroupAdapter()</B></A> - 
Method in 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 a new adapter for an object of 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#createPackageContents()"><B>createPackageContents()</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>Creates the meta-model objects for the package.
<DT><A HREF="../org/eclipse/emf/refactor/generator/util/RefactoringGeneratorUtil.html#createPluginXml(java.lang.String)"><B>createPluginXml(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>Static method for creating a plugin.xml file within the project
 with the given name.
<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/CreationWizard.html" title="class in org.eclipse.emf.refactor.generator.ui"><B>CreationWizard</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/generator/ui/package-summary.html">org.eclipse.emf.refactor.generator.ui</A><DD>Wizard for editing data needed for model refactoring code generation.<DT><A HREF="../org/eclipse/emf/refactor/generator/ui/CreationWizard.html#CreationWizard(org.eclipse.emf.ecore.EObject)"><B>CreationWizard(EObject)</B></A> - 
Constructor for class org.eclipse.emf.refactor.generator.ui.<A HREF="../org/eclipse/emf/refactor/generator/ui/CreationWizard.html" title="class in org.eclipse.emf.refactor.generator.ui">CreationWizard</A>
<DD>Default constructor that initializes its wizard pages.
<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html" title="class in org.eclipse.emf.refactor.henshin.generator.ui"><B>CreationWizardHenshin</B></A> - Class in <A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/package-summary.html">org.eclipse.emf.refactor.henshin.generator.ui</A><DD>Wizard for editing data needed for model refactoring code generation
 using Henshin.<DT><A HREF="../org/eclipse/emf/refactor/henshin/generator/ui/CreationWizardHenshin.html#CreationWizardHenshin(org.eclipse.emf.ecore.EObject)"><B>CreationWizardHenshin(EObject)</B></A> - 
Constructor for 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>Default constructor that initializes its wizard pages.
</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-2.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-3.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>
