こんなクラスを作りたい

Java勉強会第4週「第4日」 - もやしもん 君にも見える菌 細菌 ウィルス 微生物へのコメントですが
※ここにこのクラスのアプリケーション上の意味を書くのはためらわれるので、その部分を隠して記載します。興味のある人は、ryamadaの遺伝学・遺伝統計学メモの5月21日の日記まで(ただし、アクセス制限あり)。

大文字のブロック体は、集合を表す。
G={H1,H2,...,Hn}
Hk={h1k,h2k,...,hmk}
hjkは、次のような情報(フィールド?)を持つ
hjkについて
f0={'a'または'b'}
※f0='a'のときは、f1,f2,f3,f4,f5はすべて値なし
※f0='b'のときは、以下のような条件で値を持つ

  • f1=hx1k-1
  • f2=hx2k-1 または 値なし
  • f3={'f'または'm'}
  • f4={'f'または'm'または空}
  • f5=RjkただしRjk={rjk1,rjk2,...,rjki} または{(要素なし)}