private void markupMethods(Program program, ClassFileJava classFile, TaskMonitor monitor) {
		AbstractConstantPoolInfoJava[] constantPool = classFile.getConstantPool();

		MethodInfoJava[] methods = classFile.getMethods();
		for (MethodInfoJava methodInfo : methods) {
			if (monitor.isCancelled()) {
				break;
			}

			ConstantPoolUtf8Info methodName =
				(ConstantPoolUtf8Info) constantPool[methodInfo.getNameIndex()];

			ConstantPoolUtf8Info methodDescriptor =
				(ConstantPoolUtf8Info) constantPool[methodInfo.getDescriptorIndex()];

			Address methodAddress = toCpAddr(program, methodInfo.getOffset());

			StringBuffer buffer = new StringBuffer();
			buffer.append("MethodName = " + methodName.getString() + "\n");
			buffer.append("MethodDescriptor = " + methodDescriptor.getString() + "\n");

			CodeAttribute codeAttribute = methodInfo.getCodeAttribute();

			if (codeAttribute != null) { //code attribute is null when method is abstract
				LocalVariableTableAttribute localVariableTableAttribute =
					codeAttribute.getLocalVariableTableAttribute();
				if (localVariableTableAttribute != null) {
					LocalVariableJava[] localVariables =
						localVariableTableAttribute.getLocalVariables();
					long localVariableTableOffset = localVariableTableAttribute.getOffset();
					int offsetInTable = 8;
					for (LocalVariableJava localVariable : localVariables) {
						ConstantPoolUtf8Info descriptor =
							(ConstantPoolUtf8Info) constantPool[localVariable.getDescriptorIndex()];
						ConstantPoolUtf8Info name =
							(ConstantPoolUtf8Info) constantPool[localVariable.getNameIndex()];
						String comment = "local: name = " + name + " type = " + descriptor;
						buffer.append("\t" + comment + "\n");
						Address localVariableAddress =
							toCpAddr(program, localVariableTableOffset + offsetInTable);
						setEolComment(program, localVariableAddress, comment);
						offsetInTable += 10;
					}
				}
			}
			setEolComment(program, methodAddress, buffer.toString());
		}
	}
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