@Override
	protected int getDataTypeLength() {
		Structure struct = (Structure) getDataType();
		int preNameLength = struct.getLength();
		int totalLength = preNameLength;
		// Add the length of the name string too if we can get it.
		Address nameAddress = getAddress().add(preNameLength);
		TerminatedStringDataType terminatedStringDt =
			new TerminatedStringDataType(getProgram().getDataTypeManager());
		DumbMemBufferImpl nameMemBuffer =
			new DumbMemBufferImpl(getMemBuffer().getMemory(), nameAddress);
		int nameLength =
			terminatedStringDt.getLength(nameMemBuffer, StringDataInstance.MAX_STRING_LENGTH);
		if (nameLength <= 0) {
			return 0; // Can't get name, so return 0 for invalid.
		}
		totalLength += nameLength;
		// Add on bytes for alignment at the end.
		int alignment = getAlignment();
		int mod = totalLength % alignment;
		if (mod != 0) {
			int numAlignBytes = alignment - mod;
			totalLength += numAlignBytes;
		}
		return totalLength;
	}
Gets the TypeDescriptor structure for this model's program.
@return the TypeDescriptor structure.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/TypeDescriptorModel.java