public static Path[] getPathsFromPreferences(String enablePathKey, Path[] defaultEnablePaths,
			String disabledPathKey) {
		String enablePath = Preferences.getProperty(enablePathKey, null, true);
		if (enablePath != null && enablePath.length() == 0) {
			enablePath = null;
		}
		String disabledPath = Preferences.getProperty(disabledPathKey, null);
		if (disabledPath != null && disabledPath.length() == 0) {
			disabledPath = null;
		}
		String[] enabledPaths = null;
		String[] disabledPaths = null;
		if (defaultEnablePaths != null && enablePath == null && disabledPath == null) {
			return defaultEnablePaths;
		}

		enabledPaths = enablePath != null ? enablePath.split(File.pathSeparator) : new String[0];

		disabledPaths =
			disabledPath != null ? disabledPath.split(File.pathSeparator) : new String[0];

		ArrayList<Path> list = new ArrayList<>();
		int disabledIndex = 0;
		for (String p : enabledPaths) {
			if (p.length() == 0) {
				// insert next disabled path at empty placeholder
				if (disabledIndex < disabledPaths.length) {
					list.add(new Path(disabledPaths[disabledIndex++], false));
				}
			}
			else {
				list.add(new Path(p, true));
			}
		}
		// add remaining disabled paths
		for (int i = disabledIndex; i < disabledPaths.length; i++) {
			list.add(new Path(disabledPaths[i], false));
		}
		Path[] paths = new Path[list.size()];
		return list.toArray(paths);
	}
Restore paths from user Preferences using the specified keys.
If preferences have never been saved, the specified {@code defaultEnablePaths}
will be returned.  Note: the encoded path list must have been stored
using the same keys using the {@link #savePathsToPreferences(String, String, Path[])}
or {@link #saveToPreferences(String, String)} methods.
@param enablePathKey preference key for storing enabled paths
@param defaultEnablePaths default paths
@param disabledPathKey preference key for storing disabled paths
@return ordered paths from Preferences
Ghidra/Framework/Docking/src/main/java/docking/widgets/pathmanager/PathManager.java