OSDN Git Service

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