@Override
	public String toString() {
		StringBuilder buf = new StringBuilder();
		buf.append(getClass().getSimpleName());
		buf.append('@');
		buf.append(addr.toString());
		if (!addr.equals(byteAddr)) {
			buf.append(", byteAddr=");
			buf.append(byteAddr.toString());
		}
		if (refAddr != null) {
			buf.append(", refAddr=");
			buf.append(refAddr.toString());
		}
		if (componentPath != null && componentPath.length != 0) {
			buf.append(", componentPath=");
			for (int i = 0; i < componentPath.length; i++) {
				if (i != 0) {
					buf.append(':');
				}
				buf.append(Integer.toString(componentPath[i]));
			}
		}
		buf.append(", row=");
		buf.append(row);
		buf.append(", col=");
		buf.append(col);
		buf.append(", charOffset=");
		buf.append(charOffset);
		return buf.toString();
	}
Get the program location for the given program and save state object.

@param program the program for the location
@param saveState the state to restore
@return the restored program location
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/ProgramLocation.java