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());
}
}
Aggregations