diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java index b6f92ee31e79ae9988c2844287a1ffa5cb606c6e..9bc971fb5fd4b9e5016ce56129e609199a90025e 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java @@ -77,12 +77,12 @@ public abstract class FileStore implements IFileStore } } - protected final File getPath() + public final File getPath() { return fileWithHighwaterMark.getFile(); } - protected final String tryGetHost() + public final String tryGetHost() { return hostOrNull; } @@ -204,26 +204,4 @@ public abstract class FileStore implements IFileStore return builder.toHashCode(); } - - // - // Helper classes - // - - public static abstract class ExtendedFileStore extends FileStore implements IExtendedFileStore - { - protected ExtendedFileStore(final FileWithHighwaterMark path, final String hostOrNull, - final boolean remote, final String kind, final IFileSysOperationsFactory factory) - { - super(path, hostOrNull, remote, kind, factory); - } - - // - // IExtendedFileStore - // - - public abstract boolean createNewFile(StoreItem item); - - public abstract File tryMoveLocal(StoreItem sourceItem, File destinationDir, - String newFilePrefix); - } } \ No newline at end of file diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java index 99312d347a89d3f66cda85b2db44f2eafd5ed917..4adc4c869f19ee86d06440072551310556978a3c 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.datamover.filesystem.intf; +import java.io.File; + import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.highwatermark.HighwaterMarkWatcher; import ch.systemsx.cisd.common.logging.ISimpleLogger; @@ -41,7 +43,23 @@ public interface IFileStore extends ISelfTestable * share and mounted via NFS or CIFS. */ public boolean isRemote(); + + /** + * Returns the path of this file store. + */ + public File getPath(); + + /** + * Tries to return the host. + * + * @return <code>null</code> if {@link #isRemote()} return <code>false</code>. + */ + public String tryGetHost(); + /** + * Returns <code>true</code> if this file store is the parent directory of + * the specified file store. + */ public boolean isParentDirectory(IFileStore child); /** @@ -54,6 +72,9 @@ public interface IFileStore extends ISelfTestable */ public String tryCheckDirectoryFullyAccessible(final long timeOutMillis); + /** + * Returns <code>true</code> if the specified store item exists in this file store. + */ public boolean exists(StoreItem item); /** @@ -86,6 +107,9 @@ public interface IFileStore extends ISelfTestable */ public StoreItem[] tryListSortByLastModified(ISimpleLogger loggerOrNull); + /** + * Deletes the specified item from this store. + */ public Status delete(StoreItem item); /** @@ -102,6 +126,11 @@ public interface IFileStore extends ISelfTestable // which could be used in java.io.File constructor. public String getLocationDescription(StoreItem item); + /** + * Returns this file store as an extended file store if possible. + * + * @return <code>null</code> if this file store can not be returned as an extended file store. + */ public IExtendedFileStore tryAsExtended(); /** diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java index cbfd8d55ebca2005a1d63610d1e6e1cfc7065c69..a4cc889c4991dd09a0f353b94dc67d6da5b613cf 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java @@ -37,14 +37,13 @@ import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory; import ch.systemsx.cisd.datamover.filesystem.intf.IPathMover; import ch.systemsx.cisd.datamover.filesystem.intf.IPathRemover; import ch.systemsx.cisd.datamover.filesystem.intf.IStoreCopier; -import ch.systemsx.cisd.datamover.filesystem.intf.FileStore.ExtendedFileStore; /** * An {@link IFileStore} implementation for local stores. * * @author Tomasz Pylak */ -public class FileStoreLocal extends ExtendedFileStore +public class FileStoreLocal extends FileStore implements IExtendedFileStore { private static final Logger machineLog = LogFactory.getLogger(LogCategory.MACHINE, FileStoreLocal.class); @@ -64,10 +63,6 @@ public class FileStoreLocal extends ExtendedFileStore this.highwaterMarkWatcher = new HighwaterMarkWatcher(file.getHighwaterMark()); } - // - // ExtendedFileStore - // - public final Status delete(final StoreItem item) { return remover.remove(getChildFile(item)); @@ -122,7 +117,6 @@ public class FileStoreLocal extends ExtendedFileStore return this; } - @Override public final boolean createNewFile(final StoreItem item) { try @@ -137,7 +131,6 @@ public class FileStoreLocal extends ExtendedFileStore } } - @Override public final File tryMoveLocal(final StoreItem sourceItem, final File destinationDir, final String newFilePrefix) {