Search in sources :

Example 1 with Stamp

use of build.pluto.stamp.Stamp in project spoofax by metaborg.

the class DirectoryModifiedStamper method stampOf.

@Override
public Stamp stampOf(File directory) {
    if (!directory.exists()) {
        return new ValueStamp<>(this, -1L);
    } else if (!directory.isDirectory()) {
        throw new RuntimeException("Directory stamper cannot stamp " + directory + ", it is not a directory");
    } else if (filter != null && fileStamper != null) {
        final Map<File, Stamp> stamps = Maps.newHashMap();
        final Collection<File> files = FileUtils.listFiles(directory, filter, FalseFileFilter.INSTANCE);
        for (File file : files) {
            stamps.put(file, fileStamper.stampOf(file));
        }
        return new ValueStamp<>(this, stamps);
    } else {
        return new ValueStamp<>(this, directory.lastModified());
    }
}
Also used : ValueStamp(build.pluto.stamp.ValueStamp) ValueStamp(build.pluto.stamp.ValueStamp) Stamp(build.pluto.stamp.Stamp) File(java.io.File)

Aggregations

Stamp (build.pluto.stamp.Stamp)1 ValueStamp (build.pluto.stamp.ValueStamp)1 File (java.io.File)1