/* * Copyright (c) 2016 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.model.bytecode; import java.util.ArrayList; import java.util.List; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_NEWLINE; public class ExceptionTable { private List<ExceptionTableEntry> entries; public ExceptionTable() { entries = new ArrayList<>(); } public void add(ExceptionTableEntry entry) { entries.add(entry); } public ExceptionTableEntry getEntryForBCI(int bci) { ExceptionTableEntry result = null; for (ExceptionTableEntry entry : entries) { if (bci >= entry.getFrom() && bci <= entry.getTo()) { result = entry; break; } } return result; } public int size() { return entries.size(); } public List<ExceptionTableEntry> getEntries() { return entries; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("from \t to \t target \t type\n"); for (ExceptionTableEntry entry : entries) { builder.append(entry.toString()).append(S_NEWLINE); } return builder.toString(); } }