package eu.play_project.dcep.distributedetalis.api; import java.util.Map; import java.util.Set; import com.jtalis.core.JtalisContextImpl; import eu.play_project.dcep.distributedetalis.DistributedEtalis; import eu.play_project.dcep.distributedetalis.JtalisInputProvider; import eu.play_project.dcep.distributedetalis.JtalisOutputProvider; import eu.play_project.dcep.distributedetalis.PrologSemWebLib; import eu.play_project.dcep.distributedetalis.measurement.MeasurementUnit; import eu.play_project.play_platformservices.api.BdplQuery; /** * Set attributes used by a dEtalis instance. dEtalis can be configured with defend implementations of an attribute. E.g. Defended output methods. * @author Stefan Obermeier * */ public interface DEtalisConfigApi { /** * Java interface for Etalis. * @param etalis */ public void setEtalis(JtalisContextImpl etalis); public void setEventOutputProvider(JtalisOutputProvider eventOutputProvider); public void setEventInputProvider(JtalisInputProvider eventInputProvider); public void setMeasurementUnit(MeasurementUnit measurementUnit); public void setSemWebLib(PrologSemWebLib semWebLib); public DistributedEtalis getDistributedEtalis(); public Map<String, BdplQuery> getRegisteredQueries(); public void setRegisteredQueries(Map<String, BdplQuery> registeredQueries); public EcConnectionManager getEcConnectionManager(); public Set<SimplePublishApi> getEventSinks(); public JtalisContextImpl getEtalis(); public JtalisOutputProvider getEventOutputProvider(); public JtalisInputProvider getEventInputProvider(); /** * Complex events are delivered to ecConnectionManger. With this method it is possible to set a special version e.g. one with needs no internet connection. * @param ecConnectionManager Implementation of EcConnectionManger interface. */ public void setEcConnectionManager(EcConnectionManager ecConnectionManager); }