private final Set<String> classNames;
private boolean modified = false;
+ private boolean failed = false;
private final File saved;
private final MessageDigest digest;
boolean modified()
{
- modified |= !propertyNames.containsAll(properties.keySet());
- modified |= !properties.keySet().containsAll(propertyNames);
- modified |= !classNames.containsAll(classes.keySet());
- modified |= !classes.keySet().containsAll(classNames);
+ for (String property : new HashSet<String>(properties.keySet()))
+ if (!propertyNames.contains(property))
+ {
+ modified = true;
+ properties.remove(property);
+ }
+ for (String clazz : new HashSet<String>(classes.keySet()))
+ if (!classNames.contains(clazz))
+ {
+ modified = true;
+ classes.remove(clazz);
+ }
return modified;
}
+ void failed()
+ {
+ failed = true;
+ }
+
+
void load()
{
if (saved.isFile() && saved.length() > 0)
void save()
{
+ if (failed)
+ {
+ saved.delete();
+ return;
+ }
+
if (!modified)
return;