001package org.dllearner.utilities; 002 003import java.util.Collection; 004 005public interface HasProgressMonitor<P extends ProgressMonitor> { 006 /** 007 * @return the current registered progress monitors 008 */ 009 Collection<P> progressMonitors(); 010 011 /** 012 * Register the given progress monitor. 013 * @param mon the progress monitor 014 * @return <code>true</code> (as specified by {@link java.util.Collection#add(Object)}) 015 */ 016 default boolean addProgressMonitor(P mon) { 017 return progressMonitors().add(mon); 018 } 019 020 /** 021 * Unregister the given progress monitor. 022 * @param mon the progress monitor 023 * @return <code>true</code> (as specified by {@link java.util.Collection#remove(Object)}) 024 */ 025 default boolean removeProgressMonitor(P mon) { 026 return progressMonitors().remove(mon); 027 } 028}