@Override
	boolean apply(AbstractMsType type) throws PdbException, CancelledException {

		AbstractArrayMsType arrayType = (AbstractArrayMsType) type;
		// Doing pre-check on type first using the getDataTypeOrSchedule method.  The logic is
		//  simpler here for Composites or Functions because we only have one dependency type,
		//  so we are not doing a separate call to a pre-check method as there is in those appliers.
		//  If type is not available, return false.
		RecordNumber underlyingRecordNumber = arrayType.getElementTypeRecordNumber();
		DataType underlyingDataType = applicator.getDataTypeOrSchedule(underlyingRecordNumber);
		if (underlyingDataType == null) {
			return false;
		}

		int numElements = calculateNumElements(arrayType, underlyingDataType);
		if (numElements == -1) {
			// There was a math calculation problem (probably have the wrong underlying type,
			// which we still need to figure out; i.e., better composite mapper) so we
			// will change the underlying type for now...
			underlyingDataType = Undefined1DataType.dataType;
			numElements = getSizeInt(arrayType); // array size (but divided by 1) is array size
		}
		DataType dataType = new ArrayDataType(underlyingDataType, numElements, -1,
			applicator.getDataTypeManager());
		applicator.putDataType(arrayType, dataType);
		return true;
	}
Constructor for the applicator that applies a "array" type, transforming it 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/ArrayTypeApplier.java