You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Subroutine.java 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Javassist, a Java-bytecode translator toolkit.
  3. * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. Alternatively, the contents of this file may be used under
  8. * the terms of the GNU Lesser General Public License Version 2.1 or later,
  9. * or the Apache License Version 2.0.
  10. *
  11. * Software distributed under the License is distributed on an "AS IS" basis,
  12. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13. * for the specific language governing rights and limitations under the
  14. * License.
  15. */
  16. package javassist.bytecode.analysis;
  17. import java.util.ArrayList;
  18. import java.util.Collection;
  19. import java.util.HashSet;
  20. import java.util.List;
  21. import java.util.Set;
  22. /**
  23. * Represents a nested method subroutine (marked by JSR and RET).
  24. *
  25. * @author Jason T. Greene
  26. */
  27. public class Subroutine {
  28. //private Set callers = new HashSet();
  29. private List callers = new ArrayList();
  30. private Set access = new HashSet();
  31. private int start;
  32. public Subroutine(int start, int caller) {
  33. this.start = start;
  34. callers.add(new Integer(caller));
  35. }
  36. public void addCaller(int caller) {
  37. callers.add(new Integer(caller));
  38. }
  39. public int start() {
  40. return start;
  41. }
  42. public void access(int index) {
  43. access.add(new Integer(index));
  44. }
  45. public boolean isAccessed(int index) {
  46. return access.contains(new Integer(index));
  47. }
  48. public Collection accessed() {
  49. return access;
  50. }
  51. public Collection callers() {
  52. return callers;
  53. }
  54. public String toString() {
  55. return "start = " + start + " callers = " + callers.toString();
  56. }
  57. }