diumenge, 17 de gener del 2016

package org.xmlrobot.genesis;

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();
}