package org.eclipse.incquery.examples.bpmn.ttc2013.simulator; import java.util.ArrayList; import java.util.Collections; import java.util.Random; import java.util.Set; import org.eclipse.incquery.runtime.evm.api.Activation; import org.eclipse.incquery.runtime.evm.api.ConflictResolver; import org.eclipse.incquery.runtime.evm.api.ConflictSet; public final class FairRandomConflictSet extends BasicConflictSet { final FairRandomConflictResolver resolver; Random rnd = new Random(); public FairRandomConflictSet(FairRandomConflictResolver resolver) { super(); this.resolver = resolver; } @Override public ConflictResolver<? extends ConflictSet> getConflictResolver() { return resolver; } @Override public Activation<?> getNextActivation() { if (activations.isEmpty()) return null; int index = rnd.nextInt(activations.size()); return new ArrayList<Activation<?>>(activations).get(index); } @Override public Set<Activation<?>> getNextActivations() { return activations; } }