private void copyInteriorDataText(List<String> strings, Listing listing,
			InteriorSelection interior, boolean followPointers) {

		Data outer = listing.getDataContaining(interior.getStartAddress());
		ProgramLocation from = interior.getFrom();
		ProgramLocation to = interior.getTo();
		Data first = outer.getComponent(from.getComponentPath());
		Data last = outer.getComponent(to.getComponentPath());
		if (first == null || last == null) {
			return;
		}

		// We have a selection inside a data that has child elements. This may be several levels
		// deep. The first and last data retrieved above are children in the same parent. So
		// get the index of the first and last data in that parent and add string data for each
		// selected element in that parent.
		Data parent = first.getParent();
		int startIndex = first.getComponentIndex();
		int endIndex = last.getComponentIndex();
		for (int i = startIndex; i <= endIndex; i++) {
			Data child = parent.getComponent(i);
			String string = getString(child, followPointers);
			if (string != null) {
				strings.add(string);
			}
		}
	}
Gets the Shared GhidraURL to the currentLocation within the currentProgram.
@return string transferable GhidraURL type.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/clipboard/CodeBrowserClipboardProvider.java