package simulator.interfaces; import java.util.HashSet; import java.util.Set; import models.algebra.Expression; import models.algebra.InvalidMessage; import models.algebra.ParameterizedIdentifierIsFutureWork; import models.algebra.UnificationFailed; import models.algebra.ValueUndefined; import models.dataConstraintModel.Channel; import models.dataConstraintModel.ResourcePath; import models.dataFlowModel.DataTransferChannel; import models.dataFlowModel.ResolvingMultipleDefinitionIsFutureWork; import simulator.Event; import simulator.Resource; import simulator.Simulator; abstract public class NativeSender { protected Simulator simulator; protected DataTransferChannel channel; protected ResourcePath resourcePath; protected Resource resource; public NativeSender(Simulator simulator, DataTransferChannel channel, ResourcePath resourcePath, Resource resource) { this.simulator = simulator; this.channel = channel; this.resourcePath = resourcePath; this.resource = resource; } public void sendToModel(Expression message) { try { Event event = new Event(channel, message, resourcePath, resource); simulator.transition(event); } catch (ParameterizedIdentifierIsFutureWork | ResolvingMultipleDefinitionIsFutureWork | InvalidMessage | UnificationFailed | ValueUndefined e) { e.printStackTrace(); } } }