package org.flowerplatform.editor.model.changes_processor; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.eclipse.emf.ecore.EObject; /** * @author Cristi */ public class ClassCriterionDispatcherProcessor extends AbstractCriterionDispatcherProcessor<Class<?>> { @Override protected List<IChangesProcessor> getProcessorsThatMeetCriterion(Map<String, Object> context, EObject object, Changes changes) { List<IChangesProcessor> result = new ArrayList<IChangesProcessor>(); for (Map.Entry<Class<?>, List<IChangesProcessor>> entry : processors.entrySet()) { if (entry.getKey().isAssignableFrom(object.getClass())) { // found a class that's compatible (i.e. same or superclass) to the class of the current object result.addAll(entry.getValue()); } } if (result.isEmpty()) { return null; } else { return result; } } }