<!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_17) on Fri Jun 04 12:28:38 PDT 2010 -->
<TITLE>
DocumentRoot
</TITLE>

<META NAME="date" CONTENT="2010-06-04">

<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="DocumentRoot";
    }
}
</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">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DocumentRoot.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&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="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DynamicAttribute.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="DocumentRoot.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.jst.jsf.facesconfig.emf</FONT>
<BR>
Interface DocumentRoot</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/impl/DocumentRootImpl.html" title="class in org.eclipse.jst.jsf.facesconfig.emf.impl">DocumentRootImpl</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>DocumentRoot</B></DL>
</PRE>

<P>
<!-- begin-user-doc -->
 A representation of the model object '<em><b>Document Root</b></em>'.
 <!-- end-user-doc -->

 <p>
 The following features are supported:
 <ul>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMixed()"><CODE><em>Mixed</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getXMLNSPrefixMap()"><CODE><em>XMLNS Prefix Map</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getXSISchemaLocation()"><CODE><em>XSI Schema Location</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAbsoluteOrdering()"><CODE><em>Absolute Ordering</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getActionListener()"><CODE><em>Action Listener</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplication()"><CODE><em>Application</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplicationFactory()"><CODE><em>Application Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttribute()"><CODE><em>Attribute</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeClass()"><CODE><em>Attribute Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeExtension()"><CODE><em>Attribute Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeName()"><CODE><em>Attribute Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehavior()"><CODE><em>Behavior</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorClass()"><CODE><em>Behavior Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorId()"><CODE><em>Behavior Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorExtension()"><CODE><em>Behavior Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponent()"><CODE><em>Component</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentClass()"><CODE><em>Component Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentExtension()"><CODE><em>Component Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentFamily()"><CODE><em>Component Family</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentType()"><CODE><em>Component Type</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverter()"><CODE><em>Converter</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterClass()"><CODE><em>Converter Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterForClass()"><CODE><em>Converter For Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterId()"><CODE><em>Converter Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultLocale()"><CODE><em>Default Locale</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultRenderKitId()"><CODE><em>Default Render Kit Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValidators()"><CODE><em>Default Validators</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDescription()"><CODE><em>Description</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDisplayName()"><CODE><em>Display Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExceptionHandlerFactory()"><CODE><em>Exception Handler Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExternalContextFactory()"><CODE><em>External Context Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesConfig()"><CODE><em>Faces Config</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesContextFactory()"><CODE><em>Faces Context Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacet()"><CODE><em>Facet</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetExtension()"><CODE><em>Facet Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetName()"><CODE><em>Facet Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFactory()"><CODE><em>Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromAction()"><CODE><em>From Action</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromOutcome()"><CODE><em>From Outcome</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromViewId()"><CODE><em>From View Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIcon()"><CODE><em>Icon</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIf()"><CODE><em>If</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKey()"><CODE><em>Key</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKeyClass()"><CODE><em>Key Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLargeIcon()"><CODE><em>Large Icon</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycle()"><CODE><em>Lifecycle</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycleFactory()"><CODE><em>Lifecycle Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getListEntries()"><CODE><em>List Entries</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLocaleConfig()"><CODE><em>Locale Config</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBean()"><CODE><em>Managed Bean</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanClass()"><CODE><em>Managed Bean Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanName()"><CODE><em>Managed Bean Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanScope()"><CODE><em>Managed Bean Scope</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedProperty()"><CODE><em>Managed Property</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntries()"><CODE><em>Map Entries</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntry()"><CODE><em>Map Entry</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMessageBundle()"><CODE><em>Message Bundle</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getName()"><CODE><em>Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationCase()"><CODE><em>Navigation Case</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationHandler()"><CODE><em>Navigation Handler</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationRule()"><CODE><em>Navigation Rule</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNullValue()"><CODE><em>Null Value</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrdering()"><CODE><em>Ordering</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrderingOrdering()"><CODE><em>Ordering Ordering</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOthers()"><CODE><em>Others</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPartialViewContextFactory()"><CODE><em>Partial View Context Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPhaseListener()"><CODE><em>Phase Listener</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getProperty()"><CODE><em>Property</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyClass()"><CODE><em>Property Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyExtension()"><CODE><em>Property Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyName()"><CODE><em>Property Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyResolver()"><CODE><em>Property Resolver</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirect()"><CODE><em>Redirect</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirectViewParam()"><CODE><em>Redirect View Param</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBean()"><CODE><em>Referenced Bean</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanClass()"><CODE><em>Referenced Bean Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanName()"><CODE><em>Referenced Bean Name</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderer()"><CODE><em>Renderer</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererClass()"><CODE><em>Renderer Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererExtension()"><CODE><em>Renderer Extension</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererType()"><CODE><em>Renderer Type</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKit()"><CODE><em>Render Kit</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitClass()"><CODE><em>Render Kit Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitFactory()"><CODE><em>Render Kit Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitId()"><CODE><em>Render Kit Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getResourceHandler()"><CODE><em>Resource Handler</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSmallIcon()"><CODE><em>Small Icon</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSourceClass()"><CODE><em>Source Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getStateManager()"><CODE><em>State Manager</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSuggestedValue()"><CODE><em>Suggested Value</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSupportedLocale()"><CODE><em>Supported Locale</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventClass()"><CODE><em>System Event Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListener()"><CODE><em>System Event Listener</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListenerClass()"><CODE><em>System Event Listener Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getTagHandlerDelegateFactory()"><CODE><em>Tag Handler Delegate Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getToViewId()"><CODE><em>To View Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidator()"><CODE><em>Validator</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorClass()"><CODE><em>Validator Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorId()"><CODE><em>Validator Id</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValue()"><CODE><em>Value</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValueClass()"><CODE><em>Value Class</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVariableResolver()"><CODE><em>Variable Resolver</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewDeclarationLanguageFactory()"><CODE><em>View Declaration Language Factory</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewHandler()"><CODE><em>View Handler</em></CODE></A></li>
   <li><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVisitContextFactory()"><CODE><em>Visit Context Factory</em></CODE></A></li>
 </ul>
 </p>
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot()"><CODE>FacesConfigPackage.getDocumentRoot()</CODE></A></DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#copyright">copyright</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AbsoluteOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AbsoluteOrderingType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAbsoluteOrdering()">getAbsoluteOrdering</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Absolute Ordering</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ActionListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ActionListenerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getActionListener()">getActionListener</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Action Listener</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplication()">getApplication</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Application</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplicationFactory()">getApplicationFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Application Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttribute()">getAttribute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Attribute</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeClass()">getAttributeClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Attribute Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeExtension()">getAttributeExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Attribute Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeName()">getAttributeName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Attribute Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehavior()">getBehavior</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Behavior</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorClass()">getBehaviorClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Behavior Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorExtension()">getBehaviorExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Behavior Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorId()">getBehaviorId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Behavior Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponent()">getComponent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Component</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentClass()">getComponentClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Component Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentExtension()">getComponentExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Component Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentFamilyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentFamilyType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentFamily()">getComponentFamily</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Component Family</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentTypeType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentType()">getComponentType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Component Type</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverter()">getConverter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Converter</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterClass()">getConverterClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Converter Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterForClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterForClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterForClass()">getConverterForClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Converter For Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterId()">getConverterId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Converter Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultLocaleType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultLocale()">getDefaultLocale</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Default Locale</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultRenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultRenderKitIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultRenderKitId()">getDefaultRenderKitId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Default Render Kit Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValidatorsType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValidatorsType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValidators()">getDefaultValidators</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Default Validators</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValueType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValue()">getDefaultValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Default Value</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DescriptionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DescriptionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDescription()">getDescription</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Description</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DisplayNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDisplayName()">getDisplayName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Display Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExceptionHandlerFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExceptionHandlerFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExceptionHandlerFactory()">getExceptionHandlerFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Exception Handler Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExternalContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExternalContextFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExternalContextFactory()">getExternalContextFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>External Context Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesConfigType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesConfig()">getFacesConfig</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Faces Config</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesContextFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesContextFactory()">getFacesContextFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Faces Context Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacet()">getFacet</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Facet</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetExtension()">getFacetExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Facet Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetName()">getFacetName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Facet Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFactory()">getFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromActionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromActionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromAction()">getFromAction</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>From Action</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromOutcomeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromOutcomeType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromOutcome()">getFromOutcome</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>From Outcome</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromViewIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromViewId()">getFromViewId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>From View Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IconType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIcon()">getIcon</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Icon</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IfType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IfType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIf()">getIf</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>If</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKey()">getKey</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Key</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKeyClass()">getKeyClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Key Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LargeIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LargeIconType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLargeIcon()">getLargeIcon</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Large Icon</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycle()">getLifecycle</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Lifecycle</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycleFactory()">getLifecycleFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Lifecycle Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ListEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ListEntriesType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getListEntries()">getListEntries</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>List Entries</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LocaleConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LocaleConfigType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLocaleConfig()">getLocaleConfig</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Locale Config</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBean()">getManagedBean</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Managed Bean</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanClass()">getManagedBeanClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Managed Bean Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanName()">getManagedBeanName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Managed Bean Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanScopeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanScopeType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanScope()">getManagedBeanScope</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Managed Bean Scope</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedPropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedPropertyType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedProperty()">getManagedProperty</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Managed Property</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntriesType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntries()">getMapEntries</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Map Entries</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntry()">getMapEntry</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Map Entry</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MessageBundleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MessageBundleType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMessageBundle()">getMessageBundle</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Message Bundle</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;FeatureMap</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMixed()">getMixed</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Mixed</b></em>' attribute list.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getName()">getName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationCaseType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationCaseType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationCase()">getNavigationCase</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Navigation Case</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationHandlerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationHandler()">getNavigationHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Navigation Handler</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationRuleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationRuleType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationRule()">getNavigationRule</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Navigation Rule</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NullValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NullValueType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNullValue()">getNullValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Null Value</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrdering()">getOrdering</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Ordering</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOrderingType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrderingOrdering()">getOrderingOrdering</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Ordering Ordering</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOthersType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOthersType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOthers()">getOthers</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Others</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PartialViewContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PartialViewContextFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPartialViewContextFactory()">getPartialViewContextFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Partial View Context Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PhaseListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PhaseListenerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPhaseListener()">getPhaseListener</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Phase Listener</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getProperty()">getProperty</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Property</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyClass()">getPropertyClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Property Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyExtension()">getPropertyExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Property Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyName()">getPropertyName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Property Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyResolverType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyResolver()">getPropertyResolver</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Property Resolver</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirect()">getRedirect</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Redirect</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectViewParamType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectViewParamType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirectViewParam()">getRedirectViewParam</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Redirect View Param</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBean()">getReferencedBean</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Referenced Bean</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanClass()">getReferencedBeanClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Referenced Bean Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanNameType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanName()">getReferencedBeanName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Referenced Bean Name</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderer()">getRenderer</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Renderer</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererClass()">getRendererClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Renderer Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererExtensionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererExtension()">getRendererExtension</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Renderer Extension</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererTypeType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererType()">getRendererType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Renderer Type</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKit()">getRenderKit</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Render Kit</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitClass()">getRenderKitClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Render Kit Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitFactory()">getRenderKitFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Render Kit Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitId()">getRenderKitId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Render Kit Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ResourceHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ResourceHandlerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getResourceHandler()">getResourceHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Resource Handler</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SmallIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SmallIconType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSmallIcon()">getSmallIcon</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Small Icon</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SourceClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SourceClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSourceClass()">getSourceClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Source Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/StateManagerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">StateManagerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getStateManager()">getStateManager</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>State Manager</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SuggestedValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SuggestedValueType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSuggestedValue()">getSuggestedValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Suggested Value</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SupportedLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SupportedLocaleType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSupportedLocale()">getSupportedLocale</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Supported Locale</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventClass()">getSystemEventClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>System Event Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListener()">getSystemEventListener</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>System Event Listener</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListenerClass()">getSystemEventListenerClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>System Event Listener Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/TagHandlerDelegateFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">TagHandlerDelegateFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getTagHandlerDelegateFactory()">getTagHandlerDelegateFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Tag Handler Delegate Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ToViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ToViewIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getToViewId()">getToViewId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>To View Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidator()">getValidator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Validator</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorClass()">getValidatorClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Validator Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorIdType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorId()">getValidatorId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Validator Id</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValue()">getValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Value</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueClassType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValueClass()">getValueClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Value Class</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VariableResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VariableResolverType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVariableResolver()">getVariableResolver</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Variable Resolver</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewDeclarationLanguageFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewDeclarationLanguageFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewDeclarationLanguageFactory()">getViewDeclarationLanguageFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>View Declaration Language Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewHandlerType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewHandler()">getViewHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>View Handler</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VisitContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VisitContextFactoryType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVisitContextFactory()">getVisitContextFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Visit Context Factory</b></em>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;EMap</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getXMLNSPrefixMap()">getXMLNSPrefixMap</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;EMap</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getXSISchemaLocation()">getXSISchemaLocation</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>XSI Schema Location</b></em>' map.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAbsoluteOrdering(org.eclipse.jst.jsf.facesconfig.emf.AbsoluteOrderingType)">setAbsoluteOrdering</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AbsoluteOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AbsoluteOrderingType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAbsoluteOrdering()"><CODE><em>Absolute Ordering</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setActionListener(org.eclipse.jst.jsf.facesconfig.emf.ActionListenerType)">setActionListener</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ActionListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ActionListenerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getActionListener()"><CODE><em>Action Listener</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setApplication(org.eclipse.jst.jsf.facesconfig.emf.ApplicationType)">setApplication</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplication()"><CODE><em>Application</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setApplicationFactory(org.eclipse.jst.jsf.facesconfig.emf.ApplicationFactoryType)">setApplicationFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplicationFactory()"><CODE><em>Application Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttribute(org.eclipse.jst.jsf.facesconfig.emf.AttributeType)">setAttribute</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttribute()"><CODE><em>Attribute</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeClass(org.eclipse.jst.jsf.facesconfig.emf.AttributeClassType)">setAttributeClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeClass()"><CODE><em>Attribute Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeExtension(org.eclipse.jst.jsf.facesconfig.emf.AttributeExtensionType)">setAttributeExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeExtension()"><CODE><em>Attribute Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeName(org.eclipse.jst.jsf.facesconfig.emf.AttributeNameType)">setAttributeName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeName()"><CODE><em>Attribute Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehavior(org.eclipse.jst.jsf.facesconfig.emf.BehaviorType)">setBehavior</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehavior()"><CODE><em>Behavior</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorClass(org.eclipse.jst.jsf.facesconfig.emf.BehaviorClassType)">setBehaviorClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorClass()"><CODE><em>Behavior Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorExtension(org.eclipse.jst.jsf.facesconfig.emf.BehaviorExtensionType)">setBehaviorExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorExtension()"><CODE><em>Behavior Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorId(org.eclipse.jst.jsf.facesconfig.emf.BehaviorIdType)">setBehaviorId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorId()"><CODE><em>Behavior Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponent(org.eclipse.jst.jsf.facesconfig.emf.ComponentType)">setComponent</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponent()"><CODE><em>Component</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentClass(org.eclipse.jst.jsf.facesconfig.emf.ComponentClassType)">setComponentClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentClass()"><CODE><em>Component Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentExtension(org.eclipse.jst.jsf.facesconfig.emf.ComponentExtensionType)">setComponentExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentExtension()"><CODE><em>Component Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentFamily(org.eclipse.jst.jsf.facesconfig.emf.ComponentFamilyType)">setComponentFamily</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentFamilyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentFamilyType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentFamily()"><CODE><em>Component Family</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentType(org.eclipse.jst.jsf.facesconfig.emf.ComponentTypeType)">setComponentType</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentTypeType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentType()"><CODE><em>Component Type</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverter(org.eclipse.jst.jsf.facesconfig.emf.ConverterType)">setConverter</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverter()"><CODE><em>Converter</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterClassType)">setConverterClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterClass()"><CODE><em>Converter Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterForClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterForClassType)">setConverterForClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterForClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterForClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterForClass()"><CODE><em>Converter For Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterId(org.eclipse.jst.jsf.facesconfig.emf.ConverterIdType)">setConverterId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterId()"><CODE><em>Converter Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultLocale(org.eclipse.jst.jsf.facesconfig.emf.DefaultLocaleType)">setDefaultLocale</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultLocaleType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultLocale()"><CODE><em>Default Locale</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.DefaultRenderKitIdType)">setDefaultRenderKitId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultRenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultRenderKitIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultRenderKitId()"><CODE><em>Default Render Kit Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultValidators(org.eclipse.jst.jsf.facesconfig.emf.DefaultValidatorsType)">setDefaultValidators</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValidatorsType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValidatorsType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValidators()"><CODE><em>Default Validators</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultValue(org.eclipse.jst.jsf.facesconfig.emf.DefaultValueType)">setDefaultValue</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValueType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDescription(org.eclipse.jst.jsf.facesconfig.emf.DescriptionType)">setDescription</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DescriptionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DescriptionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDescription()"><CODE><em>Description</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDisplayName(org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType)">setDisplayName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DisplayNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDisplayName()"><CODE><em>Display Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setExceptionHandlerFactory(org.eclipse.jst.jsf.facesconfig.emf.ExceptionHandlerFactoryType)">setExceptionHandlerFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExceptionHandlerFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExceptionHandlerFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExceptionHandlerFactory()"><CODE><em>Exception Handler Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setExternalContextFactory(org.eclipse.jst.jsf.facesconfig.emf.ExternalContextFactoryType)">setExternalContextFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExternalContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExternalContextFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExternalContextFactory()"><CODE><em>External Context Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacesConfig(org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType)">setFacesConfig</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesConfigType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesConfig()"><CODE><em>Faces Config</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacesContextFactory(org.eclipse.jst.jsf.facesconfig.emf.FacesContextFactoryType)">setFacesContextFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesContextFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesContextFactory()"><CODE><em>Faces Context Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacet(org.eclipse.jst.jsf.facesconfig.emf.FacetType)">setFacet</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacet()"><CODE><em>Facet</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacetExtension(org.eclipse.jst.jsf.facesconfig.emf.FacetExtensionType)">setFacetExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetExtension()"><CODE><em>Facet Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacetName(org.eclipse.jst.jsf.facesconfig.emf.FacetNameType)">setFacetName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetName()"><CODE><em>Facet Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFactory(org.eclipse.jst.jsf.facesconfig.emf.FactoryType)">setFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFactory()"><CODE><em>Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromAction(org.eclipse.jst.jsf.facesconfig.emf.FromActionType)">setFromAction</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromActionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromActionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromAction()"><CODE><em>From Action</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromOutcome(org.eclipse.jst.jsf.facesconfig.emf.FromOutcomeType)">setFromOutcome</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromOutcomeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromOutcomeType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromOutcome()"><CODE><em>From Outcome</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromViewId(org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType)">setFromViewId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromViewIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromViewId()"><CODE><em>From View Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setIcon(org.eclipse.jst.jsf.facesconfig.emf.IconType)">setIcon</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IconType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIcon()"><CODE><em>Icon</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setIf(org.eclipse.jst.jsf.facesconfig.emf.IfType)">setIf</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IfType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IfType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIf()"><CODE><em>If</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setKey(org.eclipse.jst.jsf.facesconfig.emf.KeyType)">setKey</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKey()"><CODE><em>Key</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setKeyClass(org.eclipse.jst.jsf.facesconfig.emf.KeyClassType)">setKeyClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKeyClass()"><CODE><em>Key Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLargeIcon(org.eclipse.jst.jsf.facesconfig.emf.LargeIconType)">setLargeIcon</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LargeIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LargeIconType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLargeIcon()"><CODE><em>Large Icon</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLifecycle(org.eclipse.jst.jsf.facesconfig.emf.LifecycleType)">setLifecycle</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycle()"><CODE><em>Lifecycle</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLifecycleFactory(org.eclipse.jst.jsf.facesconfig.emf.LifecycleFactoryType)">setLifecycleFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycleFactory()"><CODE><em>Lifecycle Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setListEntries(org.eclipse.jst.jsf.facesconfig.emf.ListEntriesType)">setListEntries</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ListEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ListEntriesType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getListEntries()"><CODE><em>List Entries</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLocaleConfig(org.eclipse.jst.jsf.facesconfig.emf.LocaleConfigType)">setLocaleConfig</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LocaleConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LocaleConfigType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLocaleConfig()"><CODE><em>Locale Config</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBean(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType)">setManagedBean</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBean()"><CODE><em>Managed Bean</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanClassType)">setManagedBeanClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanClass()"><CODE><em>Managed Bean Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanNameType)">setManagedBeanName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanName()"><CODE><em>Managed Bean Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanScope(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanScopeType)">setManagedBeanScope</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanScopeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanScopeType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanScope()"><CODE><em>Managed Bean Scope</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedProperty(org.eclipse.jst.jsf.facesconfig.emf.ManagedPropertyType)">setManagedProperty</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedPropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedPropertyType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedProperty()"><CODE><em>Managed Property</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMapEntries(org.eclipse.jst.jsf.facesconfig.emf.MapEntriesType)">setMapEntries</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntriesType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntries()"><CODE><em>Map Entries</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMapEntry(org.eclipse.jst.jsf.facesconfig.emf.MapEntryType)">setMapEntry</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntry()"><CODE><em>Map Entry</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMessageBundle(org.eclipse.jst.jsf.facesconfig.emf.MessageBundleType)">setMessageBundle</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MessageBundleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MessageBundleType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMessageBundle()"><CODE><em>Message Bundle</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setName(org.eclipse.jst.jsf.facesconfig.emf.NameType)">setName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getName()"><CODE><em>Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationCase(org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType)">setNavigationCase</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationCaseType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationCaseType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationCase()"><CODE><em>Navigation Case</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationHandler(org.eclipse.jst.jsf.facesconfig.emf.NavigationHandlerType)">setNavigationHandler</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationHandlerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationHandler()"><CODE><em>Navigation Handler</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationRule(org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType)">setNavigationRule</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationRuleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationRuleType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationRule()"><CODE><em>Navigation Rule</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNullValue(org.eclipse.jst.jsf.facesconfig.emf.NullValueType)">setNullValue</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NullValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NullValueType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNullValue()"><CODE><em>Null Value</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingType)">setOrdering</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrdering()"><CODE><em>Ordering</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOrderingOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingOrderingType)">setOrderingOrdering</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOrderingType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrderingOrdering()"><CODE><em>Ordering Ordering</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOthers(org.eclipse.jst.jsf.facesconfig.emf.OrderingOthersType)">setOthers</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOthersType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOthersType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOthers()"><CODE><em>Others</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPartialViewContextFactory(org.eclipse.jst.jsf.facesconfig.emf.PartialViewContextFactoryType)">setPartialViewContextFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PartialViewContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PartialViewContextFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPartialViewContextFactory()"><CODE><em>Partial View Context Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPhaseListener(org.eclipse.jst.jsf.facesconfig.emf.PhaseListenerType)">setPhaseListener</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PhaseListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PhaseListenerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPhaseListener()"><CODE><em>Phase Listener</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setProperty(org.eclipse.jst.jsf.facesconfig.emf.PropertyType)">setProperty</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getProperty()"><CODE><em>Property</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyClass(org.eclipse.jst.jsf.facesconfig.emf.PropertyClassType)">setPropertyClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyClass()"><CODE><em>Property Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyExtension(org.eclipse.jst.jsf.facesconfig.emf.PropertyExtensionType)">setPropertyExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyExtension()"><CODE><em>Property Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyName(org.eclipse.jst.jsf.facesconfig.emf.PropertyNameType)">setPropertyName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyName()"><CODE><em>Property Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyResolver(org.eclipse.jst.jsf.facesconfig.emf.PropertyResolverType)">setPropertyResolver</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyResolverType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyResolver()"><CODE><em>Property Resolver</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRedirect(org.eclipse.jst.jsf.facesconfig.emf.RedirectType)">setRedirect</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirect()"><CODE><em>Redirect</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRedirectViewParam(org.eclipse.jst.jsf.facesconfig.emf.RedirectViewParamType)">setRedirectViewParam</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectViewParamType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectViewParamType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirectViewParam()"><CODE><em>Redirect View Param</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBean(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanType)">setReferencedBean</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBean()"><CODE><em>Referenced Bean</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanClassType)">setReferencedBeanClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanClass()"><CODE><em>Referenced Bean Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanNameType)">setReferencedBeanName</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanNameType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanName()"><CODE><em>Referenced Bean Name</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderer(org.eclipse.jst.jsf.facesconfig.emf.RendererType)">setRenderer</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderer()"><CODE><em>Renderer</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererClass(org.eclipse.jst.jsf.facesconfig.emf.RendererClassType)">setRendererClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererClass()"><CODE><em>Renderer Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererExtension(org.eclipse.jst.jsf.facesconfig.emf.RendererExtensionType)">setRendererExtension</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererExtensionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererExtension()"><CODE><em>Renderer Extension</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererType(org.eclipse.jst.jsf.facesconfig.emf.RendererTypeType)">setRendererType</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererTypeType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererType()"><CODE><em>Renderer Type</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKit(org.eclipse.jst.jsf.facesconfig.emf.RenderKitType)">setRenderKit</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKit()"><CODE><em>Render Kit</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitClass(org.eclipse.jst.jsf.facesconfig.emf.RenderKitClassType)">setRenderKitClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitClass()"><CODE><em>Render Kit Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitFactory(org.eclipse.jst.jsf.facesconfig.emf.RenderKitFactoryType)">setRenderKitFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitFactory()"><CODE><em>Render Kit Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.RenderKitIdType)">setRenderKitId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitId()"><CODE><em>Render Kit Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setResourceHandler(org.eclipse.jst.jsf.facesconfig.emf.ResourceHandlerType)">setResourceHandler</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ResourceHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ResourceHandlerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getResourceHandler()"><CODE><em>Resource Handler</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSmallIcon(org.eclipse.jst.jsf.facesconfig.emf.SmallIconType)">setSmallIcon</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SmallIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SmallIconType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSmallIcon()"><CODE><em>Small Icon</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSourceClass(org.eclipse.jst.jsf.facesconfig.emf.SourceClassType)">setSourceClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SourceClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SourceClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSourceClass()"><CODE><em>Source Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setStateManager(org.eclipse.jst.jsf.facesconfig.emf.StateManagerType)">setStateManager</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/StateManagerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">StateManagerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getStateManager()"><CODE><em>State Manager</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSuggestedValue(org.eclipse.jst.jsf.facesconfig.emf.SuggestedValueType)">setSuggestedValue</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SuggestedValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SuggestedValueType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSuggestedValue()"><CODE><em>Suggested Value</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSupportedLocale(org.eclipse.jst.jsf.facesconfig.emf.SupportedLocaleType)">setSupportedLocale</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SupportedLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SupportedLocaleType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSupportedLocale()"><CODE><em>Supported Locale</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventClassType)">setSystemEventClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventClass()"><CODE><em>System Event Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventListener(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerType)">setSystemEventListener</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListener()"><CODE><em>System Event Listener</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventListenerClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerClassType)">setSystemEventListenerClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListenerClass()"><CODE><em>System Event Listener Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setTagHandlerDelegateFactory(org.eclipse.jst.jsf.facesconfig.emf.TagHandlerDelegateFactoryType)">setTagHandlerDelegateFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/TagHandlerDelegateFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">TagHandlerDelegateFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getTagHandlerDelegateFactory()"><CODE><em>Tag Handler Delegate Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setToViewId(org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType)">setToViewId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ToViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ToViewIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getToViewId()"><CODE><em>To View Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidator(org.eclipse.jst.jsf.facesconfig.emf.ValidatorType)">setValidator</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidator()"><CODE><em>Validator</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidatorClass(org.eclipse.jst.jsf.facesconfig.emf.ValidatorClassType)">setValidatorClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorClass()"><CODE><em>Validator Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidatorId(org.eclipse.jst.jsf.facesconfig.emf.ValidatorIdType)">setValidatorId</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorIdType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorId()"><CODE><em>Validator Id</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValue(org.eclipse.jst.jsf.facesconfig.emf.ValueType)">setValue</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValue()"><CODE><em>Value</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValueClass(org.eclipse.jst.jsf.facesconfig.emf.ValueClassType)">setValueClass</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueClassType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValueClass()"><CODE><em>Value Class</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setVariableResolver(org.eclipse.jst.jsf.facesconfig.emf.VariableResolverType)">setVariableResolver</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VariableResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VariableResolverType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVariableResolver()"><CODE><em>Variable Resolver</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setViewDeclarationLanguageFactory(org.eclipse.jst.jsf.facesconfig.emf.ViewDeclarationLanguageFactoryType)">setViewDeclarationLanguageFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewDeclarationLanguageFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewDeclarationLanguageFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewDeclarationLanguageFactory()"><CODE><em>View Declaration Language Factory</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setViewHandler(org.eclipse.jst.jsf.facesconfig.emf.ViewHandlerType)">setViewHandler</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewHandlerType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewHandler()"><CODE><em>View Handler</em></CODE></A>' containment reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setVisitContextFactory(org.eclipse.jst.jsf.facesconfig.emf.VisitContextFactoryType)">setVisitContextFactory</A></B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VisitContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VisitContextFactoryType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVisitContextFactory()"><CODE><em>Visit Context Factory</em></CODE></A>' containment reference</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="copyright"><!-- --></A><H3>
copyright</H3>
<PRE>
static final java.lang.String <B>copyright</B></PRE>
<DL>
<DD><!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../constant-values.html#org.eclipse.jst.jsf.facesconfig.emf.DocumentRoot.copyright">Constant Field Values</A></DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getMixed()"><!-- --></A><H3>
getMixed</H3>
<PRE>
FeatureMap <B>getMixed</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Mixed</b></em>' attribute list.
 The list contents are of type <CODE>org.eclipse.emf.ecore.util.FeatureMap.Entry</CODE>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Mixed</em>' attribute list.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Mixed()"><CODE>FacesConfigPackage.getDocumentRoot_Mixed()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getXMLNSPrefixMap()"><!-- --></A><H3>
