Jasperreprts でサブレポートを使用する時のコレクションのテンプレート設定

Jasperreports でサブレポートを出力するときの jrxml を準備するのに、いつもデータを渡すコレクションのラップを
テンプレートで設定を書き込む方法を忘れて、後からどうやるんだっけと悩んでしまうので、手順メモです。
Jaspersoft Studio 上でテンプレート jrxml の先頭を Outline タブで選択します。
f:id:posturan:20180113202758j:plain
選択したら、プロパティで、import のところを入力します。
f:id:posturan:20180113202909j:plain

すると以下のようにテンプレート jrxml が Javaとしてインポートするクラス、パッケージ指定を設定するものが
出てきます。
f:id:posturan:20180113203045j:plain
[Add Class] をクリックして、コレクション渡しの目的の net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
を選択します。
f:id:posturan:20180113203230j:plain
設定します。
f:id:posturan:20180113203304j:plain
この設定をしておくことで、sabreport の設定は、以下のように、JRBeanCollectionDataSource を 簡潔に new 演算子指定できます。
f:id:posturan:20180113203648j:plain

この import 設定をしなければ、new JRBeanCollectionDataSource( ) の記述はコンパイルエラーになり、
 import 設定をしなければ、 new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource( ) と
書かなければなりません。

Javaのコードは気持ち悪いダサいコードですが、、

public class FareDatasource implements Serializable{
   public Collection<FareItem> farereports;

   public FareDatasource(Collection<FareItem> farereports){
      this.farereports = farereports;
   }
   public Collection<FareItem> getFarereports(){
      return farereports;
   }
}

Collection<FareDatasource> farereports = new ArrayList<>();
FareDatasource datasource = new FareDatasource(list);
farereports.add(datasource);

JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(farereports);

JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, parameters, dataSource);
inputStream.close();

こんな風になります。