<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Tue Jan 11 10:54:19 PST 2005 -->
<TITLE>
: Class  SQLAccessControlAdapterFactory
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../../stylesheet.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <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/SQLAccessControlAdapterFactory.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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlSwitch.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="SQLAccessControlAdapterFactory.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.wst.rdb.internal.models.sql.accesscontrol.util</FONT>
<BR>
Class  SQLAccessControlAdapterFactory</H2>
<PRE>
java.lang.Object
  |
  +--org.eclipse.emf.common.notify.impl.AdapterFactoryImpl
        |
        +--<B>org.eclipse.wst.rdb.internal.models.sql.accesscontrol.util.SQLAccessControlAdapterFactory</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.emf.common.notify.AdapterFactory</DD>
</DL>
<HR>
<DL>
<DT>public class <B>SQLAccessControlAdapterFactory</B><DT>extends org.eclipse.emf.common.notify.impl.AdapterFactoryImpl</DL>

<P>
<!-- begin-user-doc -->
 The <b>Adapter Factory</b> for the model.
 It provides an adapter <code>createXXX</code> method for each class of the model.
 <!-- end-user-doc -->
<P>
<DL>
<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/SQLAccessControlPackage.html"><CODE>SQLAccessControlPackage</CODE></A></DL>
<HR>

<P>
<!-- ======== INNER CLASS SUMMARY ======== -->


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


<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#SQLAccessControlAdapterFactory()">SQLAccessControlAdapterFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of the adapter factory.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createAdapter(org.eclipse.emf.common.notify.Notifier)">createAdapter</A></B>(org.eclipse.emf.common.notify.Notifier&nbsp;target)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an adapter for the <code>target</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createAuthorizationIdentifierAdapter()">createAuthorizationIdentifierAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/AuthorizationIdentifier.html"><CODE><em>Authorization Identifier</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createDoubleObjectPrivilegeAdapter()">createDoubleObjectPrivilegeAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/DoubleObjectPrivilege.html"><CODE><em>Double Object Privilege</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createEModelElementAdapter()">createEModelElementAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<CODE><em>EModel Element</em></CODE>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createENamedElementAdapter()">createENamedElementAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<CODE><em>ENamed Element</em></CODE>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createEObjectAdapter()">createEObjectAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for the default case.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createGroupAdapter()">createGroupAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Group.html"><CODE><em>Group</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createPrivilegeAdapter()">createPrivilegeAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Privilege.html"><CODE><em>Privilege</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createRoleAdapter()">createRoleAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Role.html"><CODE><em>Role</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createRoleAuthorizationAdapter()">createRoleAuthorizationAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/RoleAuthorization.html"><CODE><em>Role Authorization</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createSQLObjectAdapter()">createSQLObjectAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html"><CODE><em>SQL Object</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createTablePrivilegeAdapter()">createTablePrivilegeAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/TablePrivilege.html"><CODE><em>Table Privilege</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.emf.common.notify.Adapter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#createUserAdapter()">createUserAdapter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/User.html"><CODE><em>User</em></CODE></A>'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlAdapterFactory.html#isFactoryForType(java.lang.Object)">isFactoryForType</A></B>(java.lang.Object&nbsp;object)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this factory is applicable for the type of the object.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.emf.common.notify.impl.AdapterFactoryImpl"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class org.eclipse.emf.common.notify.impl.AdapterFactoryImpl</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>adapt, adapt, adaptAllNew, adaptNew</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

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


<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="SQLAccessControlAdapterFactory()"><!-- --></A><H3>
SQLAccessControlAdapterFactory</H3>
<PRE>
public <B>SQLAccessControlAdapterFactory</B>()</PRE>
<DL>
<DD>Creates an instance of the adapter factory.
 <!-- begin-user-doc -->
 <!-- end-user-doc --></DL>

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

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

<A NAME="isFactoryForType(java.lang.Object)"><!-- --></A><H3>
isFactoryForType</H3>
<PRE>
public boolean <B>isFactoryForType</B>(java.lang.Object&nbsp;object)</PRE>
<DL>
<DD>Returns whether this factory is applicable for the type of the object.
 <!-- begin-user-doc -->
 This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
 <!-- end-user-doc --><DD><DL>
<DT><B>Overrides:</B><DD><CODE>isFactoryForType</CODE> in class <CODE>org.eclipse.emf.common.notify.impl.AdapterFactoryImpl</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>whether this factory is applicable for the type of the object.</DL>
</DD>
</DL>
<HR>

<A NAME="createAdapter(org.eclipse.emf.common.notify.Notifier)"><!-- --></A><H3>
createAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createAdapter</B>(org.eclipse.emf.common.notify.Notifier&nbsp;target)</PRE>
<DL>
<DD>Creates an adapter for the <code>target</code>.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
<DT><B>Parameters:</B><DD><CODE>target</CODE> - the object to adapt.<DT><B>Returns:</B><DD>the adapter for the <code>target</code>.</DL>
</DD>
</DL>
<HR>

<A NAME="createAuthorizationIdentifierAdapter()"><!-- --></A><H3>
createAuthorizationIdentifierAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createAuthorizationIdentifierAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/AuthorizationIdentifier.html"><CODE><em>Authorization Identifier</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/AuthorizationIdentifier.html"><CODE>AuthorizationIdentifier</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createPrivilegeAdapter()"><!-- --></A><H3>
createPrivilegeAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createPrivilegeAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Privilege.html"><CODE><em>Privilege</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Privilege.html"><CODE>Privilege</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createGroupAdapter()"><!-- --></A><H3>
createGroupAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createGroupAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Group.html"><CODE><em>Group</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Group.html"><CODE>Group</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createUserAdapter()"><!-- --></A><H3>
createUserAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createUserAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/User.html"><CODE><em>User</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/User.html"><CODE>User</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createRoleAdapter()"><!-- --></A><H3>
createRoleAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createRoleAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Role.html"><CODE><em>Role</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/Role.html"><CODE>Role</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createRoleAuthorizationAdapter()"><!-- --></A><H3>
createRoleAuthorizationAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createRoleAuthorizationAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/RoleAuthorization.html"><CODE><em>Role Authorization</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/RoleAuthorization.html"><CODE>RoleAuthorization</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createTablePrivilegeAdapter()"><!-- --></A><H3>
createTablePrivilegeAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createTablePrivilegeAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/TablePrivilege.html"><CODE><em>Table Privilege</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/TablePrivilege.html"><CODE>TablePrivilege</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createDoubleObjectPrivilegeAdapter()"><!-- --></A><H3>
createDoubleObjectPrivilegeAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createDoubleObjectPrivilegeAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/DoubleObjectPrivilege.html"><CODE><em>Double Object Privilege</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/DoubleObjectPrivilege.html"><CODE>DoubleObjectPrivilege</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createEModelElementAdapter()"><!-- --></A><H3>
createEModelElementAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createEModelElementAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<CODE><em>EModel Element</em></CODE>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><CODE>EModelElement</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createENamedElementAdapter()"><!-- --></A><H3>
createENamedElementAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createENamedElementAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<CODE><em>ENamed Element</em></CODE>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><CODE>ENamedElement</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createSQLObjectAdapter()"><!-- --></A><H3>
createSQLObjectAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createSQLObjectAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for an object of class '<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html"><CODE><em>SQL Object</em></CODE></A>'.
 <!-- begin-user-doc -->
 This default implementation returns null so that we can easily ignore cases;
 it's useful to ignore a case when inheritance will catch all the cases anyway.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html"><CODE>SQLObject</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createEObjectAdapter()"><!-- --></A><H3>
createEObjectAdapter</H3>
<PRE>
public org.eclipse.emf.common.notify.Adapter <B>createEObjectAdapter</B>()</PRE>
<DL>
<DD>Creates a new adapter for the default case.
 <!-- begin-user-doc -->
 This default implementation returns null.
 <!-- end-user-doc --><DD><DL>
<DT><B>Returns:</B><DD>the new adapter.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <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/SQLAccessControlAdapterFactory.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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/accesscontrol/util/SQLAccessControlSwitch.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="SQLAccessControlAdapterFactory.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>

</BODY>
</HTML>