getXMLNSPrefixMap</H3>
<PRE>
EMap <B>getXMLNSPrefixMap</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
 The key is of type <CODE>String</CODE>,
 and the value is of type <CODE>String</CODE>,
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>XMLNS Prefix Map</em>' map isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>XMLNS Prefix Map</em>' map.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_XMLNSPrefixMap()"><CODE>FacesConfigPackage.getDocumentRoot_XMLNSPrefixMap()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getXSISchemaLocation()"><!-- --></A><H3>
getXSISchemaLocation</H3>
<PRE>
EMap <B>getXSISchemaLocation</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
 The key is of type <CODE>String</CODE>,
 and the value is of type <CODE>String</CODE>,
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>XSI Schema Location</em>' map isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>XSI Schema Location</em>' map.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_XSISchemaLocation()"><CODE>FacesConfigPackage.getDocumentRoot_XSISchemaLocation()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAbsoluteOrdering()"><!-- --></A><H3>
getAbsoluteOrdering</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AbsoluteOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AbsoluteOrderingType</A> <B>getAbsoluteOrdering</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Absolute Ordering</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Absolute Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAbsoluteOrdering(org.eclipse.jst.jsf.facesconfig.emf.AbsoluteOrderingType)"><CODE>setAbsoluteOrdering(AbsoluteOrderingType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_AbsoluteOrdering()"><CODE>FacesConfigPackage.getDocumentRoot_AbsoluteOrdering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setAbsoluteOrdering(org.eclipse.jst.jsf.facesconfig.emf.AbsoluteOrderingType)"><!-- --></A><H3>
setAbsoluteOrdering</H3>
<PRE>
void <B>setAbsoluteOrdering</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AbsoluteOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AbsoluteOrderingType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAbsoluteOrdering()"><CODE><em>Absolute Ordering</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Absolute Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAbsoluteOrdering()"><CODE>getAbsoluteOrdering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getActionListener()"><!-- --></A><H3>
getActionListener</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ActionListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ActionListenerType</A> <B>getActionListener</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Action Listener</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
  ==================== Subordinate
                 Elements ============================       The
                 "action-listener" element contains the fully
                 qualified class name     of the concrete ActionListener
                 implementation class that will be called     during the
                 Invoke Application phase of the request processing
                 lifecycle.     It must be of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Action Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setActionListener(org.eclipse.jst.jsf.facesconfig.emf.ActionListenerType)"><CODE>setActionListener(ActionListenerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ActionListener()"><CODE>FacesConfigPackage.getDocumentRoot_ActionListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setActionListener(org.eclipse.jst.jsf.facesconfig.emf.ActionListenerType)"><!-- --></A><H3>
