/* * 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; /** * Defines an EventPort which can be an input or output for * traveling object.
*
* All the public final are for progroming * * @author Willem Cazander * @version 1.0 18/04/2005 */ public class EventPort { /** public type for defining TRUE */ static final public String TRUE = "true"; /** public type for defining FALSE */ static final public String FALSE = "false"; /** public type for defining INPUT */ static final public String INPUT = "input"; /** public type for defining OUTPUT */ static final public String OUTPUT = "output"; /** public type for defining PASS */ static final public String PASS = "pass"; /** public type for defining DROP */ static final public String DROP = "drop"; /** The name of the port */ private String name = null; /** The type of Object class which can be handled by the port.*/ private Class objectType = null; /** The total number of events this port has had. */ private long eventsPassed = 0; /** The type of event port */ private EventPortType eventPortType = null; /**The EventObject of this port */ private Object eventObject = null; /** The immediate if true i*/ private boolean immediate = false; /** * Contructs an EventPort with an name and a certain type. *
* immediate has 2 defaults depending on the EventPortType of the EventPort.
* input=true
* output=false
* This defines the default behouvier of the foei events and newexecutors
* * @param name The name of the EventPort. * @param objectType The class type which it accepts. */ public EventPort(String name,Class objectType,EventPortType eventPortType,Object eventObject) { if(name==null) { throw new NullPointerException("name may not be null."); } if(objectType==null) { throw new NullPointerException("eventPortType may not be null."); } if(eventPortType==null) { throw new NullPointerException("eventPortType may not be null."); } if(eventObject==null) { throw new NullPointerException("eventObject may not be null."); } this.name=name; this.objectType=objectType; this.eventPortType=eventPortType; this.eventObject=eventObject; if(eventPortType==EventPortType.input) { immediate=true; } if(eventPortType==EventPortType.output) { immediate=false; } } /** * Returns the name of the EventPort. * @return The name of the EventPort. */ public String getName() { return name; } /** * Returns the class of the object this EventPort handleds. * @return the class of the transfering object. */ public Class getObjectClass() { return objectType; } /** * Adds the event to the eventsPassed value. */ public void addEventsPassed() { eventsPassed++; } /** * The number of events that this port has done. * @return Returns the number of events of this port. */ public long getEventsPassed() { return eventsPassed; } /** * Returns the EventPortType * @return Returns the EventPortType. */ public EventPortType getEventPortType() { return eventPortType; } /** * Gets the EventObject. * @return Returns the EventObject. */ public Object getEventObject() { return eventObject; } /** * Gets the immediate * @return Returns immediate */ public boolean isImmediate() { return immediate; } /** * Sets the immediate state of this event port * @param immediate */ public void setImmediate(boolean immediate) { this.immediate=immediate; } }