All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.collections.ObservableMap Maven / Gradle / Ivy

The newest version!
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