<s> package org . eclipse . jdt . internal . core . util ; import org . eclipse . jdt . core . util . ClassFormatException ; import org . eclipse . jdt . core . util . IConstantPool ; import org . eclipse . jdt . core . util . IConstantPoolConstant ; import org . eclipse . jdt . core . util . IConstantPoolEntry ; import org . eclipse . jdt . core . util . IInnerClassesAttributeEntry ; public class InnerClassesAttributeEntry extends ClassFileStruct implements IInnerClassesAttributeEntry { private int innerClassNameIndex ; private int outerClassNameIndex ; private int innerNameIndex ; private char [ ] innerClassName ; private char [ ] outerClassName ; private char [ ] innerName ; private int accessFlags ; public InnerClassesAttributeEntry ( byte classFileBytes [ ] , IConstantPool constantPool , int offset ) throws ClassFormatException { this . innerClassNameIndex = u2At ( classFileBytes , 0 , offset ) ; this . outerClassNameIndex = u2At ( classFileBytes , 2 , offset ) ; this . innerNameIndex = u2At ( classFileBytes , 4 , offset ) ; this . accessFlags = u2At ( classFileBytes , 6 , offset ) ; IConstantPoolEntry constantPoolEntry ; if ( this . innerClassNameIndex != 0 ) { constantPoolEntry = constantPool . decodeEntry ( this . innerClassNameIndex ) ; if ( constantPoolEntry . getKind ( ) != IConstantPoolConstant . CONSTANT_Class ) { throw new ClassFormatException ( ClassFormatException . INVALID_CONSTANT_POOL_ENTRY ) ; } this . innerClassName = constantPoolEntry . getClassInfoName ( ) ; } if ( this . outerClassNameIndex != 0 ) { constantPoolEntry = constantPool . decodeEntry ( this . outerClassNameIndex ) ; if ( constantPoolEntry . getKind ( ) != IConstantPoolConstant . CONSTANT_Class ) { throw new ClassFormatException ( ClassFormatException . INVALID_CONSTANT_POOL_ENTRY ) ; } this . outerClassName = constantPoolEntry . getClassInfoName ( ) ; } if ( this . innerNameIndex != 0 ) { constantPoolEntry = constantPool . decodeEntry ( this . innerNameIndex ) ; if ( constantPoolEntry . getKind ( ) != IConstantPoolConstant . CONSTANT_Utf8 ) { throw new ClassFormatException ( ClassFormatException . INVALID_CONSTANT_POOL_ENTRY ) ; } this . innerName = constantPoolEntry . getUtf8Value ( ) ; } } public int getAccessFlags ( ) { return this . accessFlags ; } public char [ ] getInnerClassName ( ) { return this . innerClassName ; } public int getInnerClassNameIndex ( ) { return this . innerClassNameIndex ; } public char [ ] getInnerName ( ) { return this . innerName ; } public int getInnerNameIndex ( ) { return this . innerNameIndex ; } public char [ ] getOuterClassName ( ) { return this . outerClassName ; } public int getOuterClassNameIndex ( ) { return this . outerClassNameIndex ; } } </s>