/** * */ package org.societies.rfid.server; import java.util.Hashtable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.api.osgi.event.CSSEvent; import org.societies.api.osgi.event.EventListener; import org.societies.api.osgi.event.IEventMgr; import org.societies.api.osgi.event.InternalEvent; /** * @author Eliza * */ public class RfidWebAppEventListener extends EventListener{ private Logger logging = LoggerFactory.getLogger(this.getClass()); private static final String RFID_SERVER_EVENT_TYPE = "org/societies/rfid/server"; private RfidServer server; private IEventMgr eventMgr; public RfidWebAppEventListener(RfidServer server){ this.server = server; eventMgr = server.getEventMgr(); eventMgr.subscribeInternalEvent(this, new String[]{RFID_SERVER_EVENT_TYPE}, null); logging.debug("registered for events!"); } @Override public void handleExternalEvent(CSSEvent arg0) { // TODO Auto-generated method stub } @Override public void handleInternalEvent(InternalEvent event) { this.logging.debug("Received event: "+event.geteventType()+" name: "+event.geteventName()); if (event.geteventType().equalsIgnoreCase(RFID_SERVER_EVENT_TYPE)){ Hashtable<String, String> payload = (Hashtable<String, String>) event.geteventInfo(); if (event.geteventName().equalsIgnoreCase("addNewTag")){ this.logging.debug("adding new tag"); if (payload.containsKey("tag")){ if (payload.containsKey("password")){ this.server.addTag(payload.get("tag"), payload.get("password")); }else{ String password = this.server.getPassword(); this.server.addTag(payload.get("tag"), password); } } }else if (event.geteventName().equalsIgnoreCase("deleteTag")){ if (payload.containsKey("tag")){ this.server.requestDeleteTag(payload.get("tag")); } } } } }