package org.sakaiproject.conditions.impl; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.sakaiproject.conditions.api.Condition; import org.sakaiproject.conditions.api.ConditionProvider; import org.sakaiproject.conditions.api.ConditionService; import org.sakaiproject.conditions.api.ConditionTemplateSet; import org.sakaiproject.conditions.api.Rule; import org.sakaiproject.conditions.api.Rule.Conjunction; import org.sakaiproject.event.api.Event; import org.sakaiproject.event.api.NotificationAction; public class ToyConditionsService implements ConditionService { private Map<String, ConditionTemplateSet> conditionTemplateSets = new HashMap<String, ConditionTemplateSet>(); private Map<String,Collection<Rule>> rules = new HashMap<String, Collection<Rule>>(); public void registerConditionTemplates(ConditionTemplateSet conditionTemplateSet) { this.conditionTemplateSets.put(conditionTemplateSet.getId(), conditionTemplateSet); } public ConditionTemplateSet getConditionTemplateSetForService( String serviceId) { return conditionTemplateSets.get(serviceId); } public Set<String> getRegisteredServiceNames() { return conditionTemplateSets.keySet(); } public String addRule(String eventType, Rule rule) { Collection<Rule> rulesOfThisType = rules.get(eventType); if (rulesOfThisType == null) rulesOfThisType = new ArrayList<Rule>(); rulesOfThisType.add(rule); rules.put(eventType, rulesOfThisType); return "123abc"; } public void dispatchAnEvent(Event e) { Collection<Rule> rulesForEvent = rules.get(e.getEvent()); if (rulesForEvent == null) return; for(Rule r : rules.get(e.getEvent())) { if(e.getEvent().equals("gradebook.newgrade")) { ((NotificationAction)r).notify(null, e); } } } public String getClassNameForEvent(String eventName) { // TODO Auto-generated method stub return null; } public Map<String, String> getEntitiesForServiceAndContext( String serviceName, String contextId) { // TODO Auto-generated method stub return null; } public Condition makeCondition(Map<String, String> params) { // TODO Auto-generated method stub return null; } public void registerConditionProvider(ConditionProvider provider) { // TODO Auto-generated method stub } public ConditionProvider getConditionProvider(String providerId) { // TODO Auto-generated method stub return null; } public Condition makeBooleanExpression(String eventDataClass, String missingTermQuery, String operatorValue, Object argument) { // TODO Auto-generated method stub return null; } public Rule makeRule(String resourceId, List<Condition> predicates, Conjunction or) { // TODO Auto-generated method stub return null; } }