<?xml version="1.0" encoding="UTF-8" ?>
<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">

  <description>United Front 2 JSP Tag Library</description>
  <display-name>United Front 2 JSP Tag Library</display-name>
  <tlib-version>2.0</tlib-version>
  <short-name>uf2</short-name>
  <uri>http://www.unitedfront2.org/tags</uri>

  <!-- 共通 -->
  <tag>
    <description>SCRIPT タグを表示するタグです。</description>
    <name>script</name>
    <tag-class>org.unitedfront2.web.tags.ScriptTag</tag-class>
    <body-content>JSP</body-content>
  </tag>

  <tag>
    <description>複数行テキスト出力用のタグライブラリです。予約文字をエスケープし、改行文字の前に BR タグを挿入します。</description>
    <name>multiLine</name>
    <tag-class>org.unitedfront2.web.tags.MultiLineTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>複数行テキスト</description>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

  <tag>
    <description>指定した日時が現在日時から１日以内なら時間を、年度内である場合は月日を、それ以外なら年月日を表示します。</description>
    <name>formatDate</name>
    <tag-class>org.unitedfront2.web.tags.FormatDateTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>表示対象の日付</description>
      <name>date</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.util.Date</type>
    </attribute>
    <attribute>
      <description>詳細な表示にする場合は true 、しない場合は false</description>
      <name>detail</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>boolean</type>
    </attribute>
  </tag>

  <tag>
    <description>PC 端末からのアクセス時のみ内容を評価するタグです。</description>
    <name>pc</name>
    <tag-class>org.unitedfront2.web.tags.PcTag</tag-class>
    <body-content>JSP</body-content>
  </tag>

  <tag>
    <description>モバイル端末からのアクセス時のみ内容を評価するタグです。</description>
    <name>mobile</name>
    <tag-class>org.unitedfront2.web.tags.MobileTag</tag-class>
    <body-content>JSP</body-content>
  </tag>

  <tag>
    <description>ユーザ名とのプロフィールへのリンクを生成するタグライブラリです。</description>
    <name>user</name>
    <tag-class>org.unitedfront2.web.tags.UserTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>ユーザ</description>
      <name>user</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
    <attribute>
      <description>リンクを強制的に付けるなら true 、強制的にリンクしないなら false</description>
      <name>link</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>boolean</type>
    </attribute>
  </tag>

  <tag>
    <description>２つの Identifiable オブジェクトが同一である場合に本文を評価します。</description>
    <name>identity</name>
    <tag-class>org.unitedfront2.web.tags.IdentityTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>オブジェクト１</description>
      <name>o1</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.Identifiable</type>
    </attribute>
    <attribute>
      <description>オブジェクト２</description>
      <name>o2</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.Identifiable</type>
    </attribute>
  </tag>

  <tag>
    <description>２つの Identifiable オブジェクトが同一でない場合に本文を評価します。</description>
    <name>notIdentity</name>
    <tag-class>org.unitedfront2.web.tags.NotIdentityTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>オブジェクト１</description>
      <name>o1</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.Identifiable</type>
    </attribute>
    <attribute>
      <description>オブジェクト２</description>
      <name>o2</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.Identifiable</type>
    </attribute>
  </tag>

  <tag>
    <description>配列またはコレクションの中に検索対象のユーザが含まれているかどうかで条件分岐を行うタグです。含まれていれば本文を評価し、含まれていなければ評価しません。</description>
    <name>userExists</name>
    <tag-class>org.unitedfront2.web.tags.UserExistsTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>ユーザの配列またはコレクション</description>
      <name>users</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.util.Collection</type>
    </attribute>
    <attribute>
      <description>検索対象のユーザ</description>
      <name>user</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
  </tag>

  <tag>
    <description>配列またはコレクションの中に検索対象のユーザが含まれているかどうかで条件分岐を行うタグです。含まれていなければ本文を評価し、含まれていれば評価しません。</description>
    <name>userNotExists</name>
    <tag-class>org.unitedfront2.web.tags.UserNotExistsTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>ユーザの配列またはコレクション</description>
      <name>users</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.util.Collection</type>
    </attribute>
    <attribute>
      <description>検索対象のユーザ</description>
      <name>user</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
  </tag>

  <tag>
    <description>指定した資源に指定したユーザが参照可能かどうか判別するタグです。</description>
    <name>canRead</name>
    <tag-class>org.unitedfront2.web.tags.CanReadTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>資源</description>
      <name>resource</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.accesscontrol.Resource</type>
    </attribute>
    <attribute>
      <description>ユーザ ID</description>
      <name>userId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Integer</type>
    </attribute>
    <attribute>
      <description>ユーザ</description>
      <name>user</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
  </tag>

  <tag>
    <description>指定した資源に指定したユーザが書き込み可能かどうか判別するタグです。</description>
    <name>canWrite</name>
    <tag-class>org.unitedfront2.web.tags.CanWriteTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>資源</description>
      <name>resource</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.accesscontrol.Resource</type>
    </attribute>
    <attribute>
      <description>ユーザ ID</description>
      <name>userId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Integer</type>
    </attribute>
    <attribute>
      <description>ユーザ</description>
      <name>user</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
  </tag>

  <tag>
    <description>ページングを表示するタグです。</description>
    <name>paging</name>
    <tag-class>org.unitedfront2.web.tags.PagingTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>総件数</description>
      <name>count</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Integer</type>
    </attribute>
    <attribute>
      <description>URL</description>
      <name>url</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.String</type>
    </attribute>
    <attribute>
      <description>ページの変数名。デフォルトは 'page' 。</description>
      <name>pageParamName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.String</type>
    </attribute>
    <attribute>
      <description>ページの表示件数。デフォルトは２０。</description>
      <name>displayCount</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>int</type>
    </attribute>
    <attribute>
      <description>Web Flow の状態を維持するなら true 、しないなら false</description>
      <name>flow</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>boolean</type>
    </attribute>
  </tag>

  <!-- メッセージ -->
  <tag>
    <description>メッセージの件名を出力するタグライブラリです。ロケールに応じて適切な件名を選択します。</description>
    <name>messageSubject</name>
    <tag-class>org.unitedfront2.web.tags.message.MessageSubjectTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>メッセージ</description>
      <name>message</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.communication.Message</type>
    </attribute>
  </tag>

  <tag>
    <description>メッセージの本文を出力するタグライブラリです。ロケールに応じて適切な本文を選択します。</description>
    <name>messageBody</name>
    <tag-class>org.unitedfront2.web.tags.message.MessageBodyTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <description>メッセージ</description>
      <name>message</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.communication.Message</type>
    </attribute>
  </tag>

  <!-- メール -->
  <tag>
    <description>メールスレッド内に未読メールがあるかどうか判定します。</description>
    <name>hasUnreadMail</name>
    <tag-class>org.unitedfront2.web.tags.mail.HasUnreadMailTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>メールを閲覧しているユーザ</description>
      <name>user</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.SimpleUser</type>
    </attribute>
    <attribute>
      <description>メール</description>
      <name>mail</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.communication.Mail</type>
    </attribute>
  </tag>

  <tag>
    <description>スレッド化した状態のメールを、更新日が最近の順でループ処理します。</description>
    <name>forEachMail</name>
    <tag-class>org.unitedfront2.web.tags.mail.ForEachMailTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <!-- from c.tld -->
      <description>
Name of the exported scoped variable for the
current item of the iteration. This scoped
variable has nested visibility. Its type depends
on the object of the underlying collection.
      </description>
      <name>var</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
      </attribute>
      <attribute>
      <!-- from c.tld -->
          <description>
Name of the exported scoped variable for the
status of the iteration. Object exported is of type
javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested
visibility.
          </description>
      <name>varStatus</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
      </attribute>
    <attribute>
      <description>メール</description>
      <name>mail</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.communication.Mail</type>
    </attribute>
  </tag>

  <!-- コミュニティ -->
  <tag>
    <description>指定したコミュニティに指定したユーザが投稿可能かどうか判別するタグです。</description>
    <name>canPost</name>
    <tag-class>org.unitedfront2.web.tags.community.CanPostTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
      <description>コミュニティ</description>
      <name>community</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.communication.Community</type>
    </attribute>
    <attribute>
      <description>ユーザ ID</description>
      <name>userId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Integer</type>
    </attribute>
    <attribute>
      <description>ユーザ</description>
      <name>user</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>org.unitedfront2.domain.User</type>
    </attribute>
  </tag>

</taglib>