setActionListener</H3>
<PRE>
void <B>setActionListener</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ActionListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ActionListenerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getActionListener()"><CODE><em>Action Listener</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Action Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getActionListener()"><CODE>getActionListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getApplication()"><!-- --></A><H3>
getApplication</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationType</A> <B>getApplication</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Application</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
  ==================== Definition Elements
                 =============================       The
                 "application" element provides a mechanism to
                 define the various     per-application-singleton
                 implementation classes for a particular web
                 application that is utilizing JavaServer Faces.  For
                 nested elements     that are not specified, the JSF
                 implementation must provide a suitable     default. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Application</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setApplication(org.eclipse.jst.jsf.facesconfig.emf.ApplicationType)"><CODE>setApplication(ApplicationType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Application()"><CODE>FacesConfigPackage.getDocumentRoot_Application()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setApplication(org.eclipse.jst.jsf.facesconfig.emf.ApplicationType)"><!-- --></A><H3>
setApplication</H3>
<PRE>
void <B>setApplication</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplication()"><CODE><em>Application</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Application</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplication()"><CODE>getApplication()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getApplicationFactory()"><!-- --></A><H3>
getApplicationFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationFactoryType</A> <B>getApplicationFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Application Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "application-factory"
                 element contains the fully qualified class     name of
                 the concrete ApplicationFactory implementation class
                 that     will be called when
                 FactoryFinder.getFactory(APPLICATION_FACTORY) is
                 called. It must be of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Application Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setApplicationFactory(org.eclipse.jst.jsf.facesconfig.emf.ApplicationFactoryType)"><CODE>setApplicationFactory(ApplicationFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ApplicationFactory()"><CODE>FacesConfigPackage.getDocumentRoot_ApplicationFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setApplicationFactory(org.eclipse.jst.jsf.facesconfig.emf.ApplicationFactoryType)"><!-- --></A><H3>
setApplicationFactory</H3>
<PRE>
void <B>setApplicationFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ApplicationFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ApplicationFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplicationFactory()"><CODE><em>Application Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Application Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getApplicationFactory()"><CODE>getApplicationFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAttribute()"><!-- --></A><H3>
getAttribute</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeType</A> <B>getAttribute</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Attribute</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "attribute" element
                 represents a named, typed, value associated with     the
                 parent UIComponent via the generic attributes mechanism.
                 Attribute names must be unique within the scope of the
                 parent (or related)     component. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Attribute</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttribute(org.eclipse.jst.jsf.facesconfig.emf.AttributeType)"><CODE>setAttribute(AttributeType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Attribute()"><CODE>FacesConfigPackage.getDocumentRoot_Attribute()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setAttribute(org.eclipse.jst.jsf.facesconfig.emf.AttributeType)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
void <B>setAttribute</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttribute()"><CODE><em>Attribute</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Attribute</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttribute()"><CODE>getAttribute()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeClass()"><!-- --></A><H3>
getAttributeClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeClassType</A> <B>getAttributeClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Attribute Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "attribute-class" element represents the Java type of the value
     associated with this attribute name.  It must be of type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Attribute Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeClass(org.eclipse.jst.jsf.facesconfig.emf.AttributeClassType)"><CODE>setAttributeClass(AttributeClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_AttributeClass()"><CODE>FacesConfigPackage.getDocumentRoot_AttributeClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setAttributeClass(org.eclipse.jst.jsf.facesconfig.emf.AttributeClassType)"><!-- --></A><H3>
setAttributeClass</H3>
<PRE>
void <B>setAttributeClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeClass()"><CODE><em>Attribute Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Attribute Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeClass()"><CODE>getAttributeClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeExtension()"><!-- --></A><H3>
getAttributeExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeExtensionType</A> <B>getAttributeExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Attribute Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       Extension element for attribute.
                 May contain implementation     specific content. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Attribute Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeExtension(org.eclipse.jst.jsf.facesconfig.emf.AttributeExtensionType)"><CODE>setAttributeExtension(AttributeExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_AttributeExtension()"><CODE>FacesConfigPackage.getDocumentRoot_AttributeExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setAttributeExtension(org.eclipse.jst.jsf.facesconfig.emf.AttributeExtensionType)"><!-- --></A><H3>
setAttributeExtension</H3>
<PRE>
void <B>setAttributeExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeExtension()"><CODE><em>Attribute Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Attribute Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeExtension()"><CODE>getAttributeExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeName()"><!-- --></A><H3>
getAttributeName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeNameType</A> <B>getAttributeName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Attribute Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "attribute-name"
                 element represents the name under which the
                 corresponding value will be stored, in the generic
                 attributes of the     UIComponent we are related to. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Attribute Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setAttributeName(org.eclipse.jst.jsf.facesconfig.emf.AttributeNameType)"><CODE>setAttributeName(AttributeNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_AttributeName()"><CODE>FacesConfigPackage.getDocumentRoot_AttributeName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setAttributeName(org.eclipse.jst.jsf.facesconfig.emf.AttributeNameType)"><!-- --></A><H3>
setAttributeName</H3>
<PRE>
void <B>setAttributeName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/AttributeNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">AttributeNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeName()"><CODE><em>Attribute Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Attribute Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getAttributeName()"><CODE>getAttributeName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getBehavior()"><!-- --></A><H3>
getBehavior</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorType</A> <B>getBehavior</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Behavior</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Behavior</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehavior(org.eclipse.jst.jsf.facesconfig.emf.BehaviorType)"><CODE>setBehavior(BehaviorType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Behavior()"><CODE>FacesConfigPackage.getDocumentRoot_Behavior()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setBehavior(org.eclipse.jst.jsf.facesconfig.emf.BehaviorType)"><!-- --></A><H3>
setBehavior</H3>
<PRE>
void <B>setBehavior</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehavior()"><CODE><em>Behavior</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Behavior</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehavior()"><CODE>getBehavior()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getBehaviorClass()"><!-- --></A><H3>
getBehaviorClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorClassType</A> <B>getBehaviorClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Behavior Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Behavior Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorClass(org.eclipse.jst.jsf.facesconfig.emf.BehaviorClassType)"><CODE>setBehaviorClass(BehaviorClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_BehaviorClass()"><CODE>FacesConfigPackage.getDocumentRoot_BehaviorClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setBehaviorClass(org.eclipse.jst.jsf.facesconfig.emf.BehaviorClassType)"><!-- --></A><H3>
setBehaviorClass</H3>
<PRE>
void <B>setBehaviorClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorClass()"><CODE><em>Behavior Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Behavior Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorClass()"><CODE>getBehaviorClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getBehaviorId()"><!-- --></A><H3>
getBehaviorId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorIdType</A> <B>getBehaviorId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Behavior Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Behavior Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorId(org.eclipse.jst.jsf.facesconfig.emf.BehaviorIdType)"><CODE>setBehaviorId(BehaviorIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_BehaviorId()"><CODE>FacesConfigPackage.getDocumentRoot_BehaviorId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setBehaviorId(org.eclipse.jst.jsf.facesconfig.emf.BehaviorIdType)"><!-- --></A><H3>
setBehaviorId</H3>
<PRE>
void <B>setBehaviorId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorId()"><CODE><em>Behavior Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Behavior Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorId()"><CODE>getBehaviorId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getBehaviorExtension()"><!-- --></A><H3>
getBehaviorExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorExtensionType</A> <B>getBehaviorExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Behavior Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Behavior Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setBehaviorExtension(org.eclipse.jst.jsf.facesconfig.emf.BehaviorExtensionType)"><CODE>setBehaviorExtension(BehaviorExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_BehaviorExtension()"><CODE>FacesConfigPackage.getDocumentRoot_BehaviorExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setBehaviorExtension(org.eclipse.jst.jsf.facesconfig.emf.BehaviorExtensionType)"><!-- --></A><H3>
setBehaviorExtension</H3>
<PRE>
void <B>setBehaviorExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/BehaviorExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">BehaviorExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorExtension()"><CODE><em>Behavior Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Behavior Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getBehaviorExtension()"><CODE>getBehaviorExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getComponent()"><!-- --></A><H3>
getComponent</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentType</A> <B>getComponent</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Component</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "component" element
                 represents a concrete UIComponent implementation
                 class that should be registered under the specified type
                 identifier,     along with its associated properties and
                 attributes.  Component types must     be unique within
                 the entire web application.      Nested
                 "attribute" elements identify generic
                 attributes that are recognized     by the implementation
                 logic of this component.  Nested "property"
                 elements     identify JavaBeans properties of the
                 component class that may be exposed     for manipulation
                 via tools. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Component</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponent(org.eclipse.jst.jsf.facesconfig.emf.ComponentType)"><CODE>setComponent(ComponentType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Component()"><CODE>FacesConfigPackage.getDocumentRoot_Component()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setComponent(org.eclipse.jst.jsf.facesconfig.emf.ComponentType)"><!-- --></A><H3>
setComponent</H3>
<PRE>
void <B>setComponent</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponent()"><CODE><em>Component</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Component</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponent()"><CODE>getComponent()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getComponentClass()"><!-- --></A><H3>
getComponentClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentClassType</A> <B>getComponentClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Component Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "component-class"
                 element represents the fully qualified class name     of
                 a concrete UIComponent implementation class.  It must be
                 of     type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Component Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentClass(org.eclipse.jst.jsf.facesconfig.emf.ComponentClassType)"><CODE>setComponentClass(ComponentClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ComponentClass()"><CODE>FacesConfigPackage.getDocumentRoot_ComponentClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setComponentClass(org.eclipse.jst.jsf.facesconfig.emf.ComponentClassType)"><!-- --></A><H3>
setComponentClass</H3>
<PRE>
void <B>setComponentClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentClass()"><CODE><em>Component Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Component Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentClass()"><CODE>getComponentClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getComponentExtension()"><!-- --></A><H3>
getComponentExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentExtensionType</A> <B>getComponentExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Component Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       Extension element for component.
                 May contain implementation     specific content. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Component Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentExtension(org.eclipse.jst.jsf.facesconfig.emf.ComponentExtensionType)"><CODE>setComponentExtension(ComponentExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ComponentExtension()"><CODE>FacesConfigPackage.getDocumentRoot_ComponentExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setComponentExtension(org.eclipse.jst.jsf.facesconfig.emf.ComponentExtensionType)"><!-- --></A><H3>
setComponentExtension</H3>
<PRE>
void <B>setComponentExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentExtension()"><CODE><em>Component Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Component Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentExtension()"><CODE>getComponentExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getComponentFamily()"><!-- --></A><H3>
getComponentFamily</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentFamilyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentFamilyType</A> <B>getComponentFamily</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Component Family</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "component-family" element represents the component family for
     which the Renderer represented by the parent "renderer" element will be
     used.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Component Family</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentFamily(org.eclipse.jst.jsf.facesconfig.emf.ComponentFamilyType)"><CODE>setComponentFamily(ComponentFamilyType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ComponentFamily()"><CODE>FacesConfigPackage.getDocumentRoot_ComponentFamily()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setComponentFamily(org.eclipse.jst.jsf.facesconfig.emf.ComponentFamilyType)"><!-- --></A><H3>
setComponentFamily</H3>
<PRE>
void <B>setComponentFamily</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentFamilyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentFamilyType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentFamily()"><CODE><em>Component Family</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Component Family</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentFamily()"><CODE>getComponentFamily()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getComponentType()"><!-- --></A><H3>
getComponentType</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentTypeType</A> <B>getComponentType</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Component Type</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "component-type"
                 element represents the name under which the
                 corresponding UIComponent class should be registered. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Component Type</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setComponentType(org.eclipse.jst.jsf.facesconfig.emf.ComponentTypeType)"><CODE>setComponentType(ComponentTypeType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ComponentType()"><CODE>FacesConfigPackage.getDocumentRoot_ComponentType()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setComponentType(org.eclipse.jst.jsf.facesconfig.emf.ComponentTypeType)"><!-- --></A><H3>
setComponentType</H3>
<PRE>
void <B>setComponentType</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ComponentTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ComponentTypeType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentType()"><CODE><em>Component Type</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Component Type</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getComponentType()"><CODE>getComponentType()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getConverter()"><!-- --></A><H3>
getConverter</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterType</A> <B>getConverter</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Converter</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "converter" element
                 represents a concrete Converter implementation     class
                 that should be registered under the specified converter
                 identifier.     Converter identifiers must be unique
                 within the entire web application.      Nested
                 "attribute" elements identify generic
                 attributes that may be     configured on the
                 corresponding UIComponent in order to affect the
                 operation of the Converter.  Nested "property"
                 elements identify JavaBeans     properties of the
                 Converter implementation class that may be configured
                 to affect the operation of the Converter. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Converter</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverter(org.eclipse.jst.jsf.facesconfig.emf.ConverterType)"><CODE>setConverter(ConverterType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Converter()"><CODE>FacesConfigPackage.getDocumentRoot_Converter()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setConverter(org.eclipse.jst.jsf.facesconfig.emf.ConverterType)"><!-- --></A><H3>
setConverter</H3>
<PRE>
void <B>setConverter</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverter()"><CODE><em>Converter</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Converter</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverter()"><CODE>getConverter()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getConverterClass()"><!-- --></A><H3>
getConverterClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterClassType</A> <B>getConverterClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Converter Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "converter-class" element represents the fully qualified class name
     of a concrete Converter implementation class.  It must be of
     type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Converter Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterClassType)"><CODE>setConverterClass(ConverterClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ConverterClass()"><CODE>FacesConfigPackage.getDocumentRoot_ConverterClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setConverterClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterClassType)"><!-- --></A><H3>
setConverterClass</H3>
<PRE>
void <B>setConverterClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterClass()"><CODE><em>Converter Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Converter Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterClass()"><CODE>getConverterClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getConverterForClass()"><!-- --></A><H3>
getConverterForClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterForClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterForClassType</A> <B>getConverterForClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Converter For Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "converter-for-class" element represents the fully qualified class name
     for which a Converter class will be registered.  It must be of
     type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Converter For Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterForClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterForClassType)"><CODE>setConverterForClass(ConverterForClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ConverterForClass()"><CODE>FacesConfigPackage.getDocumentRoot_ConverterForClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setConverterForClass(org.eclipse.jst.jsf.facesconfig.emf.ConverterForClassType)"><!-- --></A><H3>
setConverterForClass</H3>
<PRE>
void <B>setConverterForClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterForClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterForClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterForClass()"><CODE><em>Converter For Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Converter For Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterForClass()"><CODE>getConverterForClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getConverterId()"><!-- --></A><H3>
getConverterId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterIdType</A> <B>getConverterId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Converter Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "converter-id" element represents the identifier under which the
     corresponding Converter class should be registered.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Converter Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setConverterId(org.eclipse.jst.jsf.facesconfig.emf.ConverterIdType)"><CODE>setConverterId(ConverterIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ConverterId()"><CODE>FacesConfigPackage.getDocumentRoot_ConverterId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setConverterId(org.eclipse.jst.jsf.facesconfig.emf.ConverterIdType)"><!-- --></A><H3>
setConverterId</H3>
<PRE>
void <B>setConverterId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ConverterIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ConverterIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterId()"><CODE><em>Converter Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Converter Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getConverterId()"><CODE>getConverterId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultLocale()"><!-- --></A><H3>
getDefaultLocale</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultLocaleType</A> <B>getDefaultLocale</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Default Locale</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       The "default-locale"
                 element declares the default locale for this
                 application instance.  It must be specified as
                 :language:[_:country:[_:variant:]] without the colons,
                 for example      "ja_JP_SJIS".  The separators
                 between the segments may be '-' or
                 '_'. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Default Locale</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultLocale(org.eclipse.jst.jsf.facesconfig.emf.DefaultLocaleType)"><CODE>setDefaultLocale(DefaultLocaleType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_DefaultLocale()"><CODE>FacesConfigPackage.getDocumentRoot_DefaultLocale()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultLocale(org.eclipse.jst.jsf.facesconfig.emf.DefaultLocaleType)"><!-- --></A><H3>
setDefaultLocale</H3>
<PRE>
void <B>setDefaultLocale</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultLocaleType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultLocale()"><CODE><em>Default Locale</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Default Locale</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultLocale()"><CODE>getDefaultLocale()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultRenderKitId()"><!-- --></A><H3>
getDefaultRenderKitId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultRenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultRenderKitIdType</A> <B>getDefaultRenderKitId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Default Render Kit Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "default-render-kit-id" element allows the application to define
     a renderkit to be used other than the standard one. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Default Render Kit Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.DefaultRenderKitIdType)"><CODE>setDefaultRenderKitId(DefaultRenderKitIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_DefaultRenderKitId()"><CODE>FacesConfigPackage.getDocumentRoot_DefaultRenderKitId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.DefaultRenderKitIdType)"><!-- --></A><H3>
setDefaultRenderKitId</H3>
<PRE>
void <B>setDefaultRenderKitId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultRenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultRenderKitIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultRenderKitId()"><CODE><em>Default Render Kit Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Default Render Kit Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultRenderKitId()"><CODE>getDefaultRenderKitId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultValidators()"><!-- --></A><H3>
getDefaultValidators</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValidatorsType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValidatorsType</A> <B>getDefaultValidators</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Default Validators</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Default Validators</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultValidators(org.eclipse.jst.jsf.facesconfig.emf.DefaultValidatorsType)"><CODE>setDefaultValidators(DefaultValidatorsType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_DefaultValidators()"><CODE>FacesConfigPackage.getDocumentRoot_DefaultValidators()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultValidators(org.eclipse.jst.jsf.facesconfig.emf.DefaultValidatorsType)"><!-- --></A><H3>
setDefaultValidators</H3>
<PRE>
void <B>setDefaultValidators</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValidatorsType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValidatorsType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValidators()"><CODE><em>Default Validators</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Default Validators</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValidators()"><CODE>getDefaultValidators()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultValue()"><!-- --></A><H3>
getDefaultValue</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValueType</A> <B>getDefaultValue</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Default Value</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "default-value" contains the value for the property or attribute
     in which this element resides.  This value differs from the
     "suggested-value" in that the property or attribute must take the
     value, whereas in "suggested-value" taking the value is optional.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Default Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDefaultValue(org.eclipse.jst.jsf.facesconfig.emf.DefaultValueType)"><CODE>setDefaultValue(DefaultValueType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_DefaultValue()"><CODE>FacesConfigPackage.getDocumentRoot_DefaultValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultValue(org.eclipse.jst.jsf.facesconfig.emf.DefaultValueType)"><!-- --></A><H3>
setDefaultValue</H3>
<PRE>
void <B>setDefaultValue</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DefaultValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DefaultValueType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Default Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDefaultValue()"><CODE>getDefaultValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDescription()"><!-- --></A><H3>
getDescription</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DescriptionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DescriptionType</A> <B>getDescription</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Description</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "description" element
                 contains a textual description of the element     it is
                 nested in, optionally flagged with a language code using
                 the     "xml:lang" attribute. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Description</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDescription(org.eclipse.jst.jsf.facesconfig.emf.DescriptionType)"><CODE>setDescription(DescriptionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Description()"><CODE>FacesConfigPackage.getDocumentRoot_Description()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDescription(org.eclipse.jst.jsf.facesconfig.emf.DescriptionType)"><!-- --></A><H3>
setDescription</H3>
<PRE>
void <B>setDescription</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DescriptionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DescriptionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDescription()"><CODE><em>Description</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Description</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDescription()"><CODE>getDescription()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDisplayName()"><!-- --></A><H3>
getDisplayName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DisplayNameType</A> <B>getDisplayName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Display Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "display-name" element
                 is a short descriptive name describing the     entity
                 associated with the element it is nested in, intended to
                 be     displayed by tools, and optionally flagged with a
                 language code using     the "xml:lang"
                 attribute. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Display Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setDisplayName(org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType)"><CODE>setDisplayName(DisplayNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_DisplayName()"><CODE>FacesConfigPackage.getDocumentRoot_DisplayName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDisplayName(org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType)"><!-- --></A><H3>
setDisplayName</H3>
<PRE>
void <B>setDisplayName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">DisplayNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDisplayName()"><CODE><em>Display Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Display Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getDisplayName()"><CODE>getDisplayName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getExceptionHandlerFactory()"><!-- --></A><H3>
getExceptionHandlerFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExceptionHandlerFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExceptionHandlerFactoryType</A> <B>getExceptionHandlerFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Exception Handler Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Exception Handler Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setExceptionHandlerFactory(org.eclipse.jst.jsf.facesconfig.emf.ExceptionHandlerFactoryType)"><CODE>setExceptionHandlerFactory(ExceptionHandlerFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ExceptionHandlerFactory()"><CODE>FacesConfigPackage.getDocumentRoot_ExceptionHandlerFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setExceptionHandlerFactory(org.eclipse.jst.jsf.facesconfig.emf.ExceptionHandlerFactoryType)"><!-- --></A><H3>
setExceptionHandlerFactory</H3>
<PRE>
void <B>setExceptionHandlerFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExceptionHandlerFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExceptionHandlerFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExceptionHandlerFactory()"><CODE><em>Exception Handler Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Exception Handler Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExceptionHandlerFactory()"><CODE>getExceptionHandlerFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getExternalContextFactory()"><!-- --></A><H3>
getExternalContextFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExternalContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExternalContextFactoryType</A> <B>getExternalContextFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>External Context Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>External Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setExternalContextFactory(org.eclipse.jst.jsf.facesconfig.emf.ExternalContextFactoryType)"><CODE>setExternalContextFactory(ExternalContextFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ExternalContextFactory()"><CODE>FacesConfigPackage.getDocumentRoot_ExternalContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setExternalContextFactory(org.eclipse.jst.jsf.facesconfig.emf.ExternalContextFactoryType)"><!-- --></A><H3>
setExternalContextFactory</H3>
<PRE>
void <B>setExternalContextFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ExternalContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ExternalContextFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExternalContextFactory()"><CODE><em>External Context Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>External Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getExternalContextFactory()"><CODE>getExternalContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFacesConfig()"><!-- --></A><H3>
getFacesConfig</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesConfigType</A> <B>getFacesConfig</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Faces Config</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
  ==================== Top Level Elements
                 ==============================       The
                 "faces-config" element is the root of the
                 configuration information     hierarchy, and contains
                 nested elements for all of the other configuration
                 settings. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Faces Config</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacesConfig(org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType)"><CODE>setFacesConfig(FacesConfigType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FacesConfig()"><CODE>FacesConfigPackage.getDocumentRoot_FacesConfig()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFacesConfig(org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType)"><!-- --></A><H3>
setFacesConfig</H3>
<PRE>
void <B>setFacesConfig</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesConfigType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesConfig()"><CODE><em>Faces Config</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Faces Config</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesConfig()"><CODE>getFacesConfig()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFacesContextFactory()"><!-- --></A><H3>
getFacesContextFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesContextFactoryType</A> <B>getFacesContextFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Faces Context Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The
                 "faces-context-factory" element contains the
                 fully qualified     class name of the concrete
                 FacesContextFactory implementation class     that will
                 be called when
                 FactoryFinder.getFactory(FACES_CONTEXT_FACTORY) is
                 called. It must     be of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Faces Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacesContextFactory(org.eclipse.jst.jsf.facesconfig.emf.FacesContextFactoryType)"><CODE>setFacesContextFactory(FacesContextFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FacesContextFactory()"><CODE>FacesConfigPackage.getDocumentRoot_FacesContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFacesContextFactory(org.eclipse.jst.jsf.facesconfig.emf.FacesContextFactoryType)"><!-- --></A><H3>
setFacesContextFactory</H3>
<PRE>
void <B>setFacesContextFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacesContextFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesContextFactory()"><CODE><em>Faces Context Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Faces Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacesContextFactory()"><CODE>getFacesContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFacet()"><!-- --></A><H3>
getFacet</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetType</A> <B>getFacet</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Facet</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
    Define the name and other design-time information for a facet that is
    associated with a renderer or a component.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Facet</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacet(org.eclipse.jst.jsf.facesconfig.emf.FacetType)"><CODE>setFacet(FacetType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Facet()"><CODE>FacesConfigPackage.getDocumentRoot_Facet()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFacet(org.eclipse.jst.jsf.facesconfig.emf.FacetType)"><!-- --></A><H3>
setFacet</H3>
<PRE>
void <B>setFacet</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacet()"><CODE><em>Facet</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Facet</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacet()"><CODE>getFacet()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFacetExtension()"><!-- --></A><H3>
getFacetExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetExtensionType</A> <B>getFacetExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Facet Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     Extension element for facet.  May contain implementation
     specific content.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Facet Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacetExtension(org.eclipse.jst.jsf.facesconfig.emf.FacetExtensionType)"><CODE>setFacetExtension(FacetExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FacetExtension()"><CODE>FacesConfigPackage.getDocumentRoot_FacetExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFacetExtension(org.eclipse.jst.jsf.facesconfig.emf.FacetExtensionType)"><!-- --></A><H3>
setFacetExtension</H3>
<PRE>
void <B>setFacetExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetExtension()"><CODE><em>Facet Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Facet Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetExtension()"><CODE>getFacetExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFacetName()"><!-- --></A><H3>
getFacetName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetNameType</A> <B>getFacetName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Facet Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "facet-name" element represents the facet name under which a
     UIComponent will be added to its parent.  It must be of type
     "Identifier".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Facet Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFacetName(org.eclipse.jst.jsf.facesconfig.emf.FacetNameType)"><CODE>setFacetName(FacetNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FacetName()"><CODE>FacesConfigPackage.getDocumentRoot_FacetName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFacetName(org.eclipse.jst.jsf.facesconfig.emf.FacetNameType)"><!-- --></A><H3>
setFacetName</H3>
<PRE>
void <B>setFacetName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacetNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FacetNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetName()"><CODE><em>Facet Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Facet Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFacetName()"><CODE>getFacetName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFactory()"><!-- --></A><H3>
getFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FactoryType</A> <B>getFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "factory" element
                 provides a mechanism to define the various     Factories
                 that comprise parts of the implementation of JavaServer
                 Faces.  For nested elements that are not specified, the
                 JSF     implementation must provide a suitable default. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFactory(org.eclipse.jst.jsf.facesconfig.emf.FactoryType)"><CODE>setFactory(FactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Factory()"><CODE>FacesConfigPackage.getDocumentRoot_Factory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFactory(org.eclipse.jst.jsf.facesconfig.emf.FactoryType)"><!-- --></A><H3>
