private SourceFile getSourceFile(String sourceFileString) {
		int firstHash = sourceFileString.indexOf("#");
		SourceFileIdType type = SourceFileIdType.valueOf(sourceFileString.substring(0, firstHash));
		int secondHash = sourceFileString.indexOf("#", firstHash + 1);
		byte[] identifier =
			hexFormat.parseHex(sourceFileString.subSequence(firstHash + 1, secondHash));
		String path = sourceFileString.substring(secondHash + 1);
		return new SourceFile(path, type, identifier);
	}
Throws an {@link IllegalArgumentException} if {@code directory} is not
a valid, normalized directory path (with forward slashes).
@param directory path to validate
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/sourcemap/UserDataPathTransformer.java