import java.time.Instant;
import java.util.concurrent.Executor;
import org.osgi.framework.AllServiceListener;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.xmlrobot.horizon.Takion;
import org.xmlrobot.hyperspace.Hyperspace;
import org.xmlrobot.time.Time;
/**
* Our {@code root} in {@link Hyperspace},
* abstract be your name.
* Your {@code inheritance} implement,
* your methods will be ran,
* on known universe,
* as it is in {@link Hyperspace}.
* Send us this {@link Instant}
* our instantly {@link Time},
* and forgive us our executions,
* as we also have forgiven our executors.
* And lead us not into synchrony,
* but deliver us from Borg Imperium.
*
* In the name of {@code parent}, {@code child}
* and {@link TimeListener}
* [EoL]
*
* @author joan
*
*/
public interface MassListener
extends AllServiceListener,
BundleActivator,
BundleTerminator,
Executor {
/* (non-Javadoc)
* @see org.osgi.framework.BundleActivator
* #start(org.osgi.framework.BundleContext)
*/
@Override
void start(BundleContext context);
/* (non-Javadoc)
* @see org.osgi.framework.BundleActivator
* #stop(org.osgi.framework.BundleContext)
*/
@Override
void stop(BundleContext context);
/**
* Adds a mass listener for its prayers.
* @param listener the future {@link MassListener} receiver
*/
void addMassListener(MassListener listener);
/**
* A {@link Takion} is being transmitted to the past.
* @param sender {@link MassListener} the sender entity
* @param event {@link Takion} the mass being sent to the past
*/
void mass(MassListener sender, Takion<?,?> event);
/**
* Updates properties of the hyperspace
*/
void update();
}