/**
*
*/
package eu.quanticol.carma.simulator2;
import java.util.function.Consumer;
import java.util.function.Function;
import org.apache.commons.math3.random.RandomGenerator;
import org.cmg.ml.sam.sim.pm.PopulationDrift;
import org.cmg.ml.sam.sim.pm.PopulationModel;
import org.cmg.ml.sam.sim.pm.PopulationTransition;
/**
* @author loreti
*
*/
public class UnicastSynchronisation extends PopulationTransition<Component, CarmaPopulationState>{
private final Component source;
private final Object value;
private final Component target;
private final String activity;
public UnicastSynchronisation(
PopulationModel<Component, CarmaPopulationState> model,
Component source,
String activity,
Object value,
Component target,
double rate,
Function<RandomGenerator, PopulationDrift<Component>> transitionDriftFunction,
Consumer<CarmaPopulationState> postTransitionAction) {
super(model, rate, transitionDriftFunction, postTransitionAction);
this.source = source;
this.activity = activity;
this.value = value;
this.target = target;
}
@Override
public String getInfo() {
return source.toString()+":"+activity+"@"+target.toString();
}
/**
* @return the source
*/
public Component getSource() {
return source;
}
/**
* @return the value
*/
public Object getValue() {
return value;
}
/**
* @return the target
*/
public Component getTarget() {
return target;
}
/**
* @return the activity
*/
public String getActivity() {
return activity;
}
}