/******************************************************************************************************************* * * Relativizes a path against the finder path, that is it removes the parent path. If the path can't be * relativized, that is it doesn't start with the finder path, returns null. * ******************************************************************************************************************/ @CheckForNull private Path relative (final @Nonnull Path path) { return !mediaFolder.getParent().isPresent() ? path : path.startsWith(mediaFolder.getPath()) ? path.subpath(mediaFolder.getPath().getNameCount(), path.getNameCount()) : null; }
@Override @Nonnull public DIDLObject toObject() { log.debug("toObject() - {}", datum); final Container container = setCommonFields(new Container()); container.setClazz(StorageFolder.CLASS); container.setId(pathToDidlId(datum.getPath())); container.setParentID(datum.getParent().map(parent -> pathToDidlId(parent.getPath())).orElse(ID_NONE)); if (!container.getId().equals("/music")) // FIXME workaround for DefaultMediaFileSystem { container.setTitle(container.getTitle().replaceAll("^Music$", "By file")); // FIXME: this corrupts some title } return container; } }