/* * Copyright 2004-2006 IDCA. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the * following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and * the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions * and the following disclaimer in the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the authors and * should not be interpreted as representing official policies, either expressed or implied, of IDCA. */ package com.idcanet.foei.event; import com.idcanet.foei.event.EventInput; import java.util.Collection; import java.util.HashMap; import java.util.Map; /** * Defines an AbstractEventInput which implements most<br/> * methods needed for an Foei EventInput bean. * * @author Willem Cazander * @version 1.0 Aug 20, 2005 */ abstract public class AbstractEventInput implements EventInput { /** The input EventPorts */ private Map<String,EventPort> inputs = null; /** * The constuctor */ public AbstractEventInput() { inputs = new HashMap<String,EventPort>(1); } /** * Adds an input EventPort * @param inputName The inputName of the EventPort */ protected void addInputPort(String inputName) { addInputPort(inputName,Object.class); } /** * Adds an input EventPort * @param inputName The inputName of the EventPort * @param inputType The inputClass of the EventPort */ protected void addInputPort(String inputName,Class inputClass) { if(inputName==null) { throw new NullPointerException("inputName may not be null."); } if(inputClass==null) { throw new NullPointerException("inputClass may not be null."); } inputs.put(inputName,new EventPort(inputName,inputClass,EventPortType.input,this)); } // ---------------- EventInput /** * Gets all input EventPorts * @see EventInput#getInputPorts() * @return Returns an List of input EventPorts */ public Collection<EventPort> getInputPorts() { return inputs.values(); } /** * * @param name * @return */ public EventPort getInputPort(String name) { return inputs.get(name); } /** * @see EventInput#doEvent(EventPort, Object) */ abstract public void doEvent(EventPort eventPort,Object object) throws IllegalEventPortNameException; }