blanco.cg.BlancoCgTransformer Maven / Gradle / Ivy
/*
* blanco Framework
* Copyright (C) 2004-2006 IGA Tosiki
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*/
package blanco.cg;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import blanco.cg.valueobject.BlancoCgSourceFile;
/**
* blancoCgのバリューオブジェクトからソースコードを自動生成するトランスフォーマーのインタフェースです。
*
* 個別の言語用のソースコード自動生成部分は、このインタフェースを実装して実現されます。
*
* @author IGA Tosiki
*/
public interface BlancoCgTransformer {
/**
* ソースファイル・バリューオブジェクトをJavaソースコードに変換して出力先ディレクトリに出力します。
*
* このAPIではパッケージ構造をディレクトリ構造として考慮します。
*
* @param sourceFile ソースファイル・バリューオブジェクト。
* @param outputDirectory 出力先ルートディレクトリ。
*/
void transform(final BlancoCgSourceFile sourceFile, final File outputDirectory);
/**
* ソースファイル・バリューオブジェクトをソースコードに変換してライターに出力します。
*
* このAPIではパッケージ構造をディレクトリ構造とは考慮しません。
*
* @param sourceFile ソースファイル・バリューオブジェクト。
* @param writer 出力先のライター。
* @throws IOException 入出力例外が発生した場合。
*/
void transform(final BlancoCgSourceFile sourceFile, final BufferedWriter writer) throws IOException;
}