setFactory</H3>
<PRE>
void <B>setFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFactory()"><CODE><em>Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFactory()"><CODE>getFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFromAction()"><!-- --></A><H3>
getFromAction</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromActionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromActionType</A> <B>getFromAction</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>From Action</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "from-action" element contains an action reference expression
     that must have been executed (by the default ActionListener for handling
     application level events) in order to select this navigation rule.  If
     not specified, this rule will be relevant no matter which action reference
     was executed (or if no action reference was executed).
 
     This value must be of type "Action".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>From Action</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromAction(org.eclipse.jst.jsf.facesconfig.emf.FromActionType)"><CODE>setFromAction(FromActionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FromAction()"><CODE>FacesConfigPackage.getDocumentRoot_FromAction()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFromAction(org.eclipse.jst.jsf.facesconfig.emf.FromActionType)"><!-- --></A><H3>
setFromAction</H3>
<PRE>
void <B>setFromAction</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromActionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromActionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromAction()"><CODE><em>From Action</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>From Action</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromAction()"><CODE>getFromAction()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFromOutcome()"><!-- --></A><H3>
getFromOutcome</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromOutcomeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromOutcomeType</A> <B>getFromOutcome</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>From Outcome</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "from-outcome" element contains a logical outcome string returned
     by the execution of an application action method selected via an
     "actionRef" property (or a literal value specified by an "action"
     property) of a UICommand component.  If specified, this rule will be
     relevant only if the outcome value matches this element's value.  If
     not specified, this rule will be relevant no matter what the outcome
     value was.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>From Outcome</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromOutcome(org.eclipse.jst.jsf.facesconfig.emf.FromOutcomeType)"><CODE>setFromOutcome(FromOutcomeType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FromOutcome()"><CODE>FacesConfigPackage.getDocumentRoot_FromOutcome()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFromOutcome(org.eclipse.jst.jsf.facesconfig.emf.FromOutcomeType)"><!-- --></A><H3>
setFromOutcome</H3>
<PRE>
void <B>setFromOutcome</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromOutcomeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromOutcomeType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromOutcome()"><CODE><em>From Outcome</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>From Outcome</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromOutcome()"><CODE>getFromOutcome()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getFromViewId()"><!-- --></A><H3>
getFromViewId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromViewIdType</A> <B>getFromViewId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>From View Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "from-view-id" element contains the view identifier of the view
     for which the containing navigation rule is relevant.  If no
     "from-view" element is specified, this rule applies to navigation
     decisions on all views.  If this element is not specified, a value
     of "*" is assumed, meaning that this navigation rule applies to all
     views.
 
     This value must be of type "ViewIdPattern".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>From View Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setFromViewId(org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType)"><CODE>setFromViewId(FromViewIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_FromViewId()"><CODE>FacesConfigPackage.getDocumentRoot_FromViewId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setFromViewId(org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType)"><!-- --></A><H3>
setFromViewId</H3>
<PRE>
void <B>setFromViewId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FromViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">FromViewIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromViewId()"><CODE><em>From View Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>From View Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getFromViewId()"><CODE>getFromViewId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getIcon()"><!-- --></A><H3>
getIcon</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IconType</A> <B>getIcon</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Icon</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "icon" element
                 contains "small-icon" and
                 "large-icon" elements that     specify the
                 resoruce paths for small and large GIF or JPG icon
                 images     used to represent the parent element in a GUI
                 tool. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setIcon(org.eclipse.jst.jsf.facesconfig.emf.IconType)"><CODE>setIcon(IconType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Icon()"><CODE>FacesConfigPackage.getDocumentRoot_Icon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setIcon(org.eclipse.jst.jsf.facesconfig.emf.IconType)"><!-- --></A><H3>
setIcon</H3>
<PRE>
void <B>setIcon</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IconType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIcon()"><CODE><em>Icon</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIcon()"><CODE>getIcon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getIf()"><!-- --></A><H3>
getIf</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IfType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IfType</A> <B>getIf</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>If</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>If</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setIf(org.eclipse.jst.jsf.facesconfig.emf.IfType)"><CODE>setIf(IfType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_If()"><CODE>FacesConfigPackage.getDocumentRoot_If()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setIf(org.eclipse.jst.jsf.facesconfig.emf.IfType)"><!-- --></A><H3>
setIf</H3>
<PRE>
void <B>setIf</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/IfType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">IfType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIf()"><CODE><em>If</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>If</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getIf()"><CODE>getIf()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getKey()"><!-- --></A><H3>
getKey</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyType</A> <B>getKey</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Key</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "key" element is the String representation of a map key that
     will be stored in a managed property of type java.util.Map.  
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Key</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setKey(org.eclipse.jst.jsf.facesconfig.emf.KeyType)"><CODE>setKey(KeyType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Key()"><CODE>FacesConfigPackage.getDocumentRoot_Key()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setKey(org.eclipse.jst.jsf.facesconfig.emf.KeyType)"><!-- --></A><H3>
setKey</H3>
<PRE>
void <B>setKey</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKey()"><CODE><em>Key</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Key</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKey()"><CODE>getKey()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getKeyClass()"><!-- --></A><H3>
getKeyClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyClassType</A> <B>getKeyClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Key Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "key-class" element defines the Java type to which each "key"
     element in a set of "map-entry" elements will be converted to.  It
     must be of type "ClassName".  If omitted, "java.lang.String"
     is assumed.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Key Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setKeyClass(org.eclipse.jst.jsf.facesconfig.emf.KeyClassType)"><CODE>setKeyClass(KeyClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_KeyClass()"><CODE>FacesConfigPackage.getDocumentRoot_KeyClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setKeyClass(org.eclipse.jst.jsf.facesconfig.emf.KeyClassType)"><!-- --></A><H3>
setKeyClass</H3>
<PRE>
void <B>setKeyClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/KeyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">KeyClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKeyClass()"><CODE><em>Key Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Key Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getKeyClass()"><CODE>getKeyClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLargeIcon()"><!-- --></A><H3>
getLargeIcon</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LargeIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LargeIconType</A> <B>getLargeIcon</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Large Icon</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "large-icon" element contains the resource path to a large (32x32)
     icon image.  The image may be in either GIF or JPG format.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Large Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLargeIcon(org.eclipse.jst.jsf.facesconfig.emf.LargeIconType)"><CODE>setLargeIcon(LargeIconType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_LargeIcon()"><CODE>FacesConfigPackage.getDocumentRoot_LargeIcon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setLargeIcon(org.eclipse.jst.jsf.facesconfig.emf.LargeIconType)"><!-- --></A><H3>
setLargeIcon</H3>
<PRE>
void <B>setLargeIcon</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LargeIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LargeIconType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLargeIcon()"><CODE><em>Large Icon</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Large Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLargeIcon()"><CODE>getLargeIcon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLifecycle()"><!-- --></A><H3>
getLifecycle</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleType</A> <B>getLifecycle</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Lifecycle</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "lifecycle" element
                 provides a mechanism to specify     modifications to the
                 behaviour of the default Lifecycle     implementation
                 for this web application. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Lifecycle</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLifecycle(org.eclipse.jst.jsf.facesconfig.emf.LifecycleType)"><CODE>setLifecycle(LifecycleType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Lifecycle()"><CODE>FacesConfigPackage.getDocumentRoot_Lifecycle()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setLifecycle(org.eclipse.jst.jsf.facesconfig.emf.LifecycleType)"><!-- --></A><H3>
setLifecycle</H3>
<PRE>
void <B>setLifecycle</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycle()"><CODE><em>Lifecycle</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Lifecycle</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycle()"><CODE>getLifecycle()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLifecycleFactory()"><!-- --></A><H3>
getLifecycleFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleFactoryType</A> <B>getLifecycleFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Lifecycle Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "lifecycle-factory"
                 element contains the fully qualified class name     of
                 the concrete LifecycleFactory implementation class that
                 will be called     when
                 FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called.
                 It must be      of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Lifecycle Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLifecycleFactory(org.eclipse.jst.jsf.facesconfig.emf.LifecycleFactoryType)"><CODE>setLifecycleFactory(LifecycleFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_LifecycleFactory()"><CODE>FacesConfigPackage.getDocumentRoot_LifecycleFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setLifecycleFactory(org.eclipse.jst.jsf.facesconfig.emf.LifecycleFactoryType)"><!-- --></A><H3>
setLifecycleFactory</H3>
<PRE>
void <B>setLifecycleFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LifecycleFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LifecycleFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycleFactory()"><CODE><em>Lifecycle Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Lifecycle Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLifecycleFactory()"><CODE>getLifecycleFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getListEntries()"><!-- --></A><H3>
getListEntries</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ListEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ListEntriesType</A> <B>getListEntries</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>List Entries</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "list-entries" element
                 represents a set of initialization     elements for a
                 managed property that is a java.util.List or an
                 array.  In the former case, the "value-class"
                 element can optionally     be used to declare the Java
                 type to which each value should be     converted before
                 adding it to the Collection. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>List Entries</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setListEntries(org.eclipse.jst.jsf.facesconfig.emf.ListEntriesType)"><CODE>setListEntries(ListEntriesType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ListEntries()"><CODE>FacesConfigPackage.getDocumentRoot_ListEntries()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setListEntries(org.eclipse.jst.jsf.facesconfig.emf.ListEntriesType)"><!-- --></A><H3>
setListEntries</H3>
<PRE>
void <B>setListEntries</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ListEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ListEntriesType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getListEntries()"><CODE><em>List Entries</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>List Entries</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getListEntries()"><CODE>getListEntries()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLocaleConfig()"><!-- --></A><H3>
getLocaleConfig</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LocaleConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LocaleConfigType</A> <B>getLocaleConfig</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Locale Config</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       The "locale-config"
                 element allows the app developer to declare the
                 supported locales for this application.   
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Locale Config</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setLocaleConfig(org.eclipse.jst.jsf.facesconfig.emf.LocaleConfigType)"><CODE>setLocaleConfig(LocaleConfigType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_LocaleConfig()"><CODE>FacesConfigPackage.getDocumentRoot_LocaleConfig()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setLocaleConfig(org.eclipse.jst.jsf.facesconfig.emf.LocaleConfigType)"><!-- --></A><H3>
setLocaleConfig</H3>
<PRE>
void <B>setLocaleConfig</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/LocaleConfigType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">LocaleConfigType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLocaleConfig()"><CODE><em>Locale Config</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Locale Config</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getLocaleConfig()"><CODE>getLocaleConfig()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedBean()"><!-- --></A><H3>
getManagedBean</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanType</A> <B>getManagedBean</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Managed Bean</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "managed-bean" element
                 represents a JavaBean, of a particular class,     that
                 will be dynamically instantiated at runtime (by the
                 default     VariableResolver implementation) if it is
                 referenced as the first element     of a value reference
                 expression, and no corresponding bean can be
                 identified in any scope.  In addition to the creation of
                 the managed bean,     and the optional storing of it
                 into the specified scope, the nested
                 managed-property elements can be used to initialize the
                 contents of     settable JavaBeans properties of the
                 created instance. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Managed Bean</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBean(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType)"><CODE>setManagedBean(ManagedBeanType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ManagedBean()"><CODE>FacesConfigPackage.getDocumentRoot_ManagedBean()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setManagedBean(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType)"><!-- --></A><H3>
setManagedBean</H3>
<PRE>
void <B>setManagedBean</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBean()"><CODE><em>Managed Bean</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Managed Bean</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBean()"><CODE>getManagedBean()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedBeanClass()"><!-- --></A><H3>
getManagedBeanClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanClassType</A> <B>getManagedBeanClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Managed Bean Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "managed-bean-class" element represents the fully qualified class
     name of the Java class that will be used to instantiate a new instance
     if creation of the specified managed bean is requested.  It must be of
     type "ClassName".
 
     The specified class must conform to standard JavaBeans conventions.
     In particular, it must have a public zero-arguments constructor, and
     zero or more public property setters.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Managed Bean Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanClassType)"><CODE>setManagedBeanClass(ManagedBeanClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ManagedBeanClass()"><CODE>FacesConfigPackage.getDocumentRoot_ManagedBeanClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setManagedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanClassType)"><!-- --></A><H3>
setManagedBeanClass</H3>
<PRE>
void <B>setManagedBeanClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanClass()"><CODE><em>Managed Bean Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Managed Bean Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanClass()"><CODE>getManagedBeanClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedBeanName()"><!-- --></A><H3>
getManagedBeanName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanNameType</A> <B>getManagedBeanName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Managed Bean Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "managed-bean-name" element represents the attribute name under
     which a managed bean will be searched for, as well as stored (unless
     the "managed-bean-scope" value is "none").  It must be of type
     "Identifier".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Managed Bean Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanNameType)"><CODE>setManagedBeanName(ManagedBeanNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ManagedBeanName()"><CODE>FacesConfigPackage.getDocumentRoot_ManagedBeanName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setManagedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanNameType)"><!-- --></A><H3>
setManagedBeanName</H3>
<PRE>
void <B>setManagedBeanName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanName()"><CODE><em>Managed Bean Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Managed Bean Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanName()"><CODE>getManagedBeanName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedBeanScope()"><!-- --></A><H3>
getManagedBeanScope</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanScopeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanScopeType</A> <B>getManagedBeanScope</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Managed Bean Scope</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "managed-bean-scope" element represents the scope into which a newly
     created instance of the specified managed bean will be stored (unless
     the value is "none").  It must be of type "ScopeOrNone".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Managed Bean Scope</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedBeanScope(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanScopeType)"><CODE>setManagedBeanScope(ManagedBeanScopeType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ManagedBeanScope()"><CODE>FacesConfigPackage.getDocumentRoot_ManagedBeanScope()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setManagedBeanScope(org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanScopeType)"><!-- --></A><H3>
setManagedBeanScope</H3>
<PRE>
void <B>setManagedBeanScope</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedBeanScopeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedBeanScopeType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanScope()"><CODE><em>Managed Bean Scope</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Managed Bean Scope</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedBeanScope()"><CODE>getManagedBeanScope()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedProperty()"><!-- --></A><H3>
getManagedProperty</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedPropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedPropertyType</A> <B>getManagedProperty</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Managed Property</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "managed-property"
                 element represents an individual property of a
                 managed bean that will be configured to the specified
                 value (or value set)     if the corresponding managed
                 bean is automatically created. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Managed Property</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setManagedProperty(org.eclipse.jst.jsf.facesconfig.emf.ManagedPropertyType)"><CODE>setManagedProperty(ManagedPropertyType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ManagedProperty()"><CODE>FacesConfigPackage.getDocumentRoot_ManagedProperty()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setManagedProperty(org.eclipse.jst.jsf.facesconfig.emf.ManagedPropertyType)"><!-- --></A><H3>
