package com.almende.eve.ggdemo; import java.io.IOException; import java.net.URI; import java.util.List; import org.apache.http.annotation.ThreadSafe; import com.almende.eve.agent.AgentInterface; import com.almende.eve.protocol.jsonrpc.annotation.Access; import com.almende.eve.protocol.jsonrpc.annotation.AccessType; import com.almende.eve.protocol.jsonrpc.annotation.Name; import com.almende.eve.protocol.jsonrpc.annotation.Sender; import com.almende.eve.protocol.jsonrpc.formats.JSONRPCException; import com.fasterxml.jackson.core.JsonProcessingException; @Access(AccessType.PUBLIC) @ThreadSafe public interface LampAgent extends AgentInterface { public void create(@Name("neighbours") List<String> neighbours, @Name("stepSize") Integer stepSize) throws JSONRPCException, IOException; public boolean isOn(); public boolean isOnBlock() throws InterruptedException; public void handleGoal(@Name("goal") Goal goal, @Sender URI sender) throws JSONRPCException, JsonProcessingException, IOException; public Iterable<String> getNeighbours(); }