public List<String> getBaseClassTypes() throws InvalidDataTypeException {

		List<String> names = new ArrayList<>();
		Program program = getProgram();
		long rtti1Count = getCount();
		for (int rtti1Index = 0; rtti1Index < rtti1Count; rtti1Index++) {
			Address rtti1Address = getRtti1Address(rtti1Index);

			Rtti1Model rtti1Model = new Rtti1Model(program, rtti1Address, validationOptions);
			if (validationOptions != null) {
				try {
					rtti1Model.validate();
				}
				catch (Exception e) {
					invalid("Not a valid " + Rtti1Model.DATA_TYPE_NAME + " @" + rtti1Address);
				}
			}
			TypeDescriptorModel rtti0ModelForRtti1 = rtti1Model.getRtti0Model();
			String structName = rtti0ModelForRtti1.getDescriptorName();
			if (structName == null) {
				return new ArrayList<>(); // If a name can't be determined return an empty list.
			}
			names.add(structName);
		}
		return names;
	}
Get the Base Class Types (type descriptor names) for the RTTI for this model.
@return the class names or an empty list if the name(s) can't be determined.
@throws InvalidDataTypeException if an invalid model is encountered when trying to get
the base class types. The exception has a message indicating
why it does not appear to be a valid location for the data type.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/rtti/Rtti2Model.java