diff --git a/uberfire-api/src/main/java/org/uberfire/backend/vfs/impl/ObservablePathImpl.java b/uberfire-api/src/main/java/org/uberfire/backend/vfs/impl/ObservablePathImpl.java index 6b61ce68a8..451a9cdd28 100644 --- a/uberfire-api/src/main/java/org/uberfire/backend/vfs/impl/ObservablePathImpl.java +++ b/uberfire-api/src/main/java/org/uberfire/backend/vfs/impl/ObservablePathImpl.java @@ -62,6 +62,30 @@ public FileSystem getFileSystem() { public String getFileName() { return path.getFileName(); } + @Override + public String getFileNameWithoutExtension() { + return removeExtension(path.getFileName()); + } + + public static String removeExtension(final String filename) { + if (filename == null) { + return null; + } + final int index = indexOfExtension(filename); + if (index == -1) { + return filename; + } else { + return filename.substring(0, index); + } + } + + public static int indexOfExtension(final String filename) { + if (filename == null) { + return -1; + } + final int extensionPos = filename.lastIndexOf("."); + return extensionPos; + } @Override public String toURI() { diff --git a/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/Path.java b/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/Path.java index fdbf80632f..cf6143ada5 100644 --- a/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/Path.java +++ b/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/Path.java @@ -21,6 +21,8 @@ public interface Path extends Comparable { FileSystem getFileSystem(); String getFileName(); + + String getFileNameWithoutExtension(); String toURI(); diff --git a/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/PathFactory.java b/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/PathFactory.java index ff5871dd3c..f04e6be16e 100644 --- a/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/PathFactory.java +++ b/uberfire-backend/uberfire-backend-api/src/main/java/org/uberfire/backend/vfs/PathFactory.java @@ -81,7 +81,32 @@ public FileSystem getFileSystem() { public String getFileName() { return fileName; } - + + @Override + public String getFileNameWithoutExtension() { + return removeExtension(fileName); + } + + public static String removeExtension(final String filename) { + if (filename == null) { + return null; + } + final int index = indexOfExtension(filename); + if (index == -1) { + return filename; + } else { + return filename.substring(0, index); + } + } + + public static int indexOfExtension(final String filename) { + if (filename == null) { + return -1; + } + final int extensionPos = filename.lastIndexOf("."); + return extensionPos; + } + @Override public String toURI() { return uri; @@ -124,5 +149,4 @@ public String toString() { '}'; } } - } diff --git a/uberfire-workbench/src/test/java/org/uberfire/client/mvp/AbstractWorkbenchEditorActivityTest.java b/uberfire-workbench/src/test/java/org/uberfire/client/mvp/AbstractWorkbenchEditorActivityTest.java index e5a1902631..cf102f2e2c 100644 --- a/uberfire-workbench/src/test/java/org/uberfire/client/mvp/AbstractWorkbenchEditorActivityTest.java +++ b/uberfire-workbench/src/test/java/org/uberfire/client/mvp/AbstractWorkbenchEditorActivityTest.java @@ -50,6 +50,12 @@ public String toURI() { public int compareTo( final Path o ) { return 0; } + + @Override + public String getFileNameWithoutExtension() { + // TODO Auto-generated method stub + return null; + } } ); final ObservablePath path = mock( ObservablePath.class ); @@ -102,6 +108,12 @@ public String toURI() { public int compareTo( final Path o ) { return 0; } + + @Override + public String getFileNameWithoutExtension() { + // TODO Auto-generated method stub + return null; + } } ); final PlaceRequest somewhereTheSame = somewhere.clone(); @@ -161,6 +173,12 @@ public String toURI() { public int compareTo( final Path o ) { return 0; } + + @Override + public String getFileNameWithoutExtension() { + // TODO Auto-generated method stub + return null; + } } ); final PlaceRequest somewhereElse = new PathPlaceRequest( new Path() { @@ -183,6 +201,12 @@ public String toURI() { public int compareTo( final Path o ) { return 0; } + + @Override + public String getFileNameWithoutExtension() { + // TODO Auto-generated method stub + return null; + } } ); //The first place