case IConstantPoolConstant.CONSTANT_Double :
case IConstantPoolConstant.CONSTANT_Integer :
case IConstantPoolConstant.CONSTANT_Utf8 :
break;
default :
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
this.constantValue = constantPoolEntry;
}
this.readOffset += 2;
break;
case 'e' :
int index = u2At(classFileBytes, this.readOffset, offset);
this.enumConstantTypeNameIndex = index;
if (index != 0) {
IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(index);
if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
this.enumConstantTypeName = constantPoolEntry.getUtf8Value();
}
this.readOffset += 2;
index = u2At(classFileBytes, this.readOffset, offset);
this.enumConstantNameIndex = index;
if (index != 0) {
IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(index);
if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
this.enumConstantName = constantPoolEntry.getUtf8Value();
}
this.readOffset += 2;
break;
case 'c' :
final int classFileIndex = u2At(classFileBytes, this.readOffset, offset);
this.classFileInfoIndex = classFileIndex;
if (classFileIndex != 0) {
IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(classFileIndex);
if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Utf8) {
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
this.classInfo = constantPoolEntry;
}
this.readOffset += 2;
break;