? getTimeStamp.diff Index: src/org/netbeans/modules/java/JExternalCompiler.java =================================================================== RCS file: /cvs/java/src/org/netbeans/modules/java/JExternalCompiler.java,v retrieving revision 1.18 diff -c -r1.18 JExternalCompiler.java *** src/org/netbeans/modules/java/JExternalCompiler.java 23 Aug 2001 11:40:09 -0000 1.18 --- src/org/netbeans/modules/java/JExternalCompiler.java 10 May 2002 13:32:32 -0000 *************** *** 20,25 **** --- 20,26 ---- import org.openide.filesystems.FileSystem; import org.openide.filesystems.FileObject; import org.openide.execution.NbProcessDescriptor; + import java.util.Date; /** * *************** *** 107,112 **** --- 108,124 ---- boolean status = fo == null || JavaCompilerType.isUpToDate(fo, target); return status; } + + protected Date getTimeStamp () { + if (type == BUILD) { + return null; + } + FileObject fo = getFileObject(); + if (fo == null) + return null; + return JavaCompilerType.getTimeStamp(fo, target); + } + final FileObject getFileObject0() { return getFileObject(); Index: src/org/netbeans/modules/java/JavaCompilerType.java =================================================================== RCS file: /cvs/java/src/org/netbeans/modules/java/JavaCompilerType.java,v retrieving revision 1.32 diff -c -r1.32 JavaCompilerType.java *** src/org/netbeans/modules/java/JavaCompilerType.java 15 Mar 2002 16:35:28 -0000 1.32 --- src/org/netbeans/modules/java/JavaCompilerType.java 10 May 2002 13:32:32 -0000 *************** *** 44,49 **** --- 44,50 ---- import org.openide.util.Lookup; import sun.tools.java.Constants; + import java.util.Date; /** * *************** *** 245,261 **** return false; FileObject primary = mdo.getPrimaryFile(); ! FileObject folder = primary.getParent(); - if (target != null) { - folder = target.find(folder.getPackageName('.'), null, null); - if (folder == null) - return false; - } - - FileObject clazz = folder.getFileObject(primary.getName(), JavaDataLoader.CLASS_EXTENSION); if (clazz != null) { - clazz.refresh(); if (clazz.getSize() > 0 && clazz.lastModified().compareTo(primary.lastModified()) >= 0) { return true; --- 246,254 ---- return false; FileObject primary = mdo.getPrimaryFile(); ! FileObject clazz = getClassFileObject(primary, target); if (clazz != null) { if (clazz.getSize() > 0 && clazz.lastModified().compareTo(primary.lastModified()) >= 0) { return true; *************** *** 264,269 **** --- 257,300 ---- } catch (DataObjectNotFoundException e) { } return false; + } + + private static FileObject getClassFileObject(FileObject primary, FileSystem target) { + FileObject folder = primary.getParent(); + if (target != null) { + folder = target.find(folder.getPackageName('.'), null, null); + if (folder == null) + return null; + } + + FileObject clazz = folder.getFileObject(primary.getName(), JavaDataLoader.CLASS_EXTENSION); + if (clazz != null) { + clazz.refresh(); + return clazz; + } + return null; + } + + /** + * Return timestamp of compiled files. + * @param fo source FileObject + * @param target filesystem for compilation output + * @return date of the .class file or null if it does not exist + */ + public static Date getTimeStamp(FileObject fo, FileSystem target) { + try { + DataObject mdo = (DataObject) DataObject.find(fo); + + FileObject primary = mdo.getPrimaryFile(); + FileObject clazz = getClassFileObject(primary, target); + + if (clazz == null) + return null; + + return clazz.lastModified(); + } catch (DataObjectNotFoundException e) { + } + return null; } private void throwCloneException(Throwable t) throws CloneNotSupportedException {