Rather than exposing Vector, providing abstraction to encapsulate manipulation with TrapData via 'iterator'
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.apidesign.javap;
9 * @author Jaroslav Tulach <jtulach@netbeans.org>
11 public final class TrapDataIterator {
12 private final java.util.Map<Short, TrapData> exStart = new java.util.HashMap<Short, TrapData>();
13 private final java.util.Map<Short, TrapData> exStop = new java.util.HashMap<Short, TrapData>();
14 private final java.util.Deque<TrapData> current = new java.util.ArrayDeque<TrapData>();
16 TrapDataIterator(Vector exceptionTable) {
17 for (int i=0 ; i < exceptionTable.size(); i++) {
18 final TrapData td = (TrapData)exceptionTable.elementAt(i);
19 exStart.put(td.start_pc, td);
20 exStop.put(td.end_pc, td);
24 public void advanceTo(int i) {
25 TrapData e = exStart.get((short) i);
29 e = exStop.get((short) i);
35 public boolean useTry() {
36 return !current.isEmpty();
39 public TrapData[] current() {
40 return current.toArray(new TrapData[0]);