setManagedProperty</H3>
<PRE>
void <B>setManagedProperty</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ManagedPropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ManagedPropertyType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedProperty()"><CODE><em>Managed Property</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Managed Property</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getManagedProperty()"><CODE>getManagedProperty()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getMapEntries()"><!-- --></A><H3>
getMapEntries</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntriesType</A> <B>getMapEntries</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Map Entries</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "map-entries' element
                 represents a set of key-entry pairs that     will be
                 added to the computed value of a managed property of
                 type     java.util.Map.  In addition, the Java class
                 types of the key and entry     values may be optionally
                 declared. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Map Entries</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMapEntries(org.eclipse.jst.jsf.facesconfig.emf.MapEntriesType)"><CODE>setMapEntries(MapEntriesType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_MapEntries()"><CODE>FacesConfigPackage.getDocumentRoot_MapEntries()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setMapEntries(org.eclipse.jst.jsf.facesconfig.emf.MapEntriesType)"><!-- --></A><H3>
setMapEntries</H3>
<PRE>
void <B>setMapEntries</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntriesType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntriesType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntries()"><CODE><em>Map Entries</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Map Entries</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntries()"><CODE>getMapEntries()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getMapEntry()"><!-- --></A><H3>
getMapEntry</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntryType</A> <B>getMapEntry</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Map Entry</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "map-entry" element
                 reprsents a single key-entry pair that     will be added
                 to the computed value of a managed property of type
                 java.util.Map. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Map Entry</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMapEntry(org.eclipse.jst.jsf.facesconfig.emf.MapEntryType)"><CODE>setMapEntry(MapEntryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_MapEntry()"><CODE>FacesConfigPackage.getDocumentRoot_MapEntry()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setMapEntry(org.eclipse.jst.jsf.facesconfig.emf.MapEntryType)"><!-- --></A><H3>
setMapEntry</H3>
<PRE>
void <B>setMapEntry</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MapEntryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MapEntryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntry()"><CODE><em>Map Entry</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Map Entry</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMapEntry()"><CODE>getMapEntry()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getMessageBundle()"><!-- --></A><H3>
getMessageBundle</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MessageBundleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MessageBundleType</A> <B>getMessageBundle</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Message Bundle</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The base name of a resource bundle
                 representing the message resources     for this
                 application.  See the JavaDocs for the
                 "java.util.ResourceBundle"     class for more
                 information on the syntax of resource bundle names. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Message Bundle</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setMessageBundle(org.eclipse.jst.jsf.facesconfig.emf.MessageBundleType)"><CODE>setMessageBundle(MessageBundleType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_MessageBundle()"><CODE>FacesConfigPackage.getDocumentRoot_MessageBundle()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setMessageBundle(org.eclipse.jst.jsf.facesconfig.emf.MessageBundleType)"><!-- --></A><H3>
setMessageBundle</H3>
<PRE>
void <B>setMessageBundle</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/MessageBundleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">MessageBundleType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMessageBundle()"><CODE><em>Message Bundle</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Message Bundle</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getMessageBundle()"><CODE>getMessageBundle()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getName()"><!-- --></A><H3>
getName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NameType</A> <B>getName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setName(org.eclipse.jst.jsf.facesconfig.emf.NameType)"><CODE>setName(NameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Name()"><CODE>FacesConfigPackage.getDocumentRoot_Name()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setName(org.eclipse.jst.jsf.facesconfig.emf.NameType)"><!-- --></A><H3>
setName</H3>
<PRE>
void <B>setName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getName()"><CODE><em>Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getName()"><CODE>getName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getNavigationCase()"><!-- --></A><H3>
getNavigationCase</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationCaseType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationCaseType</A> <B>getNavigationCase</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Navigation Case</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "navigation-case"
                 element describes a particular combination of
                 conditions that must match for this case to be executed,
                 and the     view id of the component tree that should be
                 selected next. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Navigation Case</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationCase(org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType)"><CODE>setNavigationCase(NavigationCaseType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_NavigationCase()"><CODE>FacesConfigPackage.getDocumentRoot_NavigationCase()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setNavigationCase(org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType)"><!-- --></A><H3>
setNavigationCase</H3>
<PRE>
void <B>setNavigationCase</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationCaseType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationCaseType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationCase()"><CODE><em>Navigation Case</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Navigation Case</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationCase()"><CODE>getNavigationCase()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getNavigationHandler()"><!-- --></A><H3>
getNavigationHandler</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationHandlerType</A> <B>getNavigationHandler</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Navigation Handler</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "navigation-handler"
                 element contains the fully qualified class name     of
                 the concrete NavigationHandler implementation class that
                 will be called     during the Invoke Application phase
                 of the request processing lifecycle,     if the default
                 ActionListener (provided by the JSF implementation) is
                 used.     It must be of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Navigation Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationHandler(org.eclipse.jst.jsf.facesconfig.emf.NavigationHandlerType)"><CODE>setNavigationHandler(NavigationHandlerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_NavigationHandler()"><CODE>FacesConfigPackage.getDocumentRoot_NavigationHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setNavigationHandler(org.eclipse.jst.jsf.facesconfig.emf.NavigationHandlerType)"><!-- --></A><H3>
setNavigationHandler</H3>
<PRE>
void <B>setNavigationHandler</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationHandlerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationHandler()"><CODE><em>Navigation Handler</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Navigation Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationHandler()"><CODE>getNavigationHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getNavigationRule()"><!-- --></A><H3>
getNavigationRule</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationRuleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationRuleType</A> <B>getNavigationRule</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Navigation Rule</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "navigation-rule"
                 element represents an individual decision rule     that
                 will be utilized by the default NavigationHandler
                 implementation to make decisions on what view should be
                 displayed     next, based on the view id being
                 processed. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Navigation Rule</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNavigationRule(org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType)"><CODE>setNavigationRule(NavigationRuleType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_NavigationRule()"><CODE>FacesConfigPackage.getDocumentRoot_NavigationRule()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setNavigationRule(org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType)"><!-- --></A><H3>
setNavigationRule</H3>
<PRE>
void <B>setNavigationRule</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NavigationRuleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NavigationRuleType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationRule()"><CODE><em>Navigation Rule</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Navigation Rule</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNavigationRule()"><CODE>getNavigationRule()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getNullValue()"><!-- --></A><H3>
getNullValue</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NullValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NullValueType</A> <B>getNullValue</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Null Value</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "null-value" element
                 indicates that the managed property in which we     are
                 nested will be explicitly set to null if our managed
                 bean is     automatically created.  This is different
                 from omitting the managed     property element entirely,
                 which will cause no property setter to be     called for
                 this property.      The "null-value" element
                 can only be used when the associated
                 "property-class" identifies a Java class, not
                 a Java primitive. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Null Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setNullValue(org.eclipse.jst.jsf.facesconfig.emf.NullValueType)"><CODE>setNullValue(NullValueType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_NullValue()"><CODE>FacesConfigPackage.getDocumentRoot_NullValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setNullValue(org.eclipse.jst.jsf.facesconfig.emf.NullValueType)"><!-- --></A><H3>
setNullValue</H3>
<PRE>
void <B>setNullValue</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/NullValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">NullValueType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNullValue()"><CODE><em>Null Value</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Null Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getNullValue()"><CODE>getNullValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getOrdering()"><!-- --></A><H3>
getOrdering</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingType</A> <B>getOrdering</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Ordering</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingType)"><CODE>setOrdering(OrderingType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Ordering()"><CODE>FacesConfigPackage.getDocumentRoot_Ordering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingType)"><!-- --></A><H3>
setOrdering</H3>
<PRE>
void <B>setOrdering</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrdering()"><CODE><em>Ordering</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrdering()"><CODE>getOrdering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getOrderingOrdering()"><!-- --></A><H3>
getOrderingOrdering</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOrderingType</A> <B>getOrderingOrdering</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Ordering Ordering</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Ordering Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOrderingOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingOrderingType)"><CODE>setOrderingOrdering(OrderingOrderingType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_OrderingOrdering()"><CODE>FacesConfigPackage.getDocumentRoot_OrderingOrdering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setOrderingOrdering(org.eclipse.jst.jsf.facesconfig.emf.OrderingOrderingType)"><!-- --></A><H3>
setOrderingOrdering</H3>
<PRE>
void <B>setOrderingOrdering</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOrderingType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOrderingType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrderingOrdering()"><CODE><em>Ordering Ordering</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Ordering Ordering</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOrderingOrdering()"><CODE>getOrderingOrdering()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getOthers()"><!-- --></A><H3>
getOthers</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOthersType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOthersType</A> <B>getOthers</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Others</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Others</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setOthers(org.eclipse.jst.jsf.facesconfig.emf.OrderingOthersType)"><CODE>setOthers(OrderingOthersType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Others()"><CODE>FacesConfigPackage.getDocumentRoot_Others()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setOthers(org.eclipse.jst.jsf.facesconfig.emf.OrderingOthersType)"><!-- --></A><H3>
setOthers</H3>
<PRE>
void <B>setOthers</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/OrderingOthersType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">OrderingOthersType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOthers()"><CODE><em>Others</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Others</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getOthers()"><CODE>getOthers()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPartialViewContextFactory()"><!-- --></A><H3>
getPartialViewContextFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PartialViewContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PartialViewContextFactoryType</A> <B>getPartialViewContextFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Partial View Context Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Partial View Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPartialViewContextFactory(org.eclipse.jst.jsf.facesconfig.emf.PartialViewContextFactoryType)"><CODE>setPartialViewContextFactory(PartialViewContextFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PartialViewContextFactory()"><CODE>FacesConfigPackage.getDocumentRoot_PartialViewContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPartialViewContextFactory(org.eclipse.jst.jsf.facesconfig.emf.PartialViewContextFactoryType)"><!-- --></A><H3>
setPartialViewContextFactory</H3>
<PRE>
void <B>setPartialViewContextFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PartialViewContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PartialViewContextFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPartialViewContextFactory()"><CODE><em>Partial View Context Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Partial View Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPartialViewContextFactory()"><CODE>getPartialViewContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPhaseListener()"><!-- --></A><H3>
getPhaseListener</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PhaseListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PhaseListenerType</A> <B>getPhaseListener</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Phase Listener</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
  The "phase-listener" element
                 contains the fully qualified class name of the concrete
                 PhaseListener implementation class that will be
                 registered on the Lifecycle. It must be of type
                 "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Phase Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPhaseListener(org.eclipse.jst.jsf.facesconfig.emf.PhaseListenerType)"><CODE>setPhaseListener(PhaseListenerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PhaseListener()"><CODE>FacesConfigPackage.getDocumentRoot_PhaseListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPhaseListener(org.eclipse.jst.jsf.facesconfig.emf.PhaseListenerType)"><!-- --></A><H3>
setPhaseListener</H3>
<PRE>
void <B>setPhaseListener</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PhaseListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PhaseListenerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPhaseListener()"><CODE><em>Phase Listener</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Phase Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPhaseListener()"><CODE>getPhaseListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getProperty()"><!-- --></A><H3>
getProperty</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyType</A> <B>getProperty</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Property</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "property" element
                 represents a JavaBean property of the Java class
                 represented by our parent element.      Property names
                 must be unique within the scope of the Java class
                 that is represented by the parent element, and must
                 correspond to     property names that will be recognized
                 when performing introspection     against that class via
                 java.beans.Introspector. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Property</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setProperty(org.eclipse.jst.jsf.facesconfig.emf.PropertyType)"><CODE>setProperty(PropertyType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Property()"><CODE>FacesConfigPackage.getDocumentRoot_Property()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(org.eclipse.jst.jsf.facesconfig.emf.PropertyType)"><!-- --></A><H3>
setProperty</H3>
<PRE>
void <B>setProperty</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getProperty()"><CODE><em>Property</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Property</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getProperty()"><CODE>getProperty()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPropertyClass()"><!-- --></A><H3>
getPropertyClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyClassType</A> <B>getPropertyClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Property Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "property-class" element represents the Java type of the value
     associated with this property name.  It must be of type "JavaType".
     If not specified, it can be inferred from existing classes; however,
     this element should be specified if the configuration file is going
     to be the source for generating the corresponding classes.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Property Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyClass(org.eclipse.jst.jsf.facesconfig.emf.PropertyClassType)"><CODE>setPropertyClass(PropertyClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PropertyClass()"><CODE>FacesConfigPackage.getDocumentRoot_PropertyClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPropertyClass(org.eclipse.jst.jsf.facesconfig.emf.PropertyClassType)"><!-- --></A><H3>
setPropertyClass</H3>
<PRE>
void <B>setPropertyClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyClass()"><CODE><em>Property Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Property Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyClass()"><CODE>getPropertyClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPropertyExtension()"><!-- --></A><H3>
getPropertyExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyExtensionType</A> <B>getPropertyExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Property Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       Extension element for property.
                 May contain implementation     specific content. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Property Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyExtension(org.eclipse.jst.jsf.facesconfig.emf.PropertyExtensionType)"><CODE>setPropertyExtension(PropertyExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PropertyExtension()"><CODE>FacesConfigPackage.getDocumentRoot_PropertyExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPropertyExtension(org.eclipse.jst.jsf.facesconfig.emf.PropertyExtensionType)"><!-- --></A><H3>
setPropertyExtension</H3>
<PRE>
void <B>setPropertyExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyExtension()"><CODE><em>Property Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Property Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyExtension()"><CODE>getPropertyExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPropertyName()"><!-- --></A><H3>
getPropertyName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyNameType</A> <B>getPropertyName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Property Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "property-name" element represents the JavaBeans property name
     under which the corresponding value may be stored.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Property Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyName(org.eclipse.jst.jsf.facesconfig.emf.PropertyNameType)"><CODE>setPropertyName(PropertyNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PropertyName()"><CODE>FacesConfigPackage.getDocumentRoot_PropertyName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPropertyName(org.eclipse.jst.jsf.facesconfig.emf.PropertyNameType)"><!-- --></A><H3>
setPropertyName</H3>
<PRE>
void <B>setPropertyName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyName()"><CODE><em>Property Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Property Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyName()"><CODE>getPropertyName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getPropertyResolver()"><!-- --></A><H3>
getPropertyResolver</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyResolverType</A> <B>getPropertyResolver</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Property Resolver</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "property-resolver"
                 element contains the fully qualified class name     of
                 the concrete PropertyResolver implementation class that
                 will be used     during the processing of value
                 reference expressions.     It must be of type
                 "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Property Resolver</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setPropertyResolver(org.eclipse.jst.jsf.facesconfig.emf.PropertyResolverType)"><CODE>setPropertyResolver(PropertyResolverType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_PropertyResolver()"><CODE>FacesConfigPackage.getDocumentRoot_PropertyResolver()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setPropertyResolver(org.eclipse.jst.jsf.facesconfig.emf.PropertyResolverType)"><!-- --></A><H3>
setPropertyResolver</H3>
<PRE>
void <B>setPropertyResolver</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/PropertyResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">PropertyResolverType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyResolver()"><CODE><em>Property Resolver</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Property Resolver</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getPropertyResolver()"><CODE>getPropertyResolver()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRedirect()"><!-- --></A><H3>
getRedirect</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectType</A> <B>getRedirect</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Redirect</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "redirect" element
                 indicates that navigation to the specified
                 "to-view-id" should be accomplished by
                 performing an HTTP redirect     rather than the usual
                 ViewHandler mechanisms. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Redirect</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRedirect(org.eclipse.jst.jsf.facesconfig.emf.RedirectType)"><CODE>setRedirect(RedirectType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Redirect()"><CODE>FacesConfigPackage.getDocumentRoot_Redirect()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRedirect(org.eclipse.jst.jsf.facesconfig.emf.RedirectType)"><!-- --></A><H3>
setRedirect</H3>
<PRE>
void <B>setRedirect</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirect()"><CODE><em>Redirect</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Redirect</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirect()"><CODE>getRedirect()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRedirectViewParam()"><!-- --></A><H3>
getRedirectViewParam</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectViewParamType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectViewParamType</A> <B>getRedirectViewParam</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Redirect View Param</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Redirect View Param</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRedirectViewParam(org.eclipse.jst.jsf.facesconfig.emf.RedirectViewParamType)"><CODE>setRedirectViewParam(RedirectViewParamType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RedirectViewParam()"><CODE>FacesConfigPackage.getDocumentRoot_RedirectViewParam()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRedirectViewParam(org.eclipse.jst.jsf.facesconfig.emf.RedirectViewParamType)"><!-- --></A><H3>
setRedirectViewParam</H3>
<PRE>
void <B>setRedirectViewParam</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RedirectViewParamType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RedirectViewParamType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirectViewParam()"><CODE><em>Redirect View Param</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Redirect View Param</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRedirectViewParam()"><CODE>getRedirectViewParam()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getReferencedBean()"><!-- --></A><H3>
getReferencedBean</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanType</A> <B>getReferencedBean</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Referenced Bean</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "referenced-bean"
                 element represents at design time the promise     that a
                 Java object of the specified type will exist at runtime
                 in some     scope, under the specified key.  This can be
                 used by design time tools     to construct user
                 interface dialogs based on the properties of the
                 specified class.  The presence or absence of a
                 referenced bean     element has no impact on the
                 JavaServer Faces runtime environment     inside a web
                 application. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Referenced Bean</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBean(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanType)"><CODE>setReferencedBean(ReferencedBeanType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ReferencedBean()"><CODE>FacesConfigPackage.getDocumentRoot_ReferencedBean()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setReferencedBean(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanType)"><!-- --></A><H3>
setReferencedBean</H3>
<PRE>
void <B>setReferencedBean</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBean()"><CODE><em>Referenced Bean</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Referenced Bean</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBean()"><CODE>getReferencedBean()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getReferencedBeanClass()"><!-- --></A><H3>
getReferencedBeanClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanClassType</A> <B>getReferencedBeanClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Referenced Bean Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "referenced-bean-class" element represents the fully qualified class
     name of the Java class (either abstract or concrete) or Java interface
     implemented by the corresponding referenced bean.  It must be of type
     "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Referenced Bean Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanClassType)"><CODE>setReferencedBeanClass(ReferencedBeanClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ReferencedBeanClass()"><CODE>FacesConfigPackage.getDocumentRoot_ReferencedBeanClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setReferencedBeanClass(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanClassType)"><!-- --></A><H3>
setReferencedBeanClass</H3>
<PRE>
void <B>setReferencedBeanClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanClass()"><CODE><em>Referenced Bean Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Referenced Bean Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanClass()"><CODE>getReferencedBeanClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getReferencedBeanName()"><!-- --></A><H3>
getReferencedBeanName</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanNameType</A> <B>getReferencedBeanName</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Referenced Bean Name</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "referenced-bean-name" element represents the attribute name under
     which the corresponding referenced bean may be assumed to be stored,
     in one of the scopes defined by the "Scope" type.  It must be of type
     "Identifier".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Referenced Bean Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setReferencedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanNameType)"><CODE>setReferencedBeanName(ReferencedBeanNameType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ReferencedBeanName()"><CODE>FacesConfigPackage.getDocumentRoot_ReferencedBeanName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setReferencedBeanName(org.eclipse.jst.jsf.facesconfig.emf.ReferencedBeanNameType)"><!-- --></A><H3>
setReferencedBeanName</H3>
<PRE>
void <B>setReferencedBeanName</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ReferencedBeanNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ReferencedBeanNameType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanName()"><CODE><em>Referenced Bean Name</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Referenced Bean Name</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getReferencedBeanName()"><CODE>getReferencedBeanName()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRenderer()"><!-- --></A><H3>
getRenderer</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererType</A> <B>getRenderer</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Renderer</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "renderer" element
                 represents a concrete Renderer implementation     class
                 that should be registered under the specified type
                 identifier,     in the RenderKit associated with the
                 parent render-kit element.  Renderer     types must be
                 unique within the RenderKit associated with the parent
                 "render-kit" element.      Nested
                 "attribute" elements identify generic
                 component attributes that     are recognized by this
                 renderer.  Nested "supported-component-type"
                 and     "supported-component-class" elements
                 identify supported component classes,     by their type
                 identifiers or the implementation class name,
                 respectively,     that are supported by this Renderer. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Renderer</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderer(org.eclipse.jst.jsf.facesconfig.emf.RendererType)"><CODE>setRenderer(RendererType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Renderer()"><CODE>FacesConfigPackage.getDocumentRoot_Renderer()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRenderer(org.eclipse.jst.jsf.facesconfig.emf.RendererType)"><!-- --></A><H3>
setRenderer</H3>
<PRE>
void <B>setRenderer</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderer()"><CODE><em>Renderer</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Renderer</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderer()"><CODE>getRenderer()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRendererClass()"><!-- --></A><H3>
getRendererClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererClassType</A> <B>getRendererClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Renderer Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "renderer-class" element represents the fully qualified class name
     of a concrete Renderer implementation class.  It must be of
     type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Renderer Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererClass(org.eclipse.jst.jsf.facesconfig.emf.RendererClassType)"><CODE>setRendererClass(RendererClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RendererClass()"><CODE>FacesConfigPackage.getDocumentRoot_RendererClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRendererClass(org.eclipse.jst.jsf.facesconfig.emf.RendererClassType)"><!-- --></A><H3>
setRendererClass</H3>
<PRE>
void <B>setRendererClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererClass()"><CODE><em>Renderer Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Renderer Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererClass()"><CODE>getRendererClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRendererExtension()"><!-- --></A><H3>
getRendererExtension</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererExtensionType</A> <B>getRendererExtension</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Renderer Extension</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       Extension element for renderer.
                 May contain implementation     specific content. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Renderer Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererExtension(org.eclipse.jst.jsf.facesconfig.emf.RendererExtensionType)"><CODE>setRendererExtension(RendererExtensionType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RendererExtension()"><CODE>FacesConfigPackage.getDocumentRoot_RendererExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRendererExtension(org.eclipse.jst.jsf.facesconfig.emf.RendererExtensionType)"><!-- --></A><H3>
setRendererExtension</H3>
<PRE>
void <B>setRendererExtension</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererExtensionType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererExtensionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererExtension()"><CODE><em>Renderer Extension</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Renderer Extension</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererExtension()"><CODE>getRendererExtension()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRendererType()"><!-- --></A><H3>
getRendererType</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererTypeType</A> <B>getRendererType</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Renderer Type</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "renderer-type" element represents a renderer type identifier for the
     Renderer represented by the parent "renderer" element.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Renderer Type</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRendererType(org.eclipse.jst.jsf.facesconfig.emf.RendererTypeType)"><CODE>setRendererType(RendererTypeType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RendererType()"><CODE>FacesConfigPackage.getDocumentRoot_RendererType()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRendererType(org.eclipse.jst.jsf.facesconfig.emf.RendererTypeType)"><!-- --></A><H3>
setRendererType</H3>
<PRE>
void <B>setRendererType</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RendererTypeType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RendererTypeType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererType()"><CODE><em>Renderer Type</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Renderer Type</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRendererType()"><CODE>getRendererType()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRenderKit()"><!-- --></A><H3>
getRenderKit</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitType</A> <B>getRenderKit</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Render Kit</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "render-kit" element
                 represents a concrete RenderKit implementation     that
                 should be registered under the specified render-kit-id.
                 If no     render-kit-id is specified, the identifier of
                 the default RenderKit
                 (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Render Kit</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKit(org.eclipse.jst.jsf.facesconfig.emf.RenderKitType)"><CODE>setRenderKit(RenderKitType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RenderKit()"><CODE>FacesConfigPackage.getDocumentRoot_RenderKit()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRenderKit(org.eclipse.jst.jsf.facesconfig.emf.RenderKitType)"><!-- --></A><H3>
setRenderKit</H3>
<PRE>
void <B>setRenderKit</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKit()"><CODE><em>Render Kit</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Render Kit</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKit()"><CODE>getRenderKit()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRenderKitClass()"><!-- --></A><H3>
getRenderKitClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitClassType</A> <B>getRenderKitClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Render Kit Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "render-kit-class" element represents the fully qualified class name
     of a concrete RenderKit implementation class.  It must be of
     type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Render Kit Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitClass(org.eclipse.jst.jsf.facesconfig.emf.RenderKitClassType)"><CODE>setRenderKitClass(RenderKitClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RenderKitClass()"><CODE>FacesConfigPackage.getDocumentRoot_RenderKitClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRenderKitClass(org.eclipse.jst.jsf.facesconfig.emf.RenderKitClassType)"><!-- --></A><H3>
setRenderKitClass</H3>
<PRE>
void <B>setRenderKitClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitClass()"><CODE><em>Render Kit Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Render Kit Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitClass()"><CODE>getRenderKitClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRenderKitFactory()"><!-- --></A><H3>
getRenderKitFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitFactoryType</A> <B>getRenderKitFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Render Kit Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "render-kit-factory"
                 element contains the fully qualified class name     of
                 the concrete RenderKitFactory implementation class that
                 will be called     when
                 FactoryFinder.getFactory(RENDER_KIT_FACTORY) is called.
                 It must be      of type "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Render Kit Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitFactory(org.eclipse.jst.jsf.facesconfig.emf.RenderKitFactoryType)"><CODE>setRenderKitFactory(RenderKitFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RenderKitFactory()"><CODE>FacesConfigPackage.getDocumentRoot_RenderKitFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRenderKitFactory(org.eclipse.jst.jsf.facesconfig.emf.RenderKitFactoryType)"><!-- --></A><H3>
setRenderKitFactory</H3>
<PRE>
void <B>setRenderKitFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitFactory()"><CODE><em>Render Kit Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Render Kit Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitFactory()"><CODE>getRenderKitFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRenderKitId()"><!-- --></A><H3>
getRenderKitId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitIdType</A> <B>getRenderKitId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Render Kit Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "render-kit-id" element represents an identifier for the
     RenderKit represented by the parent "render-kit" element.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Render Kit Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.RenderKitIdType)"><CODE>setRenderKitId(RenderKitIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_RenderKitId()"><CODE>FacesConfigPackage.getDocumentRoot_RenderKitId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setRenderKitId(org.eclipse.jst.jsf.facesconfig.emf.RenderKitIdType)"><!-- --></A><H3>
setRenderKitId</H3>
<PRE>
void <B>setRenderKitId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/RenderKitIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">RenderKitIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitId()"><CODE><em>Render Kit Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Render Kit Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getRenderKitId()"><CODE>getRenderKitId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getResourceHandler()"><!-- --></A><H3>
getResourceHandler</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ResourceHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ResourceHandlerType</A> <B>getResourceHandler</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Resource Handler</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Resource Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setResourceHandler(org.eclipse.jst.jsf.facesconfig.emf.ResourceHandlerType)"><CODE>setResourceHandler(ResourceHandlerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ResourceHandler()"><CODE>FacesConfigPackage.getDocumentRoot_ResourceHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setResourceHandler(org.eclipse.jst.jsf.facesconfig.emf.ResourceHandlerType)"><!-- --></A><H3>
setResourceHandler</H3>
<PRE>
void <B>setResourceHandler</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ResourceHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ResourceHandlerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getResourceHandler()"><CODE><em>Resource Handler</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Resource Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getResourceHandler()"><CODE>getResourceHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSmallIcon()"><!-- --></A><H3>
getSmallIcon</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SmallIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SmallIconType</A> <B>getSmallIcon</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Small Icon</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "small-icon" element contains the resource path to a small (16x16)
     icon image.  The image may be in either GIF or JPG format.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Small Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSmallIcon(org.eclipse.jst.jsf.facesconfig.emf.SmallIconType)"><CODE>setSmallIcon(SmallIconType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SmallIcon()"><CODE>FacesConfigPackage.getDocumentRoot_SmallIcon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSmallIcon(org.eclipse.jst.jsf.facesconfig.emf.SmallIconType)"><!-- --></A><H3>
setSmallIcon</H3>
<PRE>
void <B>setSmallIcon</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SmallIconType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SmallIconType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSmallIcon()"><CODE><em>Small Icon</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Small Icon</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSmallIcon()"><CODE>getSmallIcon()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSourceClass()"><!-- --></A><H3>
getSourceClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SourceClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SourceClassType</A> <B>getSourceClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Source Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Source Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSourceClass(org.eclipse.jst.jsf.facesconfig.emf.SourceClassType)"><CODE>setSourceClass(SourceClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SourceClass()"><CODE>FacesConfigPackage.getDocumentRoot_SourceClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSourceClass(org.eclipse.jst.jsf.facesconfig.emf.SourceClassType)"><!-- --></A><H3>
setSourceClass</H3>
<PRE>
void <B>setSourceClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SourceClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SourceClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSourceClass()"><CODE><em>Source Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Source Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSourceClass()"><CODE>getSourceClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getStateManager()"><!-- --></A><H3>
getStateManager</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/StateManagerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">StateManagerType</A> <B>getStateManager</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>State Manager</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       The "state-manager"
                 element contains the fully qualified class name     of
                 the concrete StateManager implementation class that will
                 be called     during the Restore View and Render
                 Response phases of the request     processing lifecycle.
                 The faces implementation must provide a     default
                 implementation of this class 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>State Manager</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setStateManager(org.eclipse.jst.jsf.facesconfig.emf.StateManagerType)"><CODE>setStateManager(StateManagerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_StateManager()"><CODE>FacesConfigPackage.getDocumentRoot_StateManager()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setStateManager(org.eclipse.jst.jsf.facesconfig.emf.StateManagerType)"><!-- --></A><H3>
setStateManager</H3>
<PRE>
void <B>setStateManager</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/StateManagerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">StateManagerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getStateManager()"><CODE><em>State Manager</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>State Manager</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getStateManager()"><CODE>getStateManager()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSuggestedValue()"><!-- --></A><H3>
getSuggestedValue</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SuggestedValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SuggestedValueType</A> <B>getSuggestedValue</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Suggested Value</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "suggested-value" contains the value for the property or
     attribute in which this element resides.  This value is advisory
     only and is intended for tools to use when populating pallettes.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Suggested Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSuggestedValue(org.eclipse.jst.jsf.facesconfig.emf.SuggestedValueType)"><CODE>setSuggestedValue(SuggestedValueType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SuggestedValue()"><CODE>FacesConfigPackage.getDocumentRoot_SuggestedValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSuggestedValue(org.eclipse.jst.jsf.facesconfig.emf.SuggestedValueType)"><!-- --></A><H3>
setSuggestedValue</H3>
<PRE>
void <B>setSuggestedValue</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SuggestedValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SuggestedValueType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSuggestedValue()"><CODE><em>Suggested Value</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Suggested Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSuggestedValue()"><CODE>getSuggestedValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSupportedLocale()"><!-- --></A><H3>
getSupportedLocale</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SupportedLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SupportedLocaleType</A> <B>getSupportedLocale</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Supported Locale</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       The "supported-locale"
                 element allows authors to declare which      locales are
                 supported in this application instance.       It must be
                 specified as :language:[_:country:[_:variant:]] without
                 the colons, for example "ja_JP_SJIS".  The
                 separators between the      segments may be
                 '-' or '_'. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Supported Locale</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSupportedLocale(org.eclipse.jst.jsf.facesconfig.emf.SupportedLocaleType)"><CODE>setSupportedLocale(SupportedLocaleType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SupportedLocale()"><CODE>FacesConfigPackage.getDocumentRoot_SupportedLocale()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSupportedLocale(org.eclipse.jst.jsf.facesconfig.emf.SupportedLocaleType)"><!-- --></A><H3>
setSupportedLocale</H3>
<PRE>
void <B>setSupportedLocale</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SupportedLocaleType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SupportedLocaleType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSupportedLocale()"><CODE><em>Supported Locale</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Supported Locale</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSupportedLocale()"><CODE>getSupportedLocale()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSystemEventClass()"><!-- --></A><H3>
getSystemEventClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventClassType</A> <B>getSystemEventClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>System Event Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>System Event Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventClassType)"><CODE>setSystemEventClass(SystemEventClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SystemEventClass()"><CODE>FacesConfigPackage.getDocumentRoot_SystemEventClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSystemEventClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventClassType)"><!-- --></A><H3>
setSystemEventClass</H3>
<PRE>
void <B>setSystemEventClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventClass()"><CODE><em>System Event Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>System Event Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventClass()"><CODE>getSystemEventClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSystemEventListener()"><!-- --></A><H3>
getSystemEventListener</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerType</A> <B>getSystemEventListener</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>System Event Listener</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>System Event Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventListener(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerType)"><CODE>setSystemEventListener(SystemEventListenerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SystemEventListener()"><CODE>FacesConfigPackage.getDocumentRoot_SystemEventListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSystemEventListener(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerType)"><!-- --></A><H3>
setSystemEventListener</H3>
<PRE>
void <B>setSystemEventListener</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListener()"><CODE><em>System Event Listener</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>System Event Listener</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListener()"><CODE>getSystemEventListener()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSystemEventListenerClass()"><!-- --></A><H3>
getSystemEventListenerClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerClassType</A> <B>getSystemEventListenerClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>System Event Listener Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>System Event Listener Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setSystemEventListenerClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerClassType)"><CODE>setSystemEventListenerClass(SystemEventListenerClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_SystemEventListenerClass()"><CODE>FacesConfigPackage.getDocumentRoot_SystemEventListenerClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSystemEventListenerClass(org.eclipse.jst.jsf.facesconfig.emf.SystemEventListenerClassType)"><!-- --></A><H3>
setSystemEventListenerClass</H3>
<PRE>
void <B>setSystemEventListenerClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/SystemEventListenerClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">SystemEventListenerClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListenerClass()"><CODE><em>System Event Listener Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>System Event Listener Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getSystemEventListenerClass()"><CODE>getSystemEventListenerClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getTagHandlerDelegateFactory()"><!-- --></A><H3>
getTagHandlerDelegateFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/TagHandlerDelegateFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">TagHandlerDelegateFactoryType</A> <B>getTagHandlerDelegateFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Tag Handler Delegate Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Tag Handler Delegate Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setTagHandlerDelegateFactory(org.eclipse.jst.jsf.facesconfig.emf.TagHandlerDelegateFactoryType)"><CODE>setTagHandlerDelegateFactory(TagHandlerDelegateFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_TagHandlerDelegateFactory()"><CODE>FacesConfigPackage.getDocumentRoot_TagHandlerDelegateFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setTagHandlerDelegateFactory(org.eclipse.jst.jsf.facesconfig.emf.TagHandlerDelegateFactoryType)"><!-- --></A><H3>
setTagHandlerDelegateFactory</H3>
<PRE>
void <B>setTagHandlerDelegateFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/TagHandlerDelegateFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">TagHandlerDelegateFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getTagHandlerDelegateFactory()"><CODE><em>Tag Handler Delegate Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Tag Handler Delegate Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getTagHandlerDelegateFactory()"><CODE>getTagHandlerDelegateFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getToViewId()"><!-- --></A><H3>
getToViewId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ToViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ToViewIdType</A> <B>getToViewId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>To View Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "to-view" element contains the view identifier of the next view
     that should be displayed if this navigation rule is matched.  It
     must be of type "ViewId".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>To View Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setToViewId(org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType)"><CODE>setToViewId(ToViewIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ToViewId()"><CODE>FacesConfigPackage.getDocumentRoot_ToViewId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setToViewId(org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType)"><!-- --></A><H3>
setToViewId</H3>
<PRE>
void <B>setToViewId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ToViewIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ToViewIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getToViewId()"><CODE><em>To View Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>To View Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getToViewId()"><CODE>getToViewId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getValidator()"><!-- --></A><H3>
getValidator</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorType</A> <B>getValidator</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Validator</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "validator" element
                 represents a concrete Validator implementation     class
                 that should be registered under the specified validator
                 identifier.     Validator identifiers must be unique
                 within the entire web application.      Nested
                 "attribute" elements identify generic
                 attributes that may be     configured on the
                 corresponding UIComponent in order to affect the
                 operation of the Validator.  Nested "property"
                 elements identify JavaBeans     properties of the
                 Validator implementation class that may be configured
                 to affect the operation of the Validator. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Validator</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidator(org.eclipse.jst.jsf.facesconfig.emf.ValidatorType)"><CODE>setValidator(ValidatorType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Validator()"><CODE>FacesConfigPackage.getDocumentRoot_Validator()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValidator(org.eclipse.jst.jsf.facesconfig.emf.ValidatorType)"><!-- --></A><H3>
setValidator</H3>
<PRE>
void <B>setValidator</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidator()"><CODE><em>Validator</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Validator</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidator()"><CODE>getValidator()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getValidatorClass()"><!-- --></A><H3>
getValidatorClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorClassType</A> <B>getValidatorClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Validator Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "validator-class" element represents the fully qualified class name
     of a concrete Validator implementation class.  It must be of
     type "ClassName".
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Validator Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidatorClass(org.eclipse.jst.jsf.facesconfig.emf.ValidatorClassType)"><CODE>setValidatorClass(ValidatorClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ValidatorClass()"><CODE>FacesConfigPackage.getDocumentRoot_ValidatorClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValidatorClass(org.eclipse.jst.jsf.facesconfig.emf.ValidatorClassType)"><!-- --></A><H3>
setValidatorClass</H3>
<PRE>
void <B>setValidatorClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorClass()"><CODE><em>Validator Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Validator Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorClass()"><CODE>getValidatorClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getValidatorId()"><!-- --></A><H3>
getValidatorId</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorIdType</A> <B>getValidatorId</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Validator Id</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "validator-id" element represents the identifier under which the
     corresponding Validator class should be registered.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Validator Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValidatorId(org.eclipse.jst.jsf.facesconfig.emf.ValidatorIdType)"><CODE>setValidatorId(ValidatorIdType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ValidatorId()"><CODE>FacesConfigPackage.getDocumentRoot_ValidatorId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValidatorId(org.eclipse.jst.jsf.facesconfig.emf.ValidatorIdType)"><!-- --></A><H3>
setValidatorId</H3>
<PRE>
void <B>setValidatorId</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValidatorIdType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValidatorIdType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorId()"><CODE><em>Validator Id</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Validator Id</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValidatorId()"><CODE>getValidatorId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getValue()"><!-- --></A><H3>
getValue</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueType</A> <B>getValue</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Value</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "value" element is the
                 String representation of a literal     value to which a
                 scalar managed property will be set, or a value
                 reference expression ("#{...}") that will be
                 used to calculate the     required value.  It will be
                 converted as specified for the actual     property type. 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValue(org.eclipse.jst.jsf.facesconfig.emf.ValueType)"><CODE>setValue(ValueType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_Value()"><CODE>FacesConfigPackage.getDocumentRoot_Value()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValue(org.eclipse.jst.jsf.facesconfig.emf.ValueType)"><!-- --></A><H3>
setValue</H3>
<PRE>
void <B>setValue</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValue()"><CODE><em>Value</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Value</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValue()"><CODE>getValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getValueClass()"><!-- --></A><H3>
getValueClass</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueClassType</A> <B>getValueClass</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Value Class</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
     The "value-class" element defines the Java type to which each
     "value" element's value will be converted to, prior to adding it to
     the "list-entries" list for a managed property that is a
     java.util.List, or a "map-entries" map for a managed property that
     is a java.util.Map.  It must be of type "ClassName".  If omitted,
     "java.lang.String" is assumed.
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Value Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setValueClass(org.eclipse.jst.jsf.facesconfig.emf.ValueClassType)"><CODE>setValueClass(ValueClassType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ValueClass()"><CODE>FacesConfigPackage.getDocumentRoot_ValueClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValueClass(org.eclipse.jst.jsf.facesconfig.emf.ValueClassType)"><!-- --></A><H3>
setValueClass</H3>
<PRE>
void <B>setValueClass</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ValueClassType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ValueClassType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValueClass()"><CODE><em>Value Class</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Value Class</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getValueClass()"><CODE>getValueClass()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getVariableResolver()"><!-- --></A><H3>
getVariableResolver</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VariableResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VariableResolverType</A> <B>getVariableResolver</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Variable Resolver</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
      The "variable-resolver"
                 element contains the fully qualified class name     of
                 the concrete VariableResolver implementation class that
                 will be used     during the processing of value
                 reference expressions.     It must be of type
                 "ClassName". 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Variable Resolver</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setVariableResolver(org.eclipse.jst.jsf.facesconfig.emf.VariableResolverType)"><CODE>setVariableResolver(VariableResolverType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_VariableResolver()"><CODE>FacesConfigPackage.getDocumentRoot_VariableResolver()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setVariableResolver(org.eclipse.jst.jsf.facesconfig.emf.VariableResolverType)"><!-- --></A><H3>
setVariableResolver</H3>
<PRE>
void <B>setVariableResolver</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VariableResolverType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VariableResolverType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVariableResolver()"><CODE><em>Variable Resolver</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Variable Resolver</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVariableResolver()"><CODE>getVariableResolver()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getViewDeclarationLanguageFactory()"><!-- --></A><H3>
getViewDeclarationLanguageFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewDeclarationLanguageFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewDeclarationLanguageFactoryType</A> <B>getViewDeclarationLanguageFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>View Declaration Language Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>View Declaration Language Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setViewDeclarationLanguageFactory(org.eclipse.jst.jsf.facesconfig.emf.ViewDeclarationLanguageFactoryType)"><CODE>setViewDeclarationLanguageFactory(ViewDeclarationLanguageFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ViewDeclarationLanguageFactory()"><CODE>FacesConfigPackage.getDocumentRoot_ViewDeclarationLanguageFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setViewDeclarationLanguageFactory(org.eclipse.jst.jsf.facesconfig.emf.ViewDeclarationLanguageFactoryType)"><!-- --></A><H3>
setViewDeclarationLanguageFactory</H3>
<PRE>
void <B>setViewDeclarationLanguageFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewDeclarationLanguageFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewDeclarationLanguageFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewDeclarationLanguageFactory()"><CODE><em>View Declaration Language Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>View Declaration Language Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewDeclarationLanguageFactory()"><CODE>getViewDeclarationLanguageFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getViewHandler()"><!-- --></A><H3>
getViewHandler</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewHandlerType</A> <B>getViewHandler</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>View Handler</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
       The "view-handler"
                 element contains the fully qualified class name     of
                 the concrete ViewHandler implementation class that will
                 be called     during the Restore View and Render
                 Response phases of the request     processing lifecycle.
                 The faces implementation must provide a     default
                 implementation of this class 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>View Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setViewHandler(org.eclipse.jst.jsf.facesconfig.emf.ViewHandlerType)"><CODE>setViewHandler(ViewHandlerType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_ViewHandler()"><CODE>FacesConfigPackage.getDocumentRoot_ViewHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setViewHandler(org.eclipse.jst.jsf.facesconfig.emf.ViewHandlerType)"><!-- --></A><H3>
setViewHandler</H3>
<PRE>
void <B>setViewHandler</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/ViewHandlerType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">ViewHandlerType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewHandler()"><CODE><em>View Handler</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>View Handler</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getViewHandler()"><CODE>getViewHandler()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getVisitContextFactory()"><!-- --></A><H3>
getVisitContextFactory</H3>
<PRE>
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VisitContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VisitContextFactoryType</A> <B>getVisitContextFactory</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Visit Context Factory</b></em>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
 <!-- begin-model-doc -->
 
 <!-- end-model-doc -->
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the value of the '<em>Visit Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#setVisitContextFactory(org.eclipse.jst.jsf.facesconfig.emf.VisitContextFactoryType)"><CODE>setVisitContextFactory(VisitContextFactoryType)</CODE></A>, 
<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/FacesConfigPackage.html#getDocumentRoot_VisitContextFactory()"><CODE>FacesConfigPackage.getDocumentRoot_VisitContextFactory()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setVisitContextFactory(org.eclipse.jst.jsf.facesconfig.emf.VisitContextFactoryType)"><!-- --></A><H3>
setVisitContextFactory</H3>
<PRE>
void <B>setVisitContextFactory</B>(<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/VisitContextFactoryType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf">VisitContextFactoryType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVisitContextFactory()"><CODE><em>Visit Context Factory</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc -->
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Visit Context Factory</em>' containment reference.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html#getVisitContextFactory()"><CODE>getVisitContextFactory()</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<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">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DocumentRoot.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&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="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DisplayNameType.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/facesconfig/emf/DynamicAttribute.html" title="interface in org.eclipse.jst.jsf.facesconfig.emf"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/eclipse/jst/jsf/facesconfig/emf/DocumentRoot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="DocumentRoot.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
