public ProgramLocation getProgramLocation(FieldLocation location, Field field) {
		if (field instanceof ListingField lf) {
			FieldFactory factory = lf.getFieldFactory();

			ProgramLocation pLoc =
				factory.getProgramLocation(location.getRow(), location.getCol(), lf);

			if (pLoc == null) {
				Address addr = addressToIndexMap.getAddress(location.getIndex());
				Program p = model.getProgram();
				if (addr != null && p != null) {
					pLoc = new ProgramLocation(p, addr);
				}
			}
			return pLoc;
		}
		return null;
	}
Attempts to find a field location for the given address from the given program location
@param address the address to try and get a layout for.
@param location the location contains other information needed to generate a field
location
@param useDefaultLocation if true, will return a generic location for this address
if no field has a specific match.  Otherwise, will return null if no fields have
an exact match.
@return a field location for the given address.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingModelAdapter.java