アットウィキロゴ
lazybones @Wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

lazybones @Wiki

cosUMLTool4

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン

閃いた事 エンドユーザ向けドキュメントの自動生成

私はクラス図を二つ作らなければいけない立場なのです。それは、開発者向けとエンドユーザ向けです。
同じ物でもと思いますが、プロパティ等日本語ではないことで、エンドユーザ向けのドキュメントとなりません。

そこで、cacheが生成するxmlファイルのDescription(///で始まるコメント)をプロパティ名にすることによって、日本語のドキュメントが生成することにしました。

/// プロパティを持ったクラス。だが、まだメッソドは持っていない。
Class Simple.withProperty Extends %RegisteredObject [ ProcedureBlock ]
{

/// 名前
Property name As %String;

}
上のソースから下のjavaソースを生成するということです。
class withProperty{
	public String 名前;
}
残念ながらクラス名の自動化は諦めました。JUDEに取り込んだときに機能する関連が途切れてしまうためです。しかたがないので、JUDEで取り込んでから、本来の使い方ではありませんが、ステレオタイプに入力することにしました。これで、手でクラス図を作成するという作業は大分軽減されると思います。

シェルスクリプト conv2java4u.sh
#!/bin/sh
if [ $# -ne 1 ]
then
	echo "ファイル名がありません。"
	echo "使用法:conv2java4u.sh ファイル名(.xmlは省略してください。)"
	exit
fi
nkf -s $1".xml" | sed -f preconv | awk -f cache2java4u > $1"4u.java" 

sedファイル preconvは変更ありません。

awkファイル cache2java4u
/^<Class name/ { 
print "class "$3"{"
inClass = 1 
}
/^<\/Class/ { 
print "}"
inClass = 0 
}
/^<Property name/ {
propName = $3
inProperty = 1
}
/^<\/Property/ {
printf ("\tpublic %s %s;\n",propType , propName)
inProperty = 0
}
inProperty == 1 && /^<Type/ { propType = $2 }
inProperty == 1 && /^<Description/ {
foundDscrp = 1
}
foundDscrp == 1 && /\/Description/ {
propName = $1
foundDscrp = 0
}

これで、PropertyにDescriptionがあった場合には、Property名がDescriptionで変換されます。
記事メニュー
最近更新されたスレッド
ウィキ募集バナー