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
20 public abstract class AbstractBirthmark implements Birthmark, Serializable{
21 private static final long serialVersionUID = -1300436185045832554L;
24 * collections for elements.
26 protected List<BirthmarkElement> elements = new ArrayList<BirthmarkElement>();
29 public void addElement(BirthmarkElement element){
30 elements.add(element);
34 * returns the number of elements.
37 public int getElementCount(){
38 int numberOfElement = 0;
39 BirthmarkElement[] elements = getElements();
41 numberOfElement = elements.length;
43 return numberOfElement;
51 public BirthmarkElement[] getElements(){
52 return elements.toArray(new BirthmarkElement[elements.size()]);
59 public Iterator<BirthmarkElement> iterator(){
60 return elements.iterator();
64 * returns the type of this birthmark.
67 public abstract String getType();
70 * Is given birthmark the same type.
73 public boolean isSameType(Birthmark b){
74 return getType().equals(b.getType());