public synchronized GFile storeSymlink(String path, long fileIndex, String symlinkPath,
			long length, METADATATYPE metadata) {
		String[] nameparts = splitPath(path);
		if (nameparts.length == 0) {
			Msg.warn(this,
				"Unable to create invalid symlink file [%s] -> [%s]".formatted(path, symlinkPath));
			return rootDir.file;
		}
		length = length != 0 ? length : symlinkPath.length();
		GFile parent = lookupParent(nameparts, null);

		String lastpart = nameparts[nameparts.length - 1];
		FileData<METADATATYPE> fileData =
			doStoreFile(lastpart, parent, fileIndex, false, length, symlinkPath, metadata);
		return fileData.file;

	}
Creates and stores a file entry that is a symlink into in-memory indexes.
<p>
The string path will be normalized to forward slashes before being split into
directory components.
<p>
Filenames that are not unique in their directory will have a "[nnn]"
suffix added to the resultant GFile name, where nnn is the file's
order of occurrence in the container file.

@param path string path and filename of the file being added to the index.  Back
slashes are normalized to forward slashes
@param fileIndex the filesystem specific unique index for this file, or -1
if not available
@param symlinkPath destination of the symlink
@param length number of bytes in the file or -1 if not known or directory
@param metadata opaque blob that will be stored and associated with the new
GFile instance
@return new GFile instance
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FileSystemIndexHelper.java