OSDN Git Service

pom.xml の macosxbundle maven2 pluginがうまく動かないので,コメントアウトした.
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / birthmarks / AbstractBirthmark.java
1 package jp.sourceforge.stigmata.birthmarks;
2
3 /*
4  * $Id$
5  */
6
7 import java.io.Serializable;
8 import java.util.ArrayList;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import jp.sourceforge.stigmata.Birthmark;
13 import jp.sourceforge.stigmata.BirthmarkElement;
14
15 /**
16  * Abstract class for concrete {@link Birthmark <code>Birthmark</code>}
17  *
18  * @author  Haruaki TAMADA
19  * @version  $Revision$ 
20  */
21 public abstract class AbstractBirthmark implements Birthmark, Serializable{
22         private static final long serialVersionUID = -1300436185045832554L;
23
24         /**
25      * collections for elements.
26      */
27     protected List<BirthmarkElement> elements = new ArrayList<BirthmarkElement>();
28
29     public void addElement(BirthmarkElement element){
30         elements.add(element);
31     }
32
33     /**
34      * returns the number of elements.
35      */
36     public int getElementCount(){
37         int numberOfElement = 0;
38         BirthmarkElement[] elements = getElements();
39         if(elements != null){
40             numberOfElement = elements.length;
41         }
42         return numberOfElement;
43     }
44
45     /**
46      * returns elements.
47      * @return  elements
48      */
49     public BirthmarkElement[] getElements(){
50         return elements.toArray(new BirthmarkElement[elements.size()]);
51     }
52
53     /**
54      * returns elements.
55      */
56     public Iterator<BirthmarkElement> iterator(){
57         return elements.iterator();
58     }
59
60     /**
61      * returns the type of this birthmark.
62      */
63     public abstract String getType();
64
65     /**
66      * Is given birthmark the same type.
67      */
68     public boolean isSameType(Birthmark b){
69         return getType().equals(b.getType());
70     }
71 }