【形態素解析】Igoを改造して品詞IDを取得する

Javaで日本語解析するのにIgoを使っていますが解析結果から各単語がどの品詞IDなのか欲しくなるときがあります。
igoの使い方
辞書登録の方法

Igoをそのまま使ってもsurfaceとfeatureとstartくらいしか情報がとれません。
「私は日本生まれです」これを解析してみます。

Tagger tagger = new Tagger("ipadic");
List<Morpheme> list = tagger.parse("私は日本生まれです");
for (Morpheme m : list) {
   String str = m.surface + "\t"+ m.feature + "\t"+ m.start ;
   System.out.println(str);
}

私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ 0

surface 私
feature 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
start  0

ここに品詞ID:1306が取れればいろいろと効率が良くなったりします。
以下のサイトからソースをダウンロードします。
http://sourceforge.jp/projects/igo/releases/のigo-0.4.5-src.tar.gz

Morpheme.java

package net.reduls.igo;

/**
 * 形態素クラス
 */
public final class Morpheme {
    /**
     * 形態素の表層形
     */
    public final String surface;
    /**
     * 形態素の素性
     */
    public final String feature;
    /**
     * テキスト内での形態素の出現開始位置
     */
    public final int start;

    public final int rightId; //←追加

    public Morpheme(String surface, String feature, int start, int rightId) { //←変更(rightIdを引数に追加)
		this.surface = surface;
		this.feature = feature;
		this.start   = start;
		this.rightId = rightId; //←追加
    }
}


Tagger.java

public List<Morpheme> parse(CharSequence text, List<Morpheme> result) {
	for (ViterbiNode vn = parseImpl(text); vn != null; vn = vn.prev) {
		final String surface = text.subSequence(vn.start,
				vn.start + vn.length).toString();
		final String feature = wdc.wordData(vn.wordId);
		result.add(new Morpheme(surface, feature, vn.start, vn.rightId));  //←変更(vn.rightIdを引数に追加)
	}
	return result;
}

変更はこれだけ。
build.xmlが含まれているのでこいつを実行するだけでjarが出来上がります。

このjarを使ってもう一度、解析してみます。

Tagger tagger = new Tagger("ipadic");
List<Morpheme> list = tagger.parse("私は日本生まれです");
for (Morpheme m : list) {
   String str = m.surface + "\t"+ m.feature + "\t"+ m.start + "\t" + m.rightId;
   System.out.println(str);
}

私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ 0 1306
surface 私
feature 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
start  0
rightId 1306