ProvidedExtensions.beforeChange
was added.
+ ProvidedExtensions.beforeChange
which is called by
+ MasterFileSystem
when FileObject
+ is going to be modified by asking for OutputStream
.
+
ProvidedExtensions.getDeleteHandler
was added.MasterFileSystem
when FileObject
+ * is going to be modified by asking for OutputStream
+ * @see org.openide.filesystems.FileObject#getOutputStream
+ * @param fo file which is going to be notified
+ */
+ public void beforeChange(FileObject fo) {}
}
Index: src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java
*** /space/work/all3/openide/masterfs/src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java Base (1.4)
--- /space/work/all3/openide/masterfs/src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java Locally Modified (Based On 1.4)
***************
*** 137,143 ****
--- 137,154 ----
}
}
}
+
+ public void beforeChange(FileObject f) {
+ for (Iterator it = annotationProviders.iterator(); it.hasNext();) {
+ AnnotationProvider provider = (AnnotationProvider) it.next();
+ InterceptionListener iListener = (provider != null) ? provider.getInterceptionListener() : null;
+ if (iListener instanceof ProvidedExtensions) {
+ ((ProvidedExtensions)iListener).beforeChange(f);
}
+ }
+ }
+ }
Index: test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java
*** /space/work/all3/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java Base (1.4)
--- /space/work/all3/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java Locally Modified (Based On 1.4)
***************
*** 82,87 ****
--- 82,102 ----
}
+ public void testImplsBeforeChange() throws IOException {
+ FileObject fo = FileUtil.toFileObject(getWorkDir());
+ assertNotNull(fo);
+ assertNotNull(iListener);
+ FileObject toChange = fo.createData("aa");
+ assertNotNull(toChange);
+ OutputStream os = toChange.getOutputStream();
+ try {
+ assertEquals(1, iListener.implsBeforeChangeCalls);
+ } finally {
+ os.close();
+ }
+
+ }
+
public void testImplsMove() throws IOException {
FileObject fo = FileUtil.toFileObject(getWorkDir());
assertNotNull(fo);
***************
*** 368,373 ****
--- 383,389 ----
private int moveImplCalls;
private int implsRenameCalls;
private int renameImplCalls;
+ private int implsBeforeChangeCalls;
private static boolean implsMoveRetVal = true;
private static boolean implsRenameRetVal = true;
***************
*** 380,387 ****
--- 396,408 ----
moveImplCalls = 0;
implsRenameCalls = 0;
renameImplCalls = 0;
+ implsBeforeChangeCalls = 0;
}
+ public void beforeChange(FileObject f) {
+ implsBeforeChangeCalls++;
+ }
+
public ProvidedExtensions.DeleteHandler getDeleteHandler(File f) {
return (!isImplsDeleteRetVal()) ? null : new ProvidedExtensions.DeleteHandler(){
final Set s = new HashSet();