KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > proguard > classfile > attribute > ExceptionInfo


1 /*
2  * ProGuard -- shrinking, optimization, obfuscation, and preverification
3  * of Java bytecode.
4  *
5  * Copyright (c) 2002-2007 Eric Lafortune (eric@graphics.cornell.edu)
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21 package proguard.classfile.attribute;
22
23 import proguard.classfile.*;
24
25 import java.io.*;
26
27 /**
28  * Representation of an Exception table entry.
29  *
30  * @author Eric Lafortune
31  */

32 public class ExceptionInfo implements VisitorAccepter
33 {
34     public int u2startPC;
35     public int u2endPC;
36     public int u2handlerPC;
37     public int u2catchType;
38
39     /**
40      * An extra field in which visitors can store information.
41      */

42     public Object JavaDoc visitorInfo;
43
44
45     /**
46      * Creates an uninitialized ExceptionInfo.
47      */

48     public ExceptionInfo()
49     {
50         this(0, 0, 0, 0);
51     }
52
53
54     /**
55      * Creates an ExceptionInfo with the given properties.
56      */

57     public ExceptionInfo(int u2startPC,
58                          int u2endPC,
59                          int u2handlerPC,
60                          int u2catchType)
61     {
62         this.u2startPC = u2startPC;
63         this.u2endPC = u2endPC;
64         this.u2handlerPC = u2handlerPC;
65         this.u2catchType = u2catchType;
66     }
67
68
69     /**
70      * Returns whether the exception's try block contains the instruction at the
71      * given offset.
72      */

73     public boolean isApplicable(int instructionOffset)
74     {
75         return instructionOffset >= u2startPC &&
76                instructionOffset < u2endPC;
77     }
78     
79
80     /**
81      * Returns whether the exception's try block overlaps with the specified
82      * block of instructions.
83      */

84     public boolean isApplicable(int startOffset, int endOffset)
85     {
86         return u2startPC < endOffset &&
87                u2endPC > startOffset;
88     }
89
90
91     // Implementations for VisitorAccepter.
92

93     public Object JavaDoc getVisitorInfo()
94     {
95         return visitorInfo;
96     }
97
98     public void setVisitorInfo(Object JavaDoc visitorInfo)
99     {
100         this.visitorInfo = visitorInfo;
101     }
102 }
103
Popular Tags