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>();
30 public void addElement(BirthmarkElement element){
31 elements.add(element);
35 * returns the number of elements.
38 public int getElementCount(){
39 int numberOfElement = 0;
40 BirthmarkElement[] elements = getElements();
42 numberOfElement = elements.length;
44 return numberOfElement;
52 public BirthmarkElement[] getElements(){
53 return elements.toArray(new BirthmarkElement[elements.size()]);
60 public Iterator<BirthmarkElement> iterator(){
61 return elements.iterator();
65 * returns the type of this birthmark.
68 public abstract String getType();
71 * Is given birthmark the same type.
74 public boolean isSameType(Birthmark b){
75 return getType().equals(b.getType());