Adds getLastModified() to CompilationUnit and its dependencies. Review by: bobv (postmortem) git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3597 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java b/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java index b165935..826184d 100644 --- a/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java +++ b/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
@@ -149,6 +149,11 @@ public abstract String getDisplayLocation(); /** + * Returns the last modified time of the compilation unit. + */ + public abstract long getLastModified(); + + /** * Returns the source code for this unit. */ public abstract String getSource();
diff --git a/dev/core/src/com/google/gwt/dev/javac/JavaSourceFile.java b/dev/core/src/com/google/gwt/dev/javac/JavaSourceFile.java index f73c2da..c1bf5f7 100644 --- a/dev/core/src/com/google/gwt/dev/javac/JavaSourceFile.java +++ b/dev/core/src/com/google/gwt/dev/javac/JavaSourceFile.java
@@ -29,6 +29,11 @@ } /** + * Returns the last modified time of the compilation unit. + */ + public abstract long getLastModified(); + + /** * Returns the user-relevant location of the source file. No programmatic * assumptions should be made about the return value. */
diff --git a/dev/core/src/com/google/gwt/dev/javac/impl/FileCompilationUnit.java b/dev/core/src/com/google/gwt/dev/javac/impl/FileCompilationUnit.java index 3194633..d2fee22 100644 --- a/dev/core/src/com/google/gwt/dev/javac/impl/FileCompilationUnit.java +++ b/dev/core/src/com/google/gwt/dev/javac/impl/FileCompilationUnit.java
@@ -45,6 +45,11 @@ } @Override + public long getLastModified() { + return file.lastModified(); + } + + @Override public String getSource() { return Util.readFileAsString(file); }
diff --git a/dev/core/src/com/google/gwt/dev/javac/impl/JavaSourceOracleImpl.java b/dev/core/src/com/google/gwt/dev/javac/impl/JavaSourceOracleImpl.java index 820c214..88e2406 100644 --- a/dev/core/src/com/google/gwt/dev/javac/impl/JavaSourceOracleImpl.java +++ b/dev/core/src/com/google/gwt/dev/javac/impl/JavaSourceOracleImpl.java
@@ -60,6 +60,11 @@ } @Override + public long getLastModified() { + return resource.getLastModified(); + } + + @Override public String getLocation() { return location; }
diff --git a/dev/core/src/com/google/gwt/dev/javac/impl/SourceFileCompilationUnit.java b/dev/core/src/com/google/gwt/dev/javac/impl/SourceFileCompilationUnit.java index 4ad2541..7f543af 100644 --- a/dev/core/src/com/google/gwt/dev/javac/impl/SourceFileCompilationUnit.java +++ b/dev/core/src/com/google/gwt/dev/javac/impl/SourceFileCompilationUnit.java
@@ -36,6 +36,11 @@ } @Override + public long getLastModified() { + return sourceFile.getLastModified(); + } + + @Override public String getSource() { if (sourceCode == null) { sourceCode = sourceFile.readSource(); @@ -61,5 +66,5 @@ protected void dumpSource() { sourceCode = null; } - + }
diff --git a/dev/core/src/com/google/gwt/dev/resource/Resource.java b/dev/core/src/com/google/gwt/dev/resource/Resource.java index b5310df..6d61cce 100644 --- a/dev/core/src/com/google/gwt/dev/resource/Resource.java +++ b/dev/core/src/com/google/gwt/dev/resource/Resource.java
@@ -32,6 +32,11 @@ } /** + * Returns the last modified time of the compilation unit. + */ + public abstract long getLastModified(); + + /** * Returns the user-relevant location of the resource. No programmatic * assumptions should be made about the return value. */
diff --git a/dev/core/src/com/google/gwt/dev/resource/impl/FileResource.java b/dev/core/src/com/google/gwt/dev/resource/impl/FileResource.java index 74ba79f..dab8e71 100644 --- a/dev/core/src/com/google/gwt/dev/resource/impl/FileResource.java +++ b/dev/core/src/com/google/gwt/dev/resource/impl/FileResource.java
@@ -47,6 +47,11 @@ } @Override + public long getLastModified() { + return file.lastModified(); + } + + @Override public String getLocation() { return file.getAbsoluteFile().toURI().toString(); }
diff --git a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java index 814f9ac..b04fcf4 100644 --- a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java +++ b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
@@ -89,6 +89,11 @@ } @Override + public long getLastModified() { + return resource.getLastModified(); + } + + @Override public String getLocation() { return resource.getLocation(); }
diff --git a/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileResource.java b/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileResource.java index 87df4fd..1920e86 100644 --- a/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileResource.java +++ b/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileResource.java
@@ -41,8 +41,16 @@ } @Override + public long getLastModified() { + // Questionable: maybe we should do something with the jar's time instead. + return zipEntry.getTime(); + } + + @Override public String getLocation() { + // CHECKSTYLE_OFF String proto = zipEntry instanceof JarEntry ? "jar:" : "zip:"; + // CHECKSTYLE_ON return proto + classPathEntry.getLocation() + "!/" + getPath(); }
diff --git a/dev/core/src/com/google/gwt/dev/shell/StandardGeneratorContext.java b/dev/core/src/com/google/gwt/dev/shell/StandardGeneratorContext.java index 1a3dfcc..332f7de 100644 --- a/dev/core/src/com/google/gwt/dev/shell/StandardGeneratorContext.java +++ b/dev/core/src/com/google/gwt/dev/shell/StandardGeneratorContext.java
@@ -60,6 +60,8 @@ */ private static class GeneratedUnitWithFile extends CompilationUnit { + private long creationTime; + private File file; private PrintWriter pw; @@ -83,6 +85,7 @@ source = sw.toString(); pw = null; sw = null; + creationTime = System.currentTimeMillis(); } @Override @@ -95,6 +98,11 @@ } @Override + public long getLastModified() { + return creationTime; + } + + @Override public String getSource() { if (source == null && file == null) { throw new IllegalStateException("source not committed");
diff --git a/dev/core/test/com/google/gwt/dev/javac/MockCompilationUnit.java b/dev/core/test/com/google/gwt/dev/javac/MockCompilationUnit.java index 9f07db9..4014c8d 100644 --- a/dev/core/test/com/google/gwt/dev/javac/MockCompilationUnit.java +++ b/dev/core/test/com/google/gwt/dev/javac/MockCompilationUnit.java
@@ -35,6 +35,11 @@ } @Override + public long getLastModified() { + return 0; + } + + @Override public String getSource() { assert source != null; return source; @@ -47,4 +52,4 @@ public boolean isGenerated() { return true; } -} \ No newline at end of file +}
diff --git a/dev/core/test/com/google/gwt/dev/javac/impl/MockJavaSourceFile.java b/dev/core/test/com/google/gwt/dev/javac/impl/MockJavaSourceFile.java index 1225e50..1018edb 100644 --- a/dev/core/test/com/google/gwt/dev/javac/impl/MockJavaSourceFile.java +++ b/dev/core/test/com/google/gwt/dev/javac/impl/MockJavaSourceFile.java
@@ -45,6 +45,11 @@ } @Override + public long getLastModified() { + return 0; + } + + @Override public String getLocation() { return location; }
diff --git a/dev/core/test/com/google/gwt/dev/javac/impl/MockResource.java b/dev/core/test/com/google/gwt/dev/javac/impl/MockResource.java index a0fbc94..b35cfda 100644 --- a/dev/core/test/com/google/gwt/dev/javac/impl/MockResource.java +++ b/dev/core/test/com/google/gwt/dev/javac/impl/MockResource.java
@@ -33,6 +33,11 @@ } @Override + public long getLastModified() { + return 0; + } + + @Override public String getLocation() { return "/mock/" + path; }
diff --git a/dev/core/test/com/google/gwt/dev/resource/impl/MockAbstractResource.java b/dev/core/test/com/google/gwt/dev/resource/impl/MockAbstractResource.java index 25de30f..992fdcb 100644 --- a/dev/core/test/com/google/gwt/dev/resource/impl/MockAbstractResource.java +++ b/dev/core/test/com/google/gwt/dev/resource/impl/MockAbstractResource.java
@@ -36,6 +36,11 @@ } @Override + public long getLastModified() { + return 0; + } + + @Override public String getLocation() { return this.mockClassPathEntry.pathRoot + "/" + path; }
diff --git a/dev/core/test/com/google/gwt/dev/shell/StandardGeneratorContextTest.java b/dev/core/test/com/google/gwt/dev/shell/StandardGeneratorContextTest.java index 7b06e39..09c8f21 100644 --- a/dev/core/test/com/google/gwt/dev/shell/StandardGeneratorContextTest.java +++ b/dev/core/test/com/google/gwt/dev/shell/StandardGeneratorContextTest.java
@@ -100,6 +100,11 @@ return new Resource() { @Override + public long getLastModified() { + return 0; + } + + @Override public String getLocation() { return "/mock/onPublicPath.txt"; }
diff --git a/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java b/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java index b851a4b..76b50c3 100644 --- a/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java +++ b/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
@@ -50,6 +50,11 @@ } @Override + public long getLastModified() { + return 0; + } + + @Override public String getSource() { return String.valueOf(source); }