protected void setRepository(String repo, String newpath) {
		repository = null;
		if (repo != null) {
			URL ghidraURL;
			try {
				ghidraURL = new URL(repo);
				if (!GhidraURL.isGhidraURL(repo) || (!GhidraURL.isServerRepositoryURL(ghidraURL) &&
					!GhidraURL.isLocalProjectURL(ghidraURL))) {
					throw new IllegalArgumentException("Unsupported repository URL: " + repo);
				}
			}
			catch (MalformedURLException e) {
				throw new IllegalArgumentException("Unsupported repository URL: " + repo, e);
			}
			URL projectURL = GhidraURL.getProjectURL(ghidraURL);
			repository = projectURL.toExternalForm();
		}

		path = newpath;
		if ((path != null) && (path.charAt(path.length() - 1) == '/')) { // No slash at end of path string
			if (path.length() == 1) {
				path = null;
			}
			else {
				path = path.substring(0, path.length() - 1);
			}
		}
		if ((path != null) && (path.charAt(0) == '/')) { // No slash at beginning of path
			if (path.length() == 1) {
				path = null;
			}
			else {
				path = path.substring(1);
			}
		}
	}
Set the repository and path Strings for an executable, replacing
any previous setting. Truncate any trailing slash.
@param repo is (URL) string indicating which repository contains this executable
@param newpath is the path, relative to the repository, to the executable
@throws IllegalArgumentException if invalid repo URL specified
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/ExecutableRecord.java