1 package jp.sourceforge.stigmata.result;
3 import java.util.ArrayList;
4 import java.util.Iterator;
7 import jp.sourceforge.stigmata.BirthmarkContext;
8 import jp.sourceforge.stigmata.BirthmarkSet;
9 import jp.sourceforge.stigmata.BirthmarkStoreTarget;
10 import jp.sourceforge.stigmata.ExtractionTarget;
11 import jp.sourceforge.stigmata.utils.MultipleIterator;
15 * @author Haruaki Tamada
17 public class MemoryExtractionResultSet extends AbstractExtractionResultSet{
18 private List<BirthmarkSet> targetX = new ArrayList<BirthmarkSet>();
19 private List<BirthmarkSet> targetY = new ArrayList<BirthmarkSet>();
21 MemoryExtractionResultSet(BirthmarkContext context){
25 MemoryExtractionResultSet(BirthmarkContext context, boolean tableType){
26 super(context, tableType);
30 public BirthmarkStoreTarget getStoreTarget(){
31 return BirthmarkStoreTarget.MEMORY;
35 public void removeAllBirthmarkSets(ExtractionTarget target){
46 throw new IllegalArgumentException("unknown target: " + target);
51 public void removeBirthmarkSet(ExtractionTarget target, BirthmarkSet set){
62 throw new IllegalArgumentException("unknown target: " + target);
67 public void addBirthmarkSet(ExtractionTarget target, BirthmarkSet set){
78 throw new IllegalArgumentException("unknown target: " + target);
83 public Iterator<BirthmarkSet> birthmarkSets(ExtractionTarget target){
84 Iterator<BirthmarkSet> iterator;
88 iterator = targetX.iterator();
91 iterator = targetY.iterator();
95 MultipleIterator<BirthmarkSet> i = new MultipleIterator<BirthmarkSet>();
96 i.add(targetX.iterator());
97 i.add(targetY.iterator());
104 public int getBirthmarkSetSize(ExtractionTarget target){
109 count = targetX.size();
112 count = targetY.size();
116 count = targetX.size() + targetY.size();
123 public BirthmarkSet getBirthmarkSet(ExtractionTarget target, int index){
127 set = targetX.get(index);
130 set = targetY.get(index);
135 if(index < targetX.size()){
136 set = targetX.get(index);
139 set = targetY.get(index - targetX.size());
147 public BirthmarkSet[] getBirthmarkSets(ExtractionTarget target){
152 sets = targetX.toArray(new BirthmarkSet[targetX.size()]);
155 sets = targetY.toArray(new BirthmarkSet[targetX.size()]);
159 sets = new BirthmarkSet[targetX.size() + targetY.size()];
160 System.arraycopy(targetX.toArray(new BirthmarkSet[targetX.size()]), 0, sets, 0, targetX.size());
161 System.arraycopy(targetY.toArray(new BirthmarkSet[targetY.size()]), 0, sets, targetX.size(), targetY.size());