X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fjp%2Fsourceforge%2Fmikutoga%2Fvmd%2FFrameNumbered.java;fp=src%2Fmain%2Fjava%2Fjp%2Fsourceforge%2Fmikutoga%2Fvmd%2FFrameNumbered.java;h=7e7fabcf2b252908c8e7d3bce7b8bed2639064e6;hb=f8c9ffa7aac6092f4b859ce54f04ff986e444095;hp=0000000000000000000000000000000000000000;hpb=c43b1ed58fa8ad3765c023c15031a9e579e14164;p=mikutoga%2FTogaGem.git diff --git a/src/main/java/jp/sourceforge/mikutoga/vmd/FrameNumbered.java b/src/main/java/jp/sourceforge/mikutoga/vmd/FrameNumbered.java new file mode 100644 index 0000000..7e7fabc --- /dev/null +++ b/src/main/java/jp/sourceforge/mikutoga/vmd/FrameNumbered.java @@ -0,0 +1,70 @@ +/* + * frame-numbered interface + * + * License : The MIT License + * Copyright(c) 2011 MikuToga Partners + */ + +package jp.sourceforge.mikutoga.vmd; + +import java.util.Comparator; + +/** + * キーフレーム番号を持つオブジェクトの抽象化インタフェース。 + */ +public interface FrameNumbered { + + /** 昇順での比較子。 */ + Comparator COMPARATOR = new FrameComparator(); + + /** + * フレーム番号を設定する。 + * @param num フレーム番号 + */ + void setFrameNumber(int num); + + /** + * フレーム番号を返す。 + * @return フレーム番号 + */ + int getFrameNumber(); + + + /** + * フレーム番号による比較子Comparator。 + * フレーム番号の昇順を定義づける。 + */ + @SuppressWarnings("serial") + class FrameComparator + implements Comparator { + + /** + * コンストラクタ。 + */ + public FrameComparator(){ + super(); + return; + } + + /** + * {@inheritDoc} + * @param o1 {@inheritDoc} + * @param o2 {@inheritDoc} + * @return {@inheritDoc} + */ + @Override + @SuppressWarnings("PMD.CompareObjectsWithEquals") + public int compare(FrameNumbered o1, FrameNumbered o2){ + if(o1 == o2) return 0; + if(o1 == null) return -1; + if(o2 == null) return +1; + + int num1 = o1.getFrameNumber(); + int num2 = o2.getFrameNumber(); + + return num1 - num2; + } + + } + +}