Velocity

Velocityについて

コミュニティ

ドキュメント

ツール

比較

日本語訳について

Texen とは?

Texen は、汎用テキスト生成ユーティリティです。 ほぼどんな種類のテキストでも生成できます。 Texen の実体は、Ant タスクで、Ant によって実行されます。 Taxen は、制御テンプレート、場合によってはワーカテンプレート群と、生成された出力を管理するための 制御コンテキストを使用します。 TexenTask は直接使用することもできますが、通常はサブクラス化します。 何らかの出力を生成する前に制御コンテキストを初期化するためです。

Texen は、Turbine Web アプリケーションフレームワークで必要とされるソース生成を行うために作成されました。 Turbine にある Torque ユーティリティ (これは TexenTask のサブクラスです)では、Turbine プロジェクトのために SQLの生成と、 OR (オブジェクト-リレーショナル) マッピングのソース生成を担っています。 これは、1つの例にすぎません。 Texenは、テキストの生成ならほぼ何にでも使えるのです!


TexenTask

このちょっとした例は Ant の build.xml から Texen を使う方法を示しているわけですが、 Texen の仕組みがどうやって働くのかも示しています。

Ant ビルドファイル

<project name="HtmlGenerator" default="main" basedir=".">

  <taskdef name="texen" classname="org.apache.velocity.texen.ant.TexenTask"/>

  <!-- ================================================================ -->
  <!-- G E N E R A T E  H T M L  P A G E S                              -->
  <!-- ================================================================ -->
  <!-- このターゲット(main)は、制御コンテキストの情報に基づいて         -->
  <!-- HTMLページ群を生成します。                                       -->
  <!-- ================================================================ -->

  <target name="main">

    <echo message="+------------------------------------------+"/>
    <echo message="|                                          |"/>
    <echo message="| Generating HTML pages!                   |"/>
    <echo message="|                                          |"/>
    <echo message="+------------------------------------------+"/>

    <texen
      controlTemplate="Control.vm"
      outputDirectory="."
      templatePath="."
      outputFile="generation.report"
    />

  </target>

</project>

制御テンプレート

#*

file: Control.vm

これは HTML ページジェネレータのための制御テンプレートです!

*#

#set ($Planets = ["Earth", "Mars", "Venus"])

#foreach ($planet in $Planets)

    #set ($outputFile = $stringutils.concat([$planet, ".html"]))
    $generator.parse("HtmlTemplate.vm", $outputFile, "planet", $planet)

#end

ワーカテンプレート

#*

file: HtmlTemplate.vm

これはワーカテンプレートです。
制御テンプレートから呼ばれて、実用的な出力を生成します
(この例はあまり実用的ではありませんが)。 :-)

*#

#set ($bgcolor = "#ffffff")

<html>
  <head>
    <title>
      Everything you wanted to know about $planet!
    </title>
  </head>
  <body bgcolor="$bgcolor">

  $planet is a great place to live!

  </body>
</html>

Texen は、Earth.html、Mars.html、 Venus.html の 3 つの html ページを生成します。 もっと実用的にするためには、TexenTask をサブクラス化したり、 制御コンテキストに何かオブジェクトを設定したり、 有効な出力を生成するために制御コンテキストに情報を設定したりします。

Texen の全機能の実例は、Turbine の Torque ユーティリティを参照してください。 Torque のスタンドアローン版は、 こちら にあります。



このドキュメントは、 熊坂祐二 、 新穂洋史 、 高橋達男 、 小山博史 が訳しました。
コメントがある場合は、 report@jajakarta.org までお願いします。
オリジナル英文 Copyright © 1999-2003, The Apache Software Foundation