package org.nanovm.converter;
//
// NanoVMTool, Converter and Upload Tool for the NanoVM
// Copyright (C) 2005 by Till Harbaum <Till@Harbaum.org>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// Parts of this tool are based on public domain code written by Kimberley
// Burchett: http://www.kimbly.com/code/classfile/
//
/**
* A class for storing information about inner classes.
* This class represents one row in the InnerClasses table.
*
* @see sli.kim.classfile.ClassInfo#setInnerClasses()
*/
public class InnerClassInfo {
public String innerClass;
public String outerClass;
public String simpleName;
public short flags;
/**
* Construct an inner class record.
*
* @param innerClass the full name of the inner class (eg "mypackage.Foo$Bar")
* @param outerClass the full name of the outer class. This is null for non-member
* classes (that is, classes that are declared static)
* @param simpleName the simple name of the class (eg "String"). This is null for
* anonymous classes.
* @param the access flags of the class. When an inner class is compiled to a .class
* file, the compiler changes its access flags to ensure compatibility with pre-1.1
* virtual machines. Specifically, protected becomes public, and private becomes
* package.
*/
public InnerClassInfo(String innerClass, String outerClass, String simpleName, short flags) {
this.innerClass = innerClass;
this.outerClass = outerClass;
this.simpleName = simpleName;
this.flags = flags;
}
}