<?xml version="1.0"?>
<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-jsptaglibrary_2_1.xsd"
        version="2.1">
  <tlib-version>1.0</tlib-version>
  <short-name>u</short-name>
  <uri>http://www.openkm.com/tags/utils</uri>
  
  <!-- Tags -->
  <tag>
    <name>formatSize</name>
    <tag-class>com.openkm.util.tags.FormatSizeTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>size</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>formatMiliSeconds</name>
    <tag-class>com.openkm.util.tags.FormatMiliSecondsTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>time</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>formatDate</name>
    <tag-class>com.openkm.util.tags.FormatDateTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>date</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>calendar</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>getName</name>
    <tag-class>com.openkm.util.tags.GetNameTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>path</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>getParent</name>
    <tag-class>com.openkm.util.tags.GetParentTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>path</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>startsWith</name>
    <tag-class>com.openkm.util.tags.StartsWithTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>string</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>prefix</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>escapeHtml</name>
    <tag-class>com.openkm.util.tags.EscapeHtmlTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>string</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>constantsMap</name>
    <tag-class>com.openkm.util.tags.ConstantsMapTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
        <name>className</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <name>var</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <name>scope</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>automationFormElement</name>
    <tag-class>com.openkm.util.tags.AutomationFormElementTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>type</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>source</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>name</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>readonly</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>message</name>
    <tag-class>com.openkm.util.tags.MessageTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>module</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>key</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <name>configStoredSelect</name>
    <tag-class>com.openkm.util.tags.ConfigStoredSelectTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>key</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  
  <!-- Functions -->
  <function>
    <name>contains</name>
    <function-class>com.openkm.util.tags.UtilFunctions</function-class>
    <function-signature>boolean contains(java.util.Collection, java.lang.Object)</function-signature>
  </function>
  <function>
    <name>replace</name>
    <function-class>com.openkm.util.tags.UtilFunctions</function-class>
    <function-signature>java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  </function>
  <function>
    <name>isAdmin</name>
    <function-class>com.openkm.util.tags.UtilFunctions</function-class>
    <function-signature>boolean isAdmin()</function-signature>
  </function>
  <function>
    <name>bitwiseAnd</name>
    <function-class>com.openkm.util.tags.UtilFunctions</function-class>
    <function-signature>int bitwiseAnd(int, int)</function-signature>
  </function>
</taglib>