public static AbstractMsType getItemTypeRecord(GhidraScript script, AbstractPdb pdb,
			int number) {
		TypeProgramInterface ipi = pdb.getItemProgramInterface();
		if (ipi == null) {
			println(script, "PDB does not contain an IPI... aborting search.");
			return null;
		}
		if (number < 0 || number >= ipi.getTypeIndexMaxExclusive()) {
			println(script, "Record number (" + number + ") out of range (" + 0 + " - " +
				ipi.getTypeIndexMaxExclusive() + ")");
			return null;
		}
		if (number < ipi.getTypeIndexMin()) {
			// Created on the fly and is not cached.  Moreover, it can add yet-unseen records to
			// the PDB... so this might not be desired... Also... the record number could represent
			// what is typically a "type" or an "item" and that cannot be distingushed here...
			// there is not conflict between primitive type and primitive items... they come from
			// the same pool, but we might return what is an item record in the request for a type
			// record or vice versa.  TODO: investigate all of these issues this further; might
			// need to eliminate this report or add a lot more code.
			return new PrimitiveMsType(pdb, number);
		}
		RecordNumber recordNumber = RecordNumber.itemRecordNumber(number);
		AbstractMsType typeRecord = pdb.getTypeRecord(recordNumber);
		return typeRecord;
	}
Returns the specified PDB item record.
@param script the script for which we are working
@param pdb the PDB containing the record
@param number the item record number
@return the item record
Ghidra/Features/PDB/developer_scripts/pdbquery/PdbQuery.java