<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 . IInnerClassesAttribute ; import org . eclipse . jdt . core . util . IInnerClassesAttributeEntry ; public class InnerClassesAttribute extends ClassFileAttribute implements IInnerClassesAttribute { private static final IInnerClassesAttributeEntry [ ] NO_ENTRIES = new IInnerClassesAttributeEntry [ 0 ] ; private int numberOfClasses ; private IInnerClassesAttributeEntry [ ] entries ; public InnerClassesAttribute ( byte [ ] classFileBytes , IConstantPool constantPool , int offset ) throws ClassFormatException { super ( classFileBytes , constantPool , offset ) ; this . numberOfClasses = u2At ( classFileBytes , 6 , offset ) ; final int length = this . numberOfClasses ; if ( length != 0 ) { int readOffset = 8 ; this . entries = new IInnerClassesAttributeEntry [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { this . entries [ i ] = new InnerClassesAttributeEntry ( classFileBytes , constantPool , offset + readOffset ) ; readOffset += 8 ; } } else { this . entries = NO_ENTRIES ; } } public IInnerClassesAttributeEntry [ ] getInnerClassAttributesEntries ( ) { return this . entries ; } public int getNumberOfClasses ( ) { return this . numberOfClasses ; } } </s>