OSDN Git Service

modify implicit/explicit modifiers.
[mikutoga/TogaGem.git] / src / main / java / jp / sfjp / mikutoga / vmd / FrameNumbered.java
1 /*
2  * frame-numbered interface
3  *
4  * License : The MIT License
5  * Copyright(c) 2011 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.vmd;
9
10 import java.util.Comparator;
11
12 /**
13  * キーフレーム番号を持つオブジェクトの抽象化インタフェース。
14  */
15 public interface FrameNumbered {
16
17     /** 昇順での比較子。 */
18     public static final Comparator<FrameNumbered> COMPARATOR =
19             new FrameComparator();
20
21     /**
22      * フレーム番号を設定する。
23      * @param num フレーム番号
24      */
25     public abstract void setFrameNumber(int num);
26
27     /**
28      * フレーム番号を返す。
29      * @return フレーム番号
30      */
31     public abstract int getFrameNumber();
32
33
34     /**
35      * フレーム番号による比較子Comparator。
36      * フレーム番号の昇順を定義づける。
37      */
38     @SuppressWarnings("serial")
39     public static class FrameComparator
40             implements Comparator<FrameNumbered> {
41
42         /**
43          * コンストラクタ。
44          */
45         public FrameComparator(){
46             super();
47             return;
48         }
49
50         /**
51          * {@inheritDoc}
52          * @param o1 {@inheritDoc}
53          * @param o2 {@inheritDoc}
54          * @return {@inheritDoc}
55          */
56         @Override
57         @SuppressWarnings("PMD.CompareObjectsWithEquals")
58         public int compare(FrameNumbered o1, FrameNumbered o2){
59             if(o1 == o2) return 0;
60             if(o1 == null) return -1;
61             if(o2 == null) return +1;
62
63             int num1 = o1.getFrameNumber();
64             int num2 = o2.getFrameNumber();
65
66             return num1 - num2;
67         }
68
69     }
70
71 }