package clientdata.visitors;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.ArrayList;
import java.util.List;
import org.apache.mina.core.buffer.IoBuffer;
import clientdata.VisitorInterface;
public class SlotArrangementVisitor implements VisitorInterface {
protected List<List<Integer>> slots_used;
private CharsetDecoder charsetDecoder;
public SlotArrangementVisitor() {
slots_used = new ArrayList<List<Integer>>();
charsetDecoder = Charset.forName("US-ASCII").newDecoder();
}
public List<List<Integer>> getArrangement() {
charsetDecoder = null;
return slots_used;
}
@Override
public void parseData(String name, IoBuffer data, int depth, int size) {
try {
List<Integer> innerList = new ArrayList<Integer>();
while(data.hasRemaining()) {
String c = data.getString(charsetDecoder);
charsetDecoder.reset();
innerList.add(c.hashCode());
}
slots_used.add(innerList);
} catch (CharacterCodingException e) {
e.printStackTrace();
}
}
@Override
public void notifyFolder(String nodeName, int depth) {
//We don't really care about this one.
}
}