
name.remal.collections.ObservableMap Maven / Gradle / Ivy
package name.remal.collections;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
public interface ObservableMap extends Map {
@NotNull
HandlerRegistration registerEntryAddedHandler(@NotNull EntryAddedHandler handler);
@NotNull
HandlerRegistration registerEntryRemovedHandler(@NotNull EntryRemovedHandler handler);
@NotNull
default HandlerRegistration registerMapChangedHandler(@NotNull MapChangedHandler handler) {
HandlerRegistration entryAddedHandlerRegistration = registerEntryAddedHandler((key, value) -> handler.onMapChanged());
HandlerRegistration entryRemovedHandlerRegistration = registerEntryRemovedHandler((key, value) -> handler.onMapChanged());
return () -> {
entryAddedHandlerRegistration.deregister();
entryRemovedHandlerRegistration.deregister();
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy