org.deephacks.tools4j.config.ConfigChanges Maven / Gradle / Ivy
The newest version!
package org.deephacks.tools4j.config;
import com.google.common.base.Optional;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import java.util.Collection;
public class ConfigChanges {
private Multimap, ConfigChange> changes = ArrayListMultimap.create();
private Class> changeClass;
public ConfigChanges() {
}
public void add(ConfigChange change) {
changeClass = change.getChangeClass();
changes.put(change.getChangeClass(), change);
}
public Class> getChangeClass() {
return changeClass;
}
public Collection> getChanges() {
return changes.values();
}
public static class ConfigChange {
private Optional before;
private Optional after;
private Class> changeClass;
private ConfigChange(Optional before, Optional after){
this.before = before;
this.after = after;
if (before().isPresent()) {
changeClass = before().get().getClass();
} else {
changeClass = after().get().getClass();
}
}
public Class> getChangeClass() {
return changeClass;
}
public static ConfigChange created(T after) {
return new ConfigChange(Optional.absent(), Optional.of(after));
}
public static ConfigChange deleted(T before) {
return new ConfigChange(Optional.of(before), Optional.absent());
}
public static ConfigChange updated(T before, T after) {
return new ConfigChange(Optional.of(before), Optional.of(after));
}
public Optional before() {
return before;
}
public Optional after() {
return after;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy