/* --- Copyright (c) Chris Rathman 1999. All rights reserved. ----------------- > File: jasper/Interface_Collection.java > Purpose: Interfaces implemented by the class > Author: Chris Rathman, 12 June 1999 > Version: 1.00 */ package jasper; import java.io.*; /*======================================================================= = Class: Interface_Collection = = = = Desc: interfaces implemented by the class = =======================================================================*/ class Interface_Collection { private Pool_Collection pool; // constant pool table private int count; // number of interfaces private int[] interfaces; // interfaces implemented (index into constant pool table) /*----------------------------------------------------------------------- - Method: Class Constructor - - - - Desc: read in the interfaces definitions from input stream - -----------------------------------------------------------------------*/ Interface_Collection(DataInputStream ios, Pool_Collection pool) throws IOException { // save off the pool object for later reference this.pool = pool; // get number of interfaces implemented; count = ios.readShort(); // grab the interface indexes from the input stream interfaces = new int[count]; for (int i = 0; i < count; i++) interfaces[i] = ios.readShort(); } /*----------------------------------------------------------------------- - Method: jasmin - - - - Desc: output the .implements directives to jasmin file - -----------------------------------------------------------------------*/ void jasmin(PrintStream out) throws IOException { for (int i = 0; i < count; i++) { out.println(ClassFile.pad(".implements", ClassFile.SPACER) + pool.toString(interfaces[i])); } } /*----------------------------------------------------------------------- - Method: browseInterfaces - - - - Desc: return array of strings representing the interfaces - -----------------------------------------------------------------------*/ String[] browseInterfaces() { String[] retVal = new String[count]; for (int i = 0; i < count; i++) retVal[i] = pool.browseString(interfaces[i]); return retVal; } }