<!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_26) on Sun Aug 25 20:47:14 PDT 2013 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
OpenSearchUrl (Apache Wink 1.4 API)
</TITLE>

<META NAME="date" CONTENT="2013-08-25">

<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="OpenSearchUrl (Apache Wink 1.4 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/OpenSearchUrl.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-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/common/model/opensearch/OpenSearchQuery.QueryRole.html" title="enum in org.apache.wink.common.model.opensearch"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/apache/wink/common/model/opensearch/OpenSearchUrl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="OpenSearchUrl.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.common.model.opensearch</FONT>
<BR>
Class OpenSearchUrl</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.wink.common.model.opensearch.OpenSearchUrl</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>OpenSearchUrl</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
The "Url" element per OpenSearch specification
 
 <pre>
 The &quot;Url&quot; element
     
     Describes an interface by which a search client can make search requests of the search engine.
     
     OpenSearch provides support for both index-based and page-based search engines. By default, both the first search result and the first page of search results are numbered &quot;1&quot;. Search engines can use the &quot;indexOffset&quot; and &quot;pageOffset&quot; attributes to inform search clients of different starting values.
     
         Parent: OpenSearchDescription 
         Attributes:
     
             template - Contains the search URL template to be processed according to the OpenSearch URL template syntax.
     
                 Requirements: This attribute is required. 
     
             type - Contains the MIME type of the search result format.
     
                 Restrictions: The value must be a valid MIME type. 
                 Requirements: This attribute is required. 
     
             indexOffset - Contains the index number of the first search result.
     
                 Restrictions: The value must be an integer. 
                 Default: &quot;1&quot; 
                 Requirements: This attribute is optional. 
     
             pageOffset - Contains the page number of the first set of search results.
     
                 Restrictions: The value must be an integer. 
                 Default: &quot;1&quot;. 
                 Requirements: This attribute is optional. 
     
         Requirements: This element must appear one or more times. 
     
     
     Example of a Url element describing the interface used to retrieve search results over RSS:
     
      &lt;Url type=&quot;application/rss+xml&quot;
           template=&quot;http://example.com/?q={searchTerms}&amp;pw={startPage?}&quot; /&gt;
     
     Example of a Url element describing the interface used to retrieve 0-based search results over XHTML:
     
      &lt;Url type=&quot;application/xhtml+xml&quot;
           indexOffset=&quot;0&quot;
           template=&quot;http://example.com/search?q={searchTerms}&amp;start={startIndex?}&quot; /&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.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#template">template</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;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#type">type</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/common/model/opensearch/OpenSearchUrl.html#OpenSearchUrl()">OpenSearchUrl</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/common/model/opensearch/OpenSearchUrl.html#addOpenSearchParameter(org.apache.wink.common.model.opensearch.OpenSearchParameter)">addOpenSearchParameter</A></B>(<A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchParameter.html" title="class in org.apache.wink.common.model.opensearch">OpenSearchParameter</A>&nbsp;openSearchParameter)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add OpenSearch parameter to the list of Open Search Parameters</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#generateOpenSearchUrlTemplate()">generateOpenSearchUrlTemplate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Builds OpenSearchUrl template based on base URI and the list of Open
 Search openSearchParametersParameters</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#getBaseUri()">getBaseUri</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Search base URI</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchParameter.html" title="class in org.apache.wink.common.model.opensearch">OpenSearchParameter</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#getOpenSearchParameters()">getOpenSearchParameters</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the openSearchParameters property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#getTemplate()">getTemplate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the template property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchUrl.html#getType()">getType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of the type 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/common/model/opensearch/OpenSearchUrl.html#setBaseUri(java.lang.String)">setBaseUri</A></B>(java.lang.String&nbsp;baseUri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Search base URI</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/common/model/opensearch/OpenSearchUrl.html#setTemplate(java.lang.String)">setTemplate</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the template 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/common/model/opensearch/OpenSearchUrl.html#setType(java.lang.String)">setType</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the type 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="type"><!-- --></A><H3>
type</H3>
<PRE>
protected java.lang.String <B>type</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="template"><!-- --></A><H3>
template</H3>
<PRE>
protected java.lang.String <B>template</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="OpenSearchUrl()"><!-- --></A><H3>
OpenSearchUrl</H3>
<PRE>
public <B>OpenSearchUrl</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="getType()"><!-- --></A><H3>
getType</H3>
<PRE>
public java.lang.String <B>getType</B>()</PRE>
<DL>
<DD>Gets the value of the type property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <CODE>String</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setType(java.lang.String)"><!-- --></A><H3>
setType</H3>
<PRE>
public void <B>setType</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the type property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <CODE>String</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getTemplate()"><!-- --></A><H3>
getTemplate</H3>
<PRE>
public java.lang.String <B>getTemplate</B>()</PRE>
<DL>
<DD>Gets the value of the template property.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>possible object is <CODE>String</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setTemplate(java.lang.String)"><!-- --></A><H3>
setTemplate</H3>
<PRE>
public void <B>setTemplate</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the template property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - allowed object is <CODE>String</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="addOpenSearchParameter(org.apache.wink.common.model.opensearch.OpenSearchParameter)"><!-- --></A><H3>
addOpenSearchParameter</H3>
<PRE>
public void <B>addOpenSearchParameter</B>(<A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchParameter.html" title="class in org.apache.wink.common.model.opensearch">OpenSearchParameter</A>&nbsp;openSearchParameter)</PRE>
<DL>
<DD>Add OpenSearch parameter to the list of Open Search Parameters
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>openSearchParameter</CODE> - allowed object is <A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchParameter.html" title="class in org.apache.wink.common.model.opensearch"><CODE>OpenSearchParameter</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getOpenSearchParameters()"><!-- --></A><H3>
getOpenSearchParameters</H3>
<PRE>
public java.util.List&lt;<A HREF="../../../../../../org/apache/wink/common/model/opensearch/OpenSearchParameter.html" title="class in org.apache.wink.common.model.opensearch">OpenSearchParameter</A>&gt; <B>getOpenSearchParameters</B>()</PRE>
<DL>
<DD>Gets the value of the openSearchParameters 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 openSearchParameters object.
 <p>
 For example, to add a new item, do as follows:
 
 <pre>
 getOpenSearchParameters().add(openSearchParameter);
 </pre>
 <p>
 Objects of the following type(s) are allowed in the list <CODE>String</CODE>
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="generateOpenSearchUrlTemplate()"><!-- --></A><H3>
generateOpenSearchUrlTemplate</H3>
<PRE>
public java.lang.String <B>generateOpenSearchUrlTemplate</B>()</PRE>
<DL>
<DD>Builds OpenSearchUrl template based on base URI and the list of Open
 Search openSearchParametersParameters
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String OpenSearchUrl template</DL>
</DD>
</DL>
<HR>

<A NAME="getBaseUri()"><!-- --></A><H3>
getBaseUri</H3>
<PRE>
public java.lang.String <B>getBaseUri</B>()</PRE>
<DL>
<DD>Get Search base URI
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String</DL>
</DD>
</DL>
<HR>

<A NAME="setBaseUri(java.lang.String)"><!-- --></A><H3>
setBaseUri</H3>
<PRE>
public void <B>setBaseUri</B>(java.lang.String&nbsp;baseUri)</PRE>
<DL>
<DD>Set Search base URI
<P>
<DD><DL>
</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/OpenSearchUrl.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-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/common/model/opensearch/OpenSearchQuery.QueryRole.html" title="enum in org.apache.wink.common.model.opensearch"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/apache/wink/common/model/opensearch/OpenSearchUrl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="OpenSearchUrl.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-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
