<s> package org . eclipse . jdt . internal . core . util ; import org . eclipse . jdt . core . util . ClassFormatException ; import org . eclipse . jdt . core . util . IClassFileAttribute ; import org . eclipse . jdt . core . util . IConstantPool ; import org . eclipse . jdt . core . util . IConstantPoolConstant ; import org . eclipse . jdt . core . util . IConstantPoolEntry ; public class ClassFileAttribute extends ClassFileStruct implements IClassFileAttribute { public static final IClassFileAttribute [ ] NO_ATTRIBUTES = new IClassFileAttribute [ 0 ] ; private long attributeLength ; private int attributeNameIndex ; private char [ ] attributeName ; public ClassFileAttribute ( byte [ ] classFileBytes , IConstantPool constantPool , int offset ) throws ClassFormatException { this . attributeNameIndex = u2At ( classFileBytes , 0 , offset ) ; this . attributeLength = u4At ( classFileBytes , 2 , offset ) ; IConstantPoolEntry constantPoolEntry = constantPool . decodeEntry ( this . attributeNameIndex ) ; if ( constantPoolEntry . getKind ( ) != IConstantPoolConstant . CONSTANT_Utf8 ) { throw new ClassFormatException ( ClassFormatException . INVALID_CONSTANT_POOL_ENTRY ) ; } this . attributeName = constantPoolEntry . getUtf8Value ( ) ; } public int getAttributeNameIndex ( ) { return this . attributeNameIndex ; } public char [ ] getAttributeName ( ) { return this . attributeName ; } public long getAttributeLength ( ) { return this . attributeLength ; } } </s>