package org.itsnat.droid.impl.browser.serveritsnat.event; import org.itsnat.droid.event.Event; import org.itsnat.droid.impl.browser.serveritsnat.evtlistener.EventGenericListener; import org.itsnat.droid.impl.util.MapLight; import org.itsnat.droid.impl.util.NameValue; import java.util.List; import java.util.Map; /** * Created by jmarranz on 7/07/14. */ public abstract class EventGenericImpl implements Event { protected EventGenericListener listener; protected boolean mustBeSent = true; protected MapLight<String,Object> extraParams; public EventGenericImpl(EventGenericListener listener) { this.listener = listener; } public void setMustBeSent(boolean value) { this.mustBeSent = value; } public void sendEvent() { if (this.mustBeSent) listener.getItsNatDocItsNatImpl().getEventManager().sendEvent(this); } public boolean isIgnoreHold() { return false; } public String getType() { return null; // Se redefine } public void onEventReturned() { // Redefinir en derivada si se quiere hacer algo } public abstract void saveEvent(); public EventGenericListener getEventGenericListener() { return listener; } public Object getExtraParam(String name) { if (extraParams == null) return null; return extraParams.get(name); } public void setExtraParam(String name,Object value) { if (extraParams == null) this.extraParams = new MapLight<String,Object>(); extraParams.put(name,value); } public List<NameValue> genParamURL() { List<NameValue> paramList = listener.getItsNatDocItsNatImpl().genParamURL(); listener.genParamURL(this,paramList); if (extraParams != null) { for (Map.Entry<String,Object> entry : extraParams.getEntryList()) { String name = entry.getKey(); Object value = entry.getValue(); if (value != null && value instanceof Object[]) // Aunque sea String[] es vĂ¡lido el instanceof pues Object[] es la "clase base" { Object[] valueArr = (Object[])value; for (int i = 0; i < valueArr.length; i++) { if (valueArr[i] == null) continue; paramList.add(new NameValue(name, valueArr[i])); } } else { if (value != null) paramList.add(new NameValue(name,value)); } } } return paramList; } }