private InnerClassesAttributeInfo convertToInnerClassesAttribute(
			ByteBuffer byteBuffer, int attributeNameIndex, int attributeLength) {
		InnerClassesAttributeInfo icai = new InnerClassesAttributeInfo();
		icai.setAttributeNameIndex(attributeNameIndex);
		logger.debug("\t\t\tAttributeNameIndex : " + icai.getAttributeNameIndex());
		icai.setAttributeLength(attributeLength);
		logger.debug("\t\t\tAttributeLength : " + icai.getAttributeLength());
		icai.setNumberOfClasses(byteBuffer.getShort());
		logger.debug("\t\t\tNumberOfClasses : " + icai.getNumberOfClasses());
		if (icai.getNumberOfClasses() > 0) {
			int i = 0;
			InnerClasses[] classes = new InnerClasses[icai.getNumberOfClasses()];
			while (i < icai.getNumberOfClasses()) {
				InnerClasses clazz = new InnerClasses();
				clazz.setInnerClassInfoIndex(byteBuffer.getShort());
				logger.debug("\t\t\t\tInnerClassInfoIndex[" + i + "] : " + clazz.getInnerClassInfoIndex());
				clazz.setOuterClassInfoIndex(byteBuffer.getShort());
				logger.debug("\t\t\t\tInnerOuterClassInfoIndex[" + i + "] : " + clazz.getOuterClassInfoIndex());
				clazz.setInnerNameIndex(byteBuffer.getShort());
				logger.debug("\t\t\t\tInnerNameIndex[" + i + "] : " + clazz.getInnerNameIndex());
				clazz.setInnerClassAccessFlags(byteBuffer.getShort());
				logger.debug("\t\t\t\tInnerClassAccessFlags[" + i + "] : " + clazz.getInnerClassAccessFlags());
				classes[i] = clazz;
				i++;
			}
			icai.setClasses(classes);
		}

		return icai;
	}