private void appendLoadableInfo(StringBuffer sb, AbstractConstantPoolInfoJava[] constantPool,
			int argIndex) {
		AbstractConstantPoolInfoJava cpoolInfo = constantPool[argIndex];
		if (cpoolInfo instanceof ConstantPoolIntegerInfo) {
			ConstantPoolIntegerInfo intInfo = (ConstantPoolIntegerInfo) cpoolInfo;
			sb.append(intInfo.getValue());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolFloatInfo) {
			ConstantPoolFloatInfo floatInfo = (ConstantPoolFloatInfo) cpoolInfo;
			sb.append(floatInfo.getValue());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolLongInfo) {
			ConstantPoolLongInfo longInfo = (ConstantPoolLongInfo) cpoolInfo;
			sb.append(longInfo.getValue());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolDoubleInfo) {
			ConstantPoolDoubleInfo doubleInfo = (ConstantPoolDoubleInfo) cpoolInfo;
			sb.append(doubleInfo.getValue());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolClassInfo) {
			ConstantPoolClassInfo classInfo = (ConstantPoolClassInfo) cpoolInfo;
			ConstantPoolUtf8Info className =
				(ConstantPoolUtf8Info) constantPool[classInfo.getNameIndex()];
			sb.append(className.getString());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolStringInfo) {
			ConstantPoolStringInfo stringInfo = (ConstantPoolStringInfo) cpoolInfo;
			ConstantPoolUtf8Info utf8 =
				(ConstantPoolUtf8Info) constantPool[stringInfo.getStringIndex()];
			sb.append("\"");
			sb.append(utf8.getString());
			sb.append("\"");
			return;
		}
		if (cpoolInfo instanceof ConstantPoolMethodHandleInfo) {
			appendMethodHandleInfo(sb, constantPool, argIndex);
			return;
		}
		if (cpoolInfo instanceof ConstantPoolMethodTypeInfo) {
			ConstantPoolMethodTypeInfo mtInfo = (ConstantPoolMethodTypeInfo) cpoolInfo;
			ConstantPoolUtf8Info descriptor =
				(ConstantPoolUtf8Info) constantPool[mtInfo.getDescriptorIndex()];
			sb.append(descriptor.getString());
			return;
		}
		if (cpoolInfo instanceof ConstantPoolDynamicInfo) {
			ConstantPoolDynamicInfo dynamicInfo = (ConstantPoolDynamicInfo) cpoolInfo;
			ConstantPoolNameAndTypeInfo ntInfo =
				(ConstantPoolNameAndTypeInfo) constantPool[dynamicInfo.getNameAndTypeIndex()];
			ConstantPoolUtf8Info name = (ConstantPoolUtf8Info) constantPool[ntInfo.getNameIndex()];
			sb.append(name.getString());
			return;
		}
		Msg.showWarn(this, null, "Unsupported Constant Pool Type", cpoolInfo.getClass().getName());
		return;
	}
Create datatypes for all classes mentioned in the constant pool
@param program program file
@param classFile ClassFileJava associated with {@code program} 
@param monitor for canceling analysis
@param messageLog for logging messages
Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/analyzers/JavaAnalyzer.java