diff options
Diffstat (limited to 'src/main/javassist/bytecode/analysis/Subroutine.java')
-rw-r--r-- | src/main/javassist/bytecode/analysis/Subroutine.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/main/javassist/bytecode/analysis/Subroutine.java b/src/main/javassist/bytecode/analysis/Subroutine.java new file mode 100644 index 00000000..924d37a6 --- /dev/null +++ b/src/main/javassist/bytecode/analysis/Subroutine.java @@ -0,0 +1,66 @@ +/* + * Javassist, a Java-bytecode translator toolkit. + * Copyright (C) 1999-2007 Shigeru Chiba, and others. All Rights Reserved. + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. Alternatively, the contents of this file may be used under + * the terms of the GNU Lesser General Public License Version 2.1 or later. + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + */ +package javassist.bytecode.analysis; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Represents a nested method subroutine (marked by JSR and RET). + * + * @author Jason T. Greene + */ +public class Subroutine { + //private Set callers = new HashSet(); + private List callers = new ArrayList(); + private Set access = new HashSet(); + private int start; + + public Subroutine(int start, int caller) { + this.start = start; + callers.add(Integer.valueOf(caller)); + } + + public void addCaller(int caller) { + callers.add(Integer.valueOf(caller)); + } + + public int start() { + return start; + } + + public void access(int index) { + access.add(Integer.valueOf(index)); + } + + public boolean isAccessed(int index) { + return access.contains(Integer.valueOf(index)); + } + + public Collection accessed() { + return access; + } + + public Collection callers() { + return callers; + } + + public String toString() { + return "start = " + start + " callers = " + callers.toString(); + } +}
\ No newline at end of file |