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

org.unlaxer.jaddress.PoisonPillHolder Maven / Gradle / Ivy

The newest version!
package org.unlaxer.jaddress;

import java.util.Map;
import java.util.function.Supplier;

import org.unlaxer.util.collection.ID;

public interface PoisonPillHolder{
	
	public Map poisonPillByID();
	
	public default PoisonPill poisonPill(ID id) {
		return  poisonPillByID().get(id);
	}
	
	public default PoisonPill createAndSetPoisonPill(ID id ,Supplier throwable) {
		PoisonPill poisonPill = new PoisonPill(throwable.get());
		poisonPillByID().put(id , poisonPill);
		return poisonPill;
	}
	
	public default void apply(PoisonPillEnabler poisonPillEnabler) {
		
		poisonPillEnabler.keyset()
			.forEach(id->{
				PoisonPill poisonPill = poisonPill(id);
				if(poisonPill != null) {
					poisonPill.setEnable(
						poisonPillEnabler.isEnable(id)
					);
				}
			});
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy