業務連絡くらいは書かないとね。しかし、金曜にこんなこと書くってことは、週末にやれってこと…… ひどいヒト>わたし。
晒す準備
中途半端でもなんでもいいから、とりあえずリリース(晒し)しましょ。zipでもtar.gzでも、とにかく塊を一個作ります。Xion-0.1/ とか(0.01かもなー)にまとめて入れるものは:
- build.xml -- 自分で作りたいヒトはこれで作れるように。
- src/ -- ソースツリー
- bin/, lib/ -- ビルドのとき、実行するときに必要なツール、ライブラリは最初から入れておきましょう。量がすごく多いとかライセンスとかの問題があれば話は別ですが。
- xion.jar -- 作らなくてもすぐに使えるように。
間に合わないとか、入れないほうがいいとか:
- doc/ -- 間に合わない。カラッポかな。READMEくらいは僕が書くようにします。
- samples/ -- src/ の下にサンプルソースを入れておくと何か汚いので、わけたほうがいいと思う。
- test/ -- 同様な理由でわけたほうがいいかな。
- CVS/とかOS特有のファイルとかは取り除いてください。
- でも、Eclipseの.projectとかは残っていたほうが便利かも知れない。
ネーミング
Xionという接頭辞を付けた名前と裸の名前が混在している(それが悪いわけではないが)。StringとかReaderとかは、XionString, XionReaderとしないとさすがにまずい、から悩みはない。で、問題はContext, Converterとかだが、かなーりアリガチな名前だなー。パッケージ名で修飾するハメにならないように、XionContext, XionConverterにしておいたほうが無難と判断。
value()
メソッドvalue()はイキチガイがあった。value()は、必ずしも文字列を返すのではない。xo, xa, xs がそれぞれ、XionObject, XionArray, XionStringだとして:
としたい。要するに、Xion型に対応するJava型のデータを返す。コンバータを作るとき使う気がする。
Map m = xo.value();
List l = xa.value();
String s = xs.value();
Taggable
ってインターフェース要るのかな? 概念的な分類の整合性のためなら止めよう。ファイルが一個減るほうが重要。
DefaultContext
複雑になりすぎた。以前の超簡単コンテキストはSimpleContextとかで残して、load(現状のloadAdd/loadSet)だけを持ったFileContext(より実情を表すならStreamContextかな)へと単純化したほうがいいでしょう。
DefaultContextってのは要らないかな。Defaultがないと落ち着かないなら、例えば:
/**
* コンバータを追加する。
* 既に同名のタグが登録されていれば例外となる。
*/
void addConverter(Converter conv) throws XionContextException;/**
* 指定のタグでコンバータを追加する。
* 既に同名のタグが登録されていれば例外となる。
*/
void addConverter(String tag, Converter conv) throws XionContextException;/**
* コンバータをセットする。
* 既に同名のタグが登録されていれば上書きする。
*/
void setConverter(Converter conv);/**
* 指定のタグでコンバータをセットする。
* 既に同名のタグが登録されていれば上書きする。
*/
void setConverter(String tag, Converter conv);/**
* 指定のタグのコンバータを削除する。
* コンバータが登録されていなければ何もしない。
*/
void removeConverter(String tag);/**
* 指定のタグのコンバータがあればtrue、
* なければfalseを返す。
*/
boolean hasConverter(String tag);
引数が""、nullのときの扱いとか細かいことは適当に考えて。それと、登録済みを列挙するにはイテレータがいいでしょう。
// タグを全部表示
for (Converter conv : context) {
System.out.println(conv.tag());
}
タグ(キー)だけの列挙とか、安全な全部削除とかも欲しくなるが、きりがないからいいや;そもそも、これ作んなくてもいいし。
手を抜く
その他、手を抜き足りない部分をチェック。がんばって手を抜こう(って、なんたる日本語だ)。