private static ComboType createComposite(DefaultPdbApplicator myApplicator, String name,
			AbstractCompositeMsType compositeMsType, CategoryPath categoryPath,
			SymbolPath fixedSymbolPath) {

		Composite myComposite;
		CppCompositeType myClassType;

		String mangledName = compositeMsType.getMangledName();

		int size = myApplicator.bigIntegerToInt(compositeMsType.getSize());

		if (compositeMsType instanceof AbstractClassMsType) {
			myApplicator.predefineClass(fixedSymbolPath);
			myComposite = new StructureDataType(categoryPath, fixedSymbolPath.getName(), size,
				myApplicator.getDataTypeManager());
			myClassType =
				new CppCompositeType(myApplicator.getRootPdbCategory(), fixedSymbolPath,
					myComposite, mangledName);
			myClassType.setClass();
		}
		else if (compositeMsType instanceof AbstractStructureMsType) {
			myComposite = new StructureDataType(categoryPath, fixedSymbolPath.getName(), size,
				myApplicator.getDataTypeManager());
			myClassType =
				new CppCompositeType(myApplicator.getRootPdbCategory(), fixedSymbolPath,
					myComposite, mangledName);
			myClassType.setStruct();
		}
		else if (compositeMsType instanceof AbstractUnionMsType) {
			myComposite = new UnionDataType(categoryPath, fixedSymbolPath.getName(),
				myApplicator.getDataTypeManager());
			myClassType =
				new CppCompositeType(myApplicator.getRootPdbCategory(), fixedSymbolPath,
					myComposite, mangledName);
			myClassType.setUnion();
		}
		else { // InterfaceMsType
			String message = "Unsupported datatype (" + compositeMsType.getClass().getSimpleName() +
				"): " + fixedSymbolPath.getPath();
			myApplicator.appendLogMsg(message);
			return null;
		}
		myClassType.setName(name);
		myClassType.setSize(size);
		myClassType.setFinal(compositeMsType.getMsProperty().isSealed());

		return new ComboType(myComposite, myClassType);
	}
Constructor for composite type applier, for transforming a composite into a Ghidra DataType
@param applicator {@link DefaultPdbApplicator} for which this class is working
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CompositeTypeApplier.java