org.seasar.aptina.commons.source
クラス SimpleSourceGenerator<T extends Enum<T> & EnumMessageCode>

java.lang.Object
  上位を拡張 org.seasar.aptina.commons.source.SimpleSourceGenerator<T>
型パラメータ:
T - パターンを定義した列挙の型

public abstract class SimpleSourceGenerator<T extends Enum<T> & EnumMessageCode>
extends Object

printf でソースを生成する単純なジェネレータのための抽象クラスです.

作成者:
koichik

フィールドの概要
protected  StringBuilder buf
          ソースの文字列バッファ
protected  int depth
          インデントの深さ
protected  EnumMessageFormatter<T> enumFormatter
          列挙に定義されたパターンを使用するフォーマッタ
protected  ProcessingEnvironment env
          ProcessingEnvironment
protected  Formatter formatter
          フォーマッタ
protected static char[] SPACES
          インデント用の空白
 
コンストラクタの概要
SimpleSourceGenerator(ProcessingEnvironment env, Class<T> enumClass)
          インスタンスを構築します.
 
メソッドの概要
protected  void enter()
          インデントの階層を下げます.
protected  void indent()
          インデントを出力します.
protected  void indent(int spaces)
          インデントを出力します.
protected  void leave()
          インデントの階層を上げます.
protected  void printf(String format, Object... args)
          フォーマットした文字列を出力します.
protected  void printf(T code, Object... args)
          列挙で示されるパターンを使ってフォーマットした文字列を出力します.
protected  void printGeneratedAnnotation(String productName, String groupId, String artifactId)
          Generated アノテーションを出力します.
protected  void printJavadoc(String comment)
          Javadoc コメントを出力します.
protected  void printJavadoc(T code, Object... args)
          列挙で指定されたパターンを使って組み立てたメッセージを Javadoc コメントを出力します.
protected  void reset()
          生成されたソースを破棄し,状態をリセットします.
 String toString()
          生成されたソースを返します.
protected  void write(String className, TypeElement originalElement)
          生成されたソースを Filer に出力します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

SPACES

protected static final char[] SPACES
インデント用の空白


env

protected final ProcessingEnvironment env
ProcessingEnvironment


buf

protected final StringBuilder buf
ソースの文字列バッファ


formatter

protected final Formatter formatter
フォーマッタ


enumFormatter

protected final EnumMessageFormatter<T extends Enum<T> & EnumMessageCode> enumFormatter
列挙に定義されたパターンを使用するフォーマッタ


depth

protected int depth
インデントの深さ

コンストラクタの詳細

SimpleSourceGenerator

public SimpleSourceGenerator(ProcessingEnvironment env,
                             Class<T> enumClass)
インスタンスを構築します.

パラメータ:
env - ProcessingEnvironment
enumClass - パターンを定義した列挙のクラス
メソッドの詳細

toString

public String toString()
生成されたソースを返します.

オーバーライド:
クラス Object 内の toString
戻り値:
生成されたソース

reset

protected void reset()
生成されたソースを破棄し,状態をリセットします.


write

protected void write(String className,
                     TypeElement originalElement)
              throws IOException
生成されたソースを Filer に出力します.

パラメータ:
className - 生成されたクラスの完全限定名
originalElement - 生成されたクラスの元になった Element
例外:
IOException - 入出力例外が発生した場合

enter

protected void enter()
インデントの階層を下げます.


leave

protected void leave()
インデントの階層を上げます.


indent

protected void indent()
インデントを出力します.


indent

protected void indent(int spaces)
インデントを出力します.

パラメータ:
spaces - インデントするスペースの数

printf

protected void printf(String format,
                      Object... args)
フォーマットした文字列を出力します.

先頭にはインデントが付けられます.

パラメータ:
format - パターン文字列
args - パターンから参照される引数の並び

printf

protected void printf(T code,
                      Object... args)
列挙で示されるパターンを使ってフォーマットした文字列を出力します.

先頭にはインデントが付けられます.

パラメータ:
code - パターンを示す列挙
args - パターンから参照される引数の並び

printJavadoc

protected void printJavadoc(String comment)
Javadoc コメントを出力します.

先頭にはインデントが付けられます.

引数で渡されたコメントは Elements.getDocComment(Element) が返す文字列と同じ形式の文字列として扱われます. この形式は, Javadoc コメントから各行の先頭の "*" までを除去したものです. 最初の行は空白 ("/**" の後に改行があるため) で, 最初と最後を除いた各行の先頭は空白 ( "/*" の後の空白) で始まります.

パラメータ:
comment - コメント

printJavadoc

protected void printJavadoc(T code,
                            Object... args)
列挙で指定されたパターンを使って組み立てたメッセージを Javadoc コメントを出力します.

先頭にはインデントが付けられます.

組み立てられたコメントは Elements.getDocComment(Element) が返す文字列と同じ形式の文字列として扱われます. この形式は, Javadoc コメントから各行の先頭の "*" までを除去したものです. 最初の行は空白 ("/**" の後に改行があるため) で, 最初と最後を除いた各行の先頭は空白 ( "/*" の後の空白) で始まります.

パラメータ:
code - パターンを示す列挙
args - パターンから参照される引数の並び

printGeneratedAnnotation

protected void printGeneratedAnnotation(String productName,
                                        String groupId,
                                        String artifactId)
Generated アノテーションを出力します.

アノテーションの属性には引数で渡された項目に加えて, VersionUtils.getVersion(String, String, String) で取得したバージョン情報が出力されます. バージョン情報が取得できなかった場合は "DEV" が出力されます.

パラメータ:
productName - プロダクト名
groupId - グループ ID
artifactId - アーティファクト ID


Copyright © 2009-2010 The Seasar Foundation. All Rights Reserved.