Lines 83-89
Link Here
|
83 |
private static final String PATH_SEPARATOR = File.separator;//NOI18N |
83 |
private static final String PATH_SEPARATOR = File.separator;//NOI18N |
84 |
private static final char EXT_SEP = '.';//NOI18N |
84 |
private static final char EXT_SEP = '.';//NOI18N |
85 |
private FileChangeListener versioningWeakListener; |
85 |
private FileChangeListener versioningWeakListener; |
86 |
private final FileChangeListener versioningListener = new FileChangeListenerForVersioning(); |
|
|
87 |
|
86 |
|
88 |
//static fields |
87 |
//static fields |
89 |
static final long serialVersionUID = -1244650210876356809L; |
88 |
static final long serialVersionUID = -1244650210876356809L; |
Lines 104-112
Link Here
|
104 |
|
103 |
|
105 |
protected BaseFileObj(final File file, final FileNaming name) { |
104 |
protected BaseFileObj(final File file, final FileNaming name) { |
106 |
this.fileName = name; |
105 |
this.fileName = name; |
107 |
versioningWeakListener = WeakListeners.create(FileChangeListener.class, FileChangeListener.class, versioningListener, this); |
|
|
108 |
addFileChangeListener(versioningWeakListener); |
109 |
|
110 |
} |
106 |
} |
111 |
|
107 |
|
112 |
@Override |
108 |
@Override |
Lines 217-227
Link Here
|
217 |
|
213 |
|
218 |
@Override |
214 |
@Override |
219 |
public final FileObject move(FileLock lock, FileObject target, String name, String ext) throws IOException { |
215 |
public final FileObject move(FileLock lock, FileObject target, String name, String ext) throws IOException { |
|
|
216 |
ProvidedExtensions extensions = getProvidedExtensions(); |
217 |
extensions.beforeMove(this); |
218 |
FileObject result = null; |
219 |
try { |
220 |
if (!checkLock(lock)) { |
220 |
if (!checkLock(lock)) { |
221 |
FSException.io("EXC_InvalidLock", lock, getPath()); // NOI18N |
221 |
FSException.io("EXC_InvalidLock", lock, getPath()); // NOI18N |
222 |
} |
222 |
} |
223 |
ProvidedExtensions extensions = getProvidedExtensions(); |
223 |
|
224 |
FileObject result = null; |
|
|
225 |
File to = (target instanceof FolderObj) ? new File(((BaseFileObj) target).getFileName().getFile(), FileInfo.composeName(name, ext)) : |
224 |
File to = (target instanceof FolderObj) ? new File(((BaseFileObj) target).getFileName().getFile(), FileInfo.composeName(name, ext)) : |
226 |
new File(FileUtil.toFile(target), FileInfo.composeName(name, ext)); |
225 |
new File(FileUtil.toFile(target), FileInfo.composeName(name, ext)); |
227 |
final IOHandler moveHandler = extensions.getMoveHandler(getFileName().getFile(), to); |
226 |
final IOHandler moveHandler = extensions.getMoveHandler(getFileName().getFile(), to); |
Lines 242-247
Link Here
|
242 |
} |
241 |
} |
243 |
|
242 |
|
244 |
FileUtil.copyAttributes(this, result); |
243 |
FileUtil.copyAttributes(this, result); |
|
|
244 |
} catch (IOException ioe) { |
245 |
extensions.moveFailure(this); |
246 |
throw ioe; |
247 |
} |
248 |
extensions.moveSuccess(this); |
245 |
return result; |
249 |
return result; |
246 |
} |
250 |
} |
247 |
|
251 |
|
Lines 528-533
Link Here
|
528 |
} |
532 |
} |
529 |
|
533 |
|
530 |
public final void fireFileChangedEvent(final boolean expected) { |
534 |
public final void fireFileChangedEvent(final boolean expected) { |
|
|
535 |
getProvidedExtensions().fileChanged(this); |
536 |
|
531 |
Statistics.StopWatch stopWatch = Statistics.getStopWatch(Statistics.LISTENERS_CALLS); |
537 |
Statistics.StopWatch stopWatch = Statistics.getStopWatch(Statistics.LISTENERS_CALLS); |
532 |
stopWatch.start(); |
538 |
stopWatch.start(); |
533 |
|
539 |
|
Lines 617-622
Link Here
|
617 |
getProvidedExtensions().deleteFailure(BaseFileObj.this); |
623 |
getProvidedExtensions().deleteFailure(BaseFileObj.this); |
618 |
throw iex; |
624 |
throw iex; |
619 |
} |
625 |
} |
|
|
626 |
getProvidedExtensions().deleteSuccess(BaseFileObj.this); |
620 |
return true; |
627 |
return true; |
621 |
} |
628 |
} |
622 |
}; |
629 |
}; |
Lines 708-713
Link Here
|
708 |
} |
715 |
} |
709 |
setValid(false); |
716 |
setValid(false); |
710 |
if (fire) { |
717 |
if (fire) { |
|
|
718 |
getProvidedExtensions().deletedExternally(this); |
711 |
fireFileDeletedEvent(expected); |
719 |
fireFileDeletedEvent(expected); |
712 |
} |
720 |
} |
713 |
} |
721 |
} |
Lines 865-896
Link Here
|
865 |
return getExistingParentFor(getFileName().getFile(), getFactory()); |
873 |
return getExistingParentFor(getFileName().getFile(), getFactory()); |
866 |
} |
874 |
} |
867 |
|
875 |
|
868 |
private final class FileChangeListenerForVersioning extends FileChangeAdapter { |
|
|
869 |
@Override |
870 |
public void fileDataCreated(FileEvent fe) { |
871 |
if (fe.getFile() == BaseFileObj.this) { |
872 |
getProvidedExtensions().createSuccess(fe.getFile()); |
873 |
} |
874 |
} |
875 |
|
876 |
/** |
877 |
* Implements FileChangeListener.fileFolderCreated(FileEvent fe) |
878 |
*/ |
879 |
@Override |
880 |
public void fileFolderCreated(FileEvent fe) { |
881 |
if (fe.getFile() == BaseFileObj.this) { |
882 |
getProvidedExtensions().createSuccess(fe.getFile()); |
883 |
} |
884 |
} |
885 |
|
886 |
@Override |
887 |
public void fileDeleted(FileEvent fe) { |
888 |
if (fe.getFile() == BaseFileObj.this) { |
889 |
getProvidedExtensions().deleteSuccess(fe.getFile()); |
890 |
} |
891 |
} |
892 |
} |
893 |
|
894 |
private static class FileEventImpl extends FileEvent implements Enumeration<FileEvent> { |
876 |
private static class FileEventImpl extends FileEvent implements Enumeration<FileEvent> { |
895 |
private FileEventImpl next; |
877 |
private FileEventImpl next; |
896 |
public boolean hasMoreElements() { |
878 |
public boolean hasMoreElements() { |