1 package jp.sourceforge.stigmata.birthmarks;
3 import java.io.Serializable;
4 import java.util.ArrayList;
5 import java.util.Iterator;
8 import jp.sourceforge.stigmata.Birthmark;
9 import jp.sourceforge.stigmata.BirthmarkElement;
12 * Abstract class for concrete {@link Birthmark <code>Birthmark</code>}
14 * @author Haruaki TAMADA
16 public abstract class AbstractBirthmark implements Birthmark, Serializable{
17 private static final long serialVersionUID = -1300436185045832554L;
20 * collections for elements.
22 protected List<BirthmarkElement> elements = new ArrayList<BirthmarkElement>();
25 public void addElement(BirthmarkElement element){
26 elements.add(element);
30 * returns the number of elements.
33 public int getElementCount(){
34 int numberOfElement = 0;
35 BirthmarkElement[] elements = getElements();
37 numberOfElement = elements.length;
39 return numberOfElement;
47 public BirthmarkElement[] getElements(){
48 return elements.toArray(new BirthmarkElement[elements.size()]);
55 public Iterator<BirthmarkElement> iterator(){
56 return elements.iterator();
60 * returns the type of this birthmark.
63 public abstract String getType();
66 * Is given birthmark the same type.
69 public boolean isSameType(Birthmark b){
70 return getType().equals(b.getType());