<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

 Copyright 2009, 2010 Sun Microsystems, Inc. All rights reserved.

 The contents of this file are subject to the terms of either the GNU
 General Public License Version 2 only ("GPL") or the Common Development
 and Distribution License("CDDL") (collectively, the "License").  You
 may not use this file except in compliance with the License. You can obtain
 a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
 or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
 language governing permissions and limitations under the License.

 When distributing the software, include this License Header Notice in each
 file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
 Sun designates this particular file as subject to the "Classpath" exception
 as provided by Sun in the GPL Version 2 section of the License file that
 accompanied this code.  If applicable, add the following below the License
 Header, with the fields enclosed by brackets [] replaced by your own
 identifying information: "Portions Copyrighted [year]
 [name of copyright owner]"

 Contributor(s):

 If you wish your version of this file to be governed by only the CDDL or
 only the GPL Version 2, indicate your decision by adding "[Contributor]
 elects to include this software in this distribution under the [CDDL or GPL
 Version 2] license."  If you don't indicate a single choice of license, a
 recipient has the option to distribute your version of this file under
 either the CDDL, the GPL Version 2 or to extend the choice of license to
 its licensees as provided above.  However, if you add GPL Version 2 code
 and therefore, elected the GPL Version 2 license, then the option applies
 only if the new code is made subject to such option by the copyright
 holder.
-->

<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
                version="2.0">
  <description>JSTL 1.1 functions library</description>
  <namespace>http://java.sun.com/jsp/jstl/functions</namespace>
  <function>
    <description>
      Tests if an input string contains the specified substring.
    </description>
    <function-name>contains</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>boolean contains(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Tests if an input string contains the specified substring in a case insensitive way.
    </description>
    <function-name>containsIgnoreCase</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>boolean containsIgnoreCase(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Tests if an input string ends with the specified suffix.
    </description>
    <function-name>endsWith</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>boolean endsWith(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Escapes characters that could be interpreted as XML markup.
    </description>
    <function-name>escapeXml</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String escapeXml(java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Returns the index withing a string of the first occurrence of a specified substring.
    </description>
    <function-name>indexOf</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>int indexOf(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Joins all elements of an array into a string.
    </description>
    <function-name>join</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String join(java.lang.String[], java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Returns the number of items in a collection, or the number of characters in a string.
    </description>
    <function-name>length</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>int length(java.lang.Object)</function-signature>
  </function>
  <function>
    <description>
      Returns a string resulting from replacing in an input string all occurrences
      of a "before" string into an "after" substring.
    </description>
    <function-name>replace</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Splits a string into an array of substrings.
    </description>
    <function-name>split</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String[] split(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Tests if an input string starts with the specified prefix.
    </description>
    <function-name>startsWith</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>boolean startsWith(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Returns a subset of a string.
    </description>
    <function-name>substring</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String substring(java.lang.String, int, int)</function-signature>
  </function>
  <function>
    <description>
      Returns a subset of a string following a specific substring.
    </description>
    <function-name>substringAfter</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String substringAfter(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Returns a subset of a string before a specific substring.
    </description>
    <function-name>substringBefore</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String substringBefore(java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Converts all of the characters of a string to lower case.
    </description>
    <function-name>toLowerCase</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String toLowerCase(java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Converts all of the characters of a string to upper case.
    </description>
    <function-name>toUpperCase</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String toUpperCase(java.lang.String)</function-signature>
  </function>
  <function>
    <description>
      Removes white spaces from both ends of a string.
    </description>
    <function-name>trim</function-name>
    <function-class>com.sun.faces.facelets.tag.jstl.fn.JstlFunction</function-class>
    <function-signature>java.lang.String trim(java.lang.String)</function-signature>
  </function>
</facelet-taglib>
