List のDiff を行う準備

Google Collection Library で見つけたMapの比較にはとても重宝している

http://blog.zaq.ne.jp/oboe2uran/article/352/

そこで、List の Diff 結果を求めるのはどうであろうと考えた。

準備として Google Collection Library で見つけた
com.google.common.collect.MapDifference.ValueDifference
を参考に、Diff 結果を1つ1つ表現するものを用意する。
単純で何も目新しいものもないものだが、このコンセプトが重要と
感じることが大切である

今日は準備したクラスの紹介である

/**
 * List の Diff 結果を表現する為のクラス.
 * Diff実行をするクラス Listy が実行結果としてインスタンスを生成し
 * 結果としてCollectionにして返す
 */
public class ListDifference<E> implements Comparable<ListDifference<E>>{
   private Long index;
   private E left;
   private E right;
   /**
    * コンストラクタ
    * @param index List上の index
    * @param left Diff結果indexが指す左側リストの要素
    * @param right Diff結果indexが指す右側リストの要素
    */

   public ListDifference(long index,E left,E right){
      this.index = index;
      this.left = left;
      this.right = right;
   }
   public long getIndex(){
      return this.index;
   }
   public E leftValue(){
      return this.left;
   }
   public E rightValue(){
      return this.right;
   }
   @Override
   public int compareTo(ListDifference<E> o){
      return this.index.compareTo(o.index);
   }
}