]> source.dussan.org Git - archiva.git/commitdiff
Adding leaf method
authorMartin Stockhammer <martin_s@apache.org>
Thu, 27 Feb 2020 21:33:23 +0000 (22:33 +0100)
committerMartin Stockhammer <martin_s@apache.org>
Thu, 27 Feb 2020 21:33:23 +0000 (22:33 +0100)
archiva-modules/archiva-base/archiva-storage-api/src/main/java/org/apache/archiva/repository/storage/StorageAsset.java
archiva-modules/archiva-base/archiva-storage-fs/src/main/java/org/apache/archiva/repository/storage/FilesystemAsset.java

index 5e6b529871d6eced34eca422af60b5c7ceab47ae..8209fcdaba72e2949aa55cebef49610488ced54d 100644 (file)
@@ -36,6 +36,7 @@ import java.util.List;
  *
  * The implementation may read the data directly from the filesystem or underlying storage implementation.
  *
+ * @since 3.0
  * @author Martin Stockhammer <martin_s@apache.org>
  */
 public interface StorageAsset
@@ -56,23 +57,29 @@ public interface StorageAsset
 
     /**
      * Returns the name of the asset. It may be just the filename.
-     * @return
+     * @return the asset name
      */
     String getName();
 
     /**
      * Returns the time of the last modification.
      *
-     * @return
+     * @return the time instant of the last modification
      */
     Instant getModificationTime();
 
     /**
      * Returns true, if this asset is a container type and contains further child assets.
-     * @return
+     * @return <code>true</code>, if this is a container type, otherwise <code>false</code>
      */
     boolean isContainer();
 
+    /**
+     * Returns true, if this asset is a leaf node and cannot contain further childs
+     * @return <code>true</code>, if this is a leaf type, otherwise <code>false</code>
+     */
+    boolean isLeaf();
+
     /**
      * List the child assets.
      *
index 271dc1e3a5b3e8956f2dde3c5e61a8f17ff8706d..2f501d6e9dd63ccf4883fcaf09cfa50a6d5ba15f 100644 (file)
@@ -257,6 +257,16 @@ public class FilesystemAsset implements StorageAsset, Comparable {
         }
     }
 
+    @Override
+    public boolean isLeaf( )
+    {
+        if (Files.exists( assetPath )) {
+            return Files.isRegularFile( assetPath );
+        } else {
+            return !directoryHint;
+        }
+    }
+
     /**
      * Returns the list of directory entries, if this asset represents a directory.
      * Otherwise a empty list will be returned.