<!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) on Mon Oct 19 13:38:33 CDT 2009 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Prop (Apache Wink 1.0-incubating API)
</TITLE>

<META NAME="date" CONTENT="2009-10-19">

<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="Prop (Apache Wink 1.0-incubating API)";
    }
}
</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/Prop.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="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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-all.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/apache/wink/webdav/model/Owner.html" title="class in org.apache.wink.webdav.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Propertybehavior.html" title="class in org.apache.wink.webdav.model"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/wink/webdav/model/Prop.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Prop.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;<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;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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.apache.wink.webdav.model</FONT>
<BR>
Class Prop</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.wink.webdav.model.Prop</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>Prop</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
The <code>prop</code> XML element per the WebDAV specification [RFC 4918]
 
 <pre>
    Name:       prop
    Namespace:  DAV:
    Purpose:    Contains properties related to a resource.
    Description: The prop XML element is a generic container for
    properties defined on resources.  All elements inside a prop XML
    element MUST define properties related to the resource.  No other
    elements may be used inside of a prop element.
 
    &lt;!ELEMENT prop ANY&gt;
 
 </pre>
<P>

<P>
<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>protected &nbsp;java.util.List&lt;org.w3c.dom.Element&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#any">any</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#creationdate">creationdate</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#displayname">displayname</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getcontentlanguage">getcontentlanguage</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getcontentlength">getcontentlength</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getcontenttype">getcontenttype</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getetag">getetag</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getlastmodified">getlastmodified</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#lockdiscovery">lockdiscovery</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#resourcetype">resourcetype</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#supportedlock">supportedlock</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_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>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#Prop()">Prop</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#copyTo(org.apache.wink.webdav.model.Prop)">copyTo</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Prop.html" title="class in org.apache.wink.webdav.model">Prop</A>&nbsp;dest)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a shallow copy of all elements in this Prop instance into the
 dest Prop instance</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;org.w3c.dom.Element&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getAny()">getAny</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the any property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getAnyByName(javax.xml.namespace.QName)">getAnyByName</A></B>(javax.xml.namespace.QName&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a proprietary property as an W3C element</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getAnyByName(java.lang.String, java.lang.String)">getAnyByName</A></B>(java.lang.String&nbsp;namespaceURI,
             java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a proprietary property as an W3C element</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getCreationdate()">getCreationdate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the creationdate property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getDisplayname()">getDisplayname</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the displayname property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getGetcontentlanguage()">getGetcontentlanguage</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the getcontentlanguage property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getGetcontentlength()">getGetcontentlength</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the getcontentlength property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getGetcontenttype()">getGetcontenttype</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the getcontenttype property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getGetetag()">getGetetag</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the getetag property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getGetlastmodified()">getGetlastmodified</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the getlastmodified property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getLockdiscovery()">getLockdiscovery</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the lockdiscovery property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getResourcetype()">getResourcetype</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the resourcetype property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#getSupportedlock()">getSupportedlock</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the supportedlock property.</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/apache/wink/webdav/model/Prop.html#removeAny(org.w3c.dom.Element)">removeAny</A></B>(org.w3c.dom.Element&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the specified proprietary property</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/apache/wink/webdav/model/Prop.html#removeAny(javax.xml.namespace.QName)">removeAny</A></B>(javax.xml.namespace.QName&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the specified proprietary property</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/apache/wink/webdav/model/Prop.html#removeAny(java.lang.String, java.lang.String)">removeAny</A></B>(java.lang.String&nbsp;namespaceURI,
          java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the specified proprietary property</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/apache/wink/webdav/model/Prop.html#setCreationdate(org.apache.wink.webdav.model.Creationdate)">setCreationdate</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the creationdate property.</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/apache/wink/webdav/model/Prop.html#setDisplayname(org.apache.wink.webdav.model.Displayname)">setDisplayname</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the displayname property.</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/apache/wink/webdav/model/Prop.html#setGetcontentlanguage(org.apache.wink.webdav.model.Getcontentlanguage)">setGetcontentlanguage</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the getcontentlanguage property.</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/apache/wink/webdav/model/Prop.html#setGetcontentlength(org.apache.wink.webdav.model.Getcontentlength)">setGetcontentlength</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the getcontentlength property.</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/apache/wink/webdav/model/Prop.html#setGetcontenttype(org.apache.wink.webdav.model.Getcontenttype)">setGetcontenttype</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the getcontenttype property.</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/apache/wink/webdav/model/Prop.html#setGetetag(org.apache.wink.webdav.model.Getetag)">setGetetag</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the getetag property.</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/apache/wink/webdav/model/Prop.html#setGetlastmodified(org.apache.wink.webdav.model.Getlastmodified)">setGetlastmodified</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the getlastmodified property.</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/apache/wink/webdav/model/Prop.html#setLockdiscovery(org.apache.wink.webdav.model.Lockdiscovery)">setLockdiscovery</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the lockdiscovery property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(javax.xml.namespace.QName)">setProperty</A></B>(javax.xml.namespace.QName&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(javax.xml.namespace.QName, org.w3c.dom.Element)">setProperty</A></B>(javax.xml.namespace.QName&nbsp;name,
            org.w3c.dom.Element&nbsp;content)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(javax.xml.namespace.QName, java.lang.String)">setProperty</A></B>(javax.xml.namespace.QName&nbsp;name,
            java.lang.String&nbsp;content)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(java.lang.String, java.lang.String)">setProperty</A></B>(java.lang.String&nbsp;namespaceURI,
            java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(java.lang.String, java.lang.String, org.w3c.dom.Element)">setProperty</A></B>(java.lang.String&nbsp;namespaceURI,
            java.lang.String&nbsp;name,
            org.w3c.dom.Element&nbsp;child)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/webdav/model/Prop.html#setProperty(java.lang.String, java.lang.String, java.lang.String)">setProperty</A></B>(java.lang.String&nbsp;namespaceURI,
            java.lang.String&nbsp;name,
            java.lang.String&nbsp;content)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a proprietary property, and return the Element representing it</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/apache/wink/webdav/model/Prop.html#setResourcetype(org.apache.wink.webdav.model.Resourcetype)">setResourcetype</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the resourcetype property.</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/apache/wink/webdav/model/Prop.html#setSupportedlock(org.apache.wink.webdav.model.Supportedlock)">setSupportedlock</A></B>(<A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the supportedlock property.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></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="creationdate"><!-- --></A><H3>
creationdate</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A> <B>creationdate</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="displayname"><!-- --></A><H3>
displayname</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A> <B>displayname</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="getcontentlanguage"><!-- --></A><H3>
getcontentlanguage</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A> <B>getcontentlanguage</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="getcontentlength"><!-- --></A><H3>
getcontentlength</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A> <B>getcontentlength</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="getcontenttype"><!-- --></A><H3>
getcontenttype</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A> <B>getcontenttype</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="getetag"><!-- --></A><H3>
getetag</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A> <B>getetag</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="getlastmodified"><!-- --></A><H3>
getlastmodified</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A> <B>getlastmodified</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="lockdiscovery"><!-- --></A><H3>
lockdiscovery</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A> <B>lockdiscovery</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="resourcetype"><!-- --></A><H3>
resourcetype</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A> <B>resourcetype</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="supportedlock"><!-- --></A><H3>
supportedlock</H3>
<PRE>
protected <A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A> <B>supportedlock</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="any"><!-- --></A><H3>
any</H3>
<PRE>
protected java.util.List&lt;org.w3c.dom.Element&gt; <B>any</B></PRE>
<DL>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_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>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Prop()"><!-- --></A><H3>
Prop</H3>
<PRE>
public <B>Prop</B>()</PRE>
<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="getCreationdate()"><!-- --></A><H3>
getCreationdate</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A> <B>getCreationdate</B>()</PRE>
<DL>
<DD>Gets the value of the creationdate property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model"><CODE>Creationdate</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setCreationdate(org.apache.wink.webdav.model.Creationdate)"><!-- --></A><H3>
setCreationdate</H3>
<PRE>
public void <B>setCreationdate</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model">Creationdate</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the creationdate property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Creationdate.html" title="class in org.apache.wink.webdav.model"><CODE>Creationdate</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDisplayname()"><!-- --></A><H3>
getDisplayname</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A> <B>getDisplayname</B>()</PRE>
<DL>
<DD>Gets the value of the displayname property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model"><CODE>Displayname</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDisplayname(org.apache.wink.webdav.model.Displayname)"><!-- --></A><H3>
setDisplayname</H3>
<PRE>
public void <B>setDisplayname</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model">Displayname</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the displayname property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Displayname.html" title="class in org.apache.wink.webdav.model"><CODE>Displayname</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGetcontentlanguage()"><!-- --></A><H3>
getGetcontentlanguage</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A> <B>getGetcontentlanguage</B>()</PRE>
<DL>
<DD>Gets the value of the getcontentlanguage property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontentlanguage</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGetcontentlanguage(org.apache.wink.webdav.model.Getcontentlanguage)"><!-- --></A><H3>
setGetcontentlanguage</H3>
<PRE>
public void <B>setGetcontentlanguage</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model">Getcontentlanguage</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the getcontentlanguage property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlanguage.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontentlanguage</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGetcontentlength()"><!-- --></A><H3>
getGetcontentlength</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A> <B>getGetcontentlength</B>()</PRE>
<DL>
<DD>Gets the value of the getcontentlength property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontentlength</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGetcontentlength(org.apache.wink.webdav.model.Getcontentlength)"><!-- --></A><H3>
setGetcontentlength</H3>
<PRE>
public void <B>setGetcontentlength</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model">Getcontentlength</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the getcontentlength property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontentlength.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontentlength</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGetcontenttype()"><!-- --></A><H3>
getGetcontenttype</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A> <B>getGetcontenttype</B>()</PRE>
<DL>
<DD>Gets the value of the getcontenttype property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontenttype</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGetcontenttype(org.apache.wink.webdav.model.Getcontenttype)"><!-- --></A><H3>
setGetcontenttype</H3>
<PRE>
public void <B>setGetcontenttype</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model">Getcontenttype</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the getcontenttype property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Getcontenttype.html" title="class in org.apache.wink.webdav.model"><CODE>Getcontenttype</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGetetag()"><!-- --></A><H3>
getGetetag</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A> <B>getGetetag</B>()</PRE>
<DL>
<DD>Gets the value of the getetag property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model"><CODE>Getetag</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGetetag(org.apache.wink.webdav.model.Getetag)"><!-- --></A><H3>
setGetetag</H3>
<PRE>
public void <B>setGetetag</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model">Getetag</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the getetag property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Getetag.html" title="class in org.apache.wink.webdav.model"><CODE>Getetag</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGetlastmodified()"><!-- --></A><H3>
getGetlastmodified</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A> <B>getGetlastmodified</B>()</PRE>
<DL>
<DD>Gets the value of the getlastmodified property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model"><CODE>Getlastmodified</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGetlastmodified(org.apache.wink.webdav.model.Getlastmodified)"><!-- --></A><H3>
setGetlastmodified</H3>
<PRE>
public void <B>setGetlastmodified</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model">Getlastmodified</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the getlastmodified property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Getlastmodified.html" title="class in org.apache.wink.webdav.model"><CODE>Getlastmodified</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLockdiscovery()"><!-- --></A><H3>
getLockdiscovery</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A> <B>getLockdiscovery</B>()</PRE>
<DL>
<DD>Gets the value of the lockdiscovery property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model"><CODE>Lockdiscovery</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setLockdiscovery(org.apache.wink.webdav.model.Lockdiscovery)"><!-- --></A><H3>
setLockdiscovery</H3>
<PRE>
public void <B>setLockdiscovery</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model">Lockdiscovery</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the lockdiscovery property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Lockdiscovery.html" title="class in org.apache.wink.webdav.model"><CODE>Lockdiscovery</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getResourcetype()"><!-- --></A><H3>
getResourcetype</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A> <B>getResourcetype</B>()</PRE>
<DL>
<DD>Gets the value of the resourcetype property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model"><CODE>Resourcetype</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setResourcetype(org.apache.wink.webdav.model.Resourcetype)"><!-- --></A><H3>
setResourcetype</H3>
<PRE>
public void <B>setResourcetype</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model">Resourcetype</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the resourcetype property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Resourcetype.html" title="class in org.apache.wink.webdav.model"><CODE>Resourcetype</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSupportedlock()"><!-- --></A><H3>
getSupportedlock</H3>
<PRE>
public <A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A> <B>getSupportedlock</B>()</PRE>
<DL>
<DD>Gets the value of the supportedlock property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model"><CODE>Supportedlock</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setSupportedlock(org.apache.wink.webdav.model.Supportedlock)"><!-- --></A><H3>
setSupportedlock</H3>
<PRE>
public void <B>setSupportedlock</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model">Supportedlock</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the supportedlock property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <A HREF="../../../../../org/apache/wink/webdav/model/Supportedlock.html" title="class in org.apache.wink.webdav.model"><CODE>Supportedlock</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAny()"><!-- --></A><H3>
getAny</H3>
<PRE>
public java.util.List&lt;org.w3c.dom.Element&gt; <B>getAny</B>()</PRE>
<DL>
<DD>Gets the value of the any property.
 <p>
 This accessor method returns a reference to the live list, not a
 snapshot. Therefore any modification you make to the returned list will
 be present inside the JAXB object. This is why there is not a
 <CODE>set</CODE> method for the any property.
 <p>
 For example, to add a new item, do as follows:
 
 <pre>
 getAny().add(newItem);
 </pre>
 <p>
 Objects of the following type(s) are allowed in the list <CODE>Element</CODE>
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAnyByName(javax.xml.namespace.QName)"><!-- --></A><H3>
getAnyByName</H3>
<PRE>
public org.w3c.dom.Element <B>getAnyByName</B>(javax.xml.namespace.QName&nbsp;name)</PRE>
<DL>
<DD>Get a proprietary property as an W3C element
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the property to get
<DT><B>Returns:</B><DD>an Element instance representing the property, or null if no such
         property exists</DL>
</DD>
</DL>
<HR>

<A NAME="getAnyByName(java.lang.String, java.lang.String)"><!-- --></A><H3>
getAnyByName</H3>
<PRE>
public org.w3c.dom.Element <B>getAnyByName</B>(java.lang.String&nbsp;namespaceURI,
                                        java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Get a proprietary property as an W3C element
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - the namespace of the property to get<DD><CODE>name</CODE> - the name of the property to get
<DT><B>Returns:</B><DD>an Element instance representing the property, or null if no such
         property exists</DL>
</DD>
</DL>
<HR>

<A NAME="removeAny(java.lang.String, java.lang.String)"><!-- --></A><H3>
removeAny</H3>
<PRE>
public void <B>removeAny</B>(java.lang.String&nbsp;namespaceURI,
                      java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Remove the specified proprietary property
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - the namespace of the property to remove<DD><CODE>name</CODE> - name of the property to remove</DL>
</DD>
</DL>
<HR>

<A NAME="removeAny(javax.xml.namespace.QName)"><!-- --></A><H3>
removeAny</H3>
<PRE>
public void <B>removeAny</B>(javax.xml.namespace.QName&nbsp;name)</PRE>
<DL>
<DD>Remove the specified proprietary property
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - name of the property to remove</DL>
</DD>
</DL>
<HR>

<A NAME="removeAny(org.w3c.dom.Element)"><!-- --></A><H3>
removeAny</H3>
<PRE>
public void <B>removeAny</B>(org.w3c.dom.Element&nbsp;element)</PRE>
<DL>
<DD>Remove the specified proprietary property
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>element</CODE> - the Element instance to remove</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(javax.xml.namespace.QName)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(javax.xml.namespace.QName&nbsp;name)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the property
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(javax.xml.namespace.QName&nbsp;name,
                                       java.lang.String&nbsp;content)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the property<DD><CODE>content</CODE> - the text content of the property
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(javax.xml.namespace.QName, org.w3c.dom.Element)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(javax.xml.namespace.QName&nbsp;name,
                                       org.w3c.dom.Element&nbsp;content)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the property<DD><CODE>content</CODE> - the text content of the property
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(java.lang.String, java.lang.String)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(java.lang.String&nbsp;namespaceURI,
                                       java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - the namespace of the property<DD><CODE>name</CODE> - the name of the property
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(java.lang.String&nbsp;namespaceURI,
                                       java.lang.String&nbsp;name,
                                       java.lang.String&nbsp;content)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - the namespace of the property<DD><CODE>name</CODE> - the name of the property<DD><CODE>content</CODE> - the text content of the property
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(java.lang.String, java.lang.String, org.w3c.dom.Element)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public org.w3c.dom.Element <B>setProperty</B>(java.lang.String&nbsp;namespaceURI,
                                       java.lang.String&nbsp;name,
                                       org.w3c.dom.Element&nbsp;child)</PRE>
<DL>
<DD>Set a proprietary property, and return the Element representing it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - the namespace of the property<DD><CODE>name</CODE> - the name of the property<DD><CODE>child</CODE> - the child element of the property element
<DT><B>Returns:</B><DD>the Element representing the property</DL>
</DD>
</DL>
<HR>

<A NAME="copyTo(org.apache.wink.webdav.model.Prop)"><!-- --></A><H3>
copyTo</H3>
<PRE>
public void <B>copyTo</B>(<A HREF="../../../../../org/apache/wink/webdav/model/Prop.html" title="class in org.apache.wink.webdav.model">Prop</A>&nbsp;dest)</PRE>
<DL>
<DD>Performs a shallow copy of all elements in this Prop instance into the
 dest Prop instance
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>dest</CODE> - the Prop instance to cop this instance into</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/Prop.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="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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-all.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/apache/wink/webdav/model/Owner.html" title="class in org.apache.wink.webdav.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/wink/webdav/model/Propertybehavior.html" title="class in org.apache.wink.webdav.model"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/wink/webdav/model/Prop.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Prop.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;<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;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
