package edu.harvard.wcfia.yoshikoder.document.tokenizer;
import java.util.Iterator;
public class SpanList {
protected int[][] spans;
class Iter implements Iterator{
int index = -1;
Iter(){
if (spans != null) index = 0;
}
public boolean hasNext() { return (index > -1 && index < spans.length); }
public Object next() { return spans[index++]; }
public void remove() {
throw new UnsupportedOperationException("Cannot remove from inside a SpanList iterator");
}
};
public SpanList(int [][] sp){
spans = sp;
}
public SpanList(){
//
}
public void addSpans(int[][] moreSpans){
if (moreSpans == null || moreSpans.length == 0)
return;
else {
int slength = 0;
if (spans != null && spans.length > 0)
slength = spans.length;
int[][] ns = new int[slength + moreSpans.length][2];
for (int ii = 0; ii < slength; ii++)
ns[ii] = spans[ii];
for (int ii = 0; ii < moreSpans.length; ii++)
ns[ii+slength] = moreSpans[ii];
spans = ns;
}
}
public Iterator iterator(){
return new Iter();
}
public String toString(){
StringBuffer sb = new StringBuffer();
for (Iterator iter = iterator(); iter.hasNext();) {
int[] span = (int[]) iter.next();
sb.append("[");
sb.append(span[0]);
sb.append(",");
sb.append(span[1]);
sb.append("]\n");
}
return sb.toString();
}
public static void main(String[] args) {
int[][] sp = new int[][]{{1,2},{3,4}};
SpanList sl = new SpanList(sp);
sp[0][0] = 9;
sl.addSpans(sp);
System.out.println(sl);
}
}