1 package jp.sourceforge.stigmata.birthmarks;
7 import java.io.Serializable;
8 import java.util.ArrayList;
9 import java.util.Iterator;
10 import java.util.List;
12 import jp.sourceforge.stigmata.Birthmark;
13 import jp.sourceforge.stigmata.BirthmarkElement;
16 * Abstract class for concrete {@link Birthmark <code>Birthmark</code>}
18 * @author Haruaki TAMADA
21 public abstract class AbstractBirthmark implements Birthmark, Serializable{
22 private static final long serialVersionUID = -1300436185045832554L;
25 * collections for elements.
27 protected List<BirthmarkElement> elements = new ArrayList<BirthmarkElement>();
29 public void addElement(BirthmarkElement element){
30 elements.add(element);
34 * returns the number of elements.
36 public int getElementCount(){
37 int numberOfElement = 0;
38 BirthmarkElement[] elements = getElements();
40 numberOfElement = elements.length;
42 return numberOfElement;
49 public BirthmarkElement[] getElements(){
50 return elements.toArray(new BirthmarkElement[elements.size()]);
56 public Iterator<BirthmarkElement> iterator(){
57 return elements.iterator();
61 * returns the type of this birthmark.
63 public abstract String getType();
66 * Is given birthmark the same type.
68 public boolean isSameType(Birthmark b){
69 return getType().equals(b.getType());