You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/07/13 04:29:39 UTC

svn commit: r555838 - in /mina/trunk: core/src/main/java/org/apache/mina/common/ core/src/main/java/org/apache/mina/filter/executor/ filter-ssl/src/main/java/org/apache/mina/filter/support/

Author: trustin
Date: Thu Jul 12 19:29:38 2007
New Revision: 555838

URL: http://svn.apache.org/viewvc?view=rev&rev=555838
Log:
Resolved issue: DIRMINA-361 (Event type and EventType enum
* Added IoEventType
* Added IoEvent and IoFilterEvent
* Removed duplicate event classes from executor filters and ssl filter


Added:
    mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java   (with props)
    mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java   (with props)
    mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java   (with props)
Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedExecutorFilter.java
    mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java

Added: mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java?view=auto&rev=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java Thu Jul 12 19:29:38 2007
@@ -0,0 +1,67 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.mina.common;
+
+/**
+ * An I/O event or an I/O request that MINA provides.
+ * Most users won't need to use this class.  It is usually used by internal
+ * components to store I/O events.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class IoEvent {
+    private final IoEventType type;
+    private final IoSession session;
+    private final Object parameter;
+    
+    public IoEvent(IoEventType type, IoSession session, Object parameter) {
+        if (type == null) {
+            throw new NullPointerException("type");
+        }
+        if (session == null) {
+            throw new NullPointerException("session");
+        }
+        this.type = type;
+        this.session = session;
+        this.parameter = parameter;
+    }
+
+    public IoEventType getType() {
+        return type;
+    }
+
+    public IoSession getSession() {
+        return session;
+    }
+
+    public Object getParameter() {
+        return parameter;
+    }
+    
+    @Override
+    public String toString() {
+        if (getParameter() == null) {
+            return "[" + getSession() + "] " + getType().name();
+        } else {
+            return "[" + getSession() + "] " + getType().name() + ": " + getParameter();
+        }
+    }
+}

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java?view=auto&rev=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java Thu Jul 12 19:29:38 2007
@@ -0,0 +1,39 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.mina.common;
+
+/**
+ * An {@link Enum} that represents the type of I/O events and requests.
+ * Most users won't need to use this class.  It is usually used by internal
+ * components to store I/O events.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public enum IoEventType {
+    SESSION_OPENED,
+    SESSION_CLOSED,
+    MESSAGE_RECEIVED,
+    MESSAGE_SENT,
+    SESSION_IDLE,
+    EXCEPTION_CAUGHT,
+    WRITE,
+    CLOSE
+}

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoEventType.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java?view=auto&rev=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java Thu Jul 12 19:29:38 2007
@@ -0,0 +1,48 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.mina.common;
+
+import org.apache.mina.common.IoFilter.NextFilter;
+
+/**
+ * An I/O event or an I/O request that MINA provides for {@link IoFilter}s.
+ * Most users won't need to use this class.  It is usually used by internal
+ * components to store I/O events.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class IoFilterEvent extends IoEvent {
+    
+    private final NextFilter nextFilter;
+
+    public IoFilterEvent(NextFilter nextFilter, IoEventType type, IoSession session, Object parameter) {
+        super(type, session, parameter);
+        
+        if (nextFilter == null) {
+            throw new NullPointerException("nextFilter");
+        }
+        this.nextFilter = nextFilter;
+    }
+    
+    public NextFilter getNextFilter() {
+        return nextFilter;
+    }
+}

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java?view=diff&rev=555838&r1=555837&r2=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java Thu Jul 12 19:29:38 2007
@@ -25,7 +25,9 @@
 import java.util.concurrent.TimeUnit;
 
 import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoEventType;
 import org.apache.mina.common.IoFilterAdapter;
+import org.apache.mina.common.IoFilterEvent;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteRequest;
 
@@ -70,69 +72,7 @@
         return executor;
     }
 
-    protected abstract void fireEvent(
-            NextFilter nextFilter, IoSession session, EventType type, Object data );
-
-    protected static class EventType
-    {
-        public static final EventType OPENED = new EventType( "OPENED" );
-
-        public static final EventType CLOSED = new EventType( "CLOSED" );
-
-        public static final EventType READ = new EventType( "READ" );
-
-        public static final EventType WRITTEN = new EventType( "WRITTEN" );
-
-        public static final EventType RECEIVED = new EventType( "RECEIVED" );
-
-        public static final EventType SENT = new EventType( "SENT" );
-
-        public static final EventType IDLE = new EventType( "IDLE" );
-
-        public static final EventType EXCEPTION = new EventType( "EXCEPTION" );
-
-        private final String value;
-
-        private EventType( String value )
-        {
-            this.value = value;
-        }
-
-        @Override
-        public String toString()
-        {
-            return value;
-        }
-    }
-
-    protected static class Event
-    {
-        private final EventType type;
-        private final NextFilter nextFilter;
-        private final Object data;
-
-        protected Event( EventType type, NextFilter nextFilter, Object data )
-        {
-            this.type = type;
-            this.nextFilter = nextFilter;
-            this.data = data;
-        }
-
-        public Object getData()
-        {
-            return data;
-        }
-
-        public NextFilter getNextFilter()
-        {
-            return nextFilter;
-        }
-
-        public EventType getType()
-        {
-            return type;
-        }
-    }
+    protected abstract void fireEvent(IoFilterEvent event);
 
     public final void sessionCreated( NextFilter nextFilter, IoSession session )
     {
@@ -142,74 +82,82 @@
     public final void sessionOpened( NextFilter nextFilter,
                                IoSession session )
     {
-        fireEvent( nextFilter, session, EventType.OPENED, null );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.SESSION_OPENED, session, null) );
     }
 
     public final void sessionClosed( NextFilter nextFilter,
                                IoSession session )
     {
-        fireEvent( nextFilter, session, EventType.CLOSED, null );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.SESSION_CLOSED, session, null) );
     }
 
     public final void sessionIdle( NextFilter nextFilter,
                              IoSession session, IdleStatus status )
     {
-        fireEvent( nextFilter, session, EventType.IDLE, status );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.SESSION_IDLE, session, status) );
     }
 
     public final void exceptionCaught( NextFilter nextFilter,
                                  IoSession session, Throwable cause )
     {
-        fireEvent( nextFilter, session, EventType.EXCEPTION, cause );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.EXCEPTION_CAUGHT, session, cause) );
     }
 
     public final void messageReceived( NextFilter nextFilter,
                                  IoSession session, Object message )
     {
-        fireEvent( nextFilter, session, EventType.RECEIVED, message );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.MESSAGE_RECEIVED, session, message) );
     }
 
     public final void messageSent( NextFilter nextFilter,
                              IoSession session, WriteRequest writeRequest )
     {
-        fireEvent( nextFilter, session, EventType.SENT, writeRequest );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.MESSAGE_SENT, session, writeRequest) );
     }
 
-    protected final void processEvent( NextFilter nextFilter, IoSession session, EventType type, Object data )
+    public final void filterWrite( NextFilter nextFilter, IoSession session, WriteRequest writeRequest )
     {
-        if( type == EventType.RECEIVED )
-        {
-            nextFilter.messageReceived( session, data );
-        }
-        else if( type == EventType.SENT )
-        {
-            nextFilter.messageSent( session, (WriteRequest) data );
-        }
-        else if( type == EventType.EXCEPTION )
-        {
-            nextFilter.exceptionCaught( session, (Throwable) data );
-        }
-        else if( type == EventType.IDLE )
-        {
-            nextFilter.sessionIdle( session, (IdleStatus) data );
-        }
-        else if( type == EventType.OPENED )
-        {
-            nextFilter.sessionOpened( session );
-        }
-        else if( type == EventType.CLOSED )
-        {
-            nextFilter.sessionClosed( session );
-        }
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.WRITE, session, writeRequest) );
     }
 
-    public final void filterWrite( NextFilter nextFilter, IoSession session, WriteRequest writeRequest )
+    public final void filterClose( NextFilter nextFilter, IoSession session ) throws Exception
     {
-        nextFilter.filterWrite( session, writeRequest );
+        fireEvent( new IoFilterEvent(nextFilter, IoEventType.CLOSE, session, null) );
     }
 
-    public final void filterClose( NextFilter nextFilter, IoSession session ) throws Exception
+    protected final void processEvent( IoFilterEvent event )
     {
-        nextFilter.filterClose( session );
+        NextFilter nextFilter = event.getNextFilter();
+        IoSession session = event.getSession();
+        Object data = event.getParameter();
+        
+        switch (event.getType()) {
+        case MESSAGE_RECEIVED:
+            nextFilter.messageReceived(session, data);
+            break;
+        case MESSAGE_SENT:
+            nextFilter.messageSent( session, (WriteRequest) data );
+            break;
+        case WRITE:
+            nextFilter.filterWrite( session, (WriteRequest) data );
+            break;
+        case CLOSE:
+            nextFilter.filterClose( session );
+            break;
+        case EXCEPTION_CAUGHT:
+            nextFilter.exceptionCaught( session, (Throwable) data );
+            break;
+        case SESSION_IDLE:
+            nextFilter.sessionIdle( session, (IdleStatus) data );
+            break;
+        case SESSION_OPENED:
+            nextFilter.sessionOpened( session );
+            break;
+        case SESSION_CLOSED:
+            nextFilter.sessionClosed( session );
+            break;
+        default:
+            throw new InternalError("Unknown event type: " + event.getType());
+        }
     }
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java?view=diff&rev=555838&r1=555837&r2=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java Thu Jul 12 19:29:38 2007
@@ -24,6 +24,7 @@
 import java.util.concurrent.Executor;
 
 import org.apache.mina.common.IoFilterChain;
+import org.apache.mina.common.IoFilterEvent;
 import org.apache.mina.common.IoSession;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -72,10 +73,9 @@
         super( executor );
     }
 
-    protected void fireEvent( NextFilter nextFilter, IoSession session,
-                            EventType type, Object data )
+    protected void fireEvent(IoFilterEvent event)
     {
-        Event event = new Event( type, nextFilter, data );
+        IoSession session = event.getSession();
         SessionBuffer buf = SessionBuffer.getSessionBuffer( session );
 
         boolean execute;
@@ -123,7 +123,7 @@
         }
 
         private final IoSession session;
-        private final Queue<Event> eventQueue = new LinkedList<Event>();
+        private final Queue<IoFilterEvent> eventQueue = new LinkedList<IoFilterEvent>();
         private boolean processingCompleted = true;
 
         private SessionBuffer( IoSession session )
@@ -145,7 +145,7 @@
         {
             while( true )
             {
-                Event event;
+                IoFilterEvent event;
 
                 synchronized( buffer.eventQueue )
                 {
@@ -158,7 +158,7 @@
                     }
                 }
 
-                processEvent( event.getNextFilter(), buffer.session, event.getType(), event.getData() );
+                processEvent( event );
             }
 
             if ( logger.isDebugEnabled() ) {

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedExecutorFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedExecutorFilter.java?view=diff&rev=555838&r1=555837&r2=555838
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedExecutorFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedExecutorFilter.java Thu Jul 12 19:29:38 2007
@@ -22,7 +22,7 @@
 import java.util.concurrent.Executor;
 
 import org.apache.mina.common.IoFilterChain;
-import org.apache.mina.common.IoSession;
+import org.apache.mina.common.IoFilterEvent;
 
 /**
  * A filter that forwards I/O events to {@link Executor} to enforce a certain
@@ -69,27 +69,23 @@
         super(executor);
     }
 
-    protected void fireEvent( NextFilter nextFilter, IoSession session,
-                            EventType type, Object data )
+    protected void fireEvent( IoFilterEvent event )
     {
-        Event event = new Event( type, nextFilter, data );
-        getExecutor().execute(new ProcessEventRunnable(session, event));
+        getExecutor().execute(new ProcessEventRunnable(event));
     }
 
     private class ProcessEventRunnable implements Runnable
     {
-        private final IoSession session;
-        private final Event event;
+        private final IoFilterEvent event;
 
-        ProcessEventRunnable( IoSession session, Event event )
+        ProcessEventRunnable( IoFilterEvent event )
         {
-            this.session = session;
             this.event = event;
         }
 
         public void run()
         {
-            processEvent( event.getNextFilter(), session, event.getType(), event.getData() );
+            processEvent( event );
         }
     }
 }

Modified: mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java
URL: http://svn.apache.org/viewvc/mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java?view=diff&rev=555838&r1=555837&r2=555838
==============================================================================
--- mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java (original)
+++ mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLHandler.java Thu Jul 12 19:29:38 2007
@@ -33,6 +33,8 @@
 import javax.net.ssl.SSLSession;
 
 import org.apache.mina.common.DefaultWriteRequest;
+import org.apache.mina.common.IoEventType;
+import org.apache.mina.common.IoFilterEvent;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteFuture;
 import org.apache.mina.common.WriteRequest;
@@ -57,8 +59,8 @@
     private final SSLFilter parent;
     private final SSLContext ctx;
     private final IoSession session;
-    private final Queue<Event> preHandshakeEventQueue = new LinkedList<Event>();
-    private final Queue<Event> postHandshakeEventQueue = new ConcurrentLinkedQueue<Event>();
+    private final Queue<IoFilterEvent> preHandshakeEventQueue = new LinkedList<IoFilterEvent>();
+    private final Queue<IoFilterEvent> postHandshakeEventQueue = new ConcurrentLinkedQueue<IoFilterEvent>();
 
     private SSLEngine sslEngine;
 
@@ -250,31 +252,31 @@
 
     public void schedulePreHandshakeWriteRequest( NextFilter nextFilter, WriteRequest writeRequest )
     {
-        preHandshakeEventQueue.offer( new Event( EventType.FILTER_WRITE, nextFilter, writeRequest ) );
+        preHandshakeEventQueue.offer( new IoFilterEvent( nextFilter, IoEventType.WRITE, session, writeRequest ) );
     }
     
     public void flushPreHandshakeEvents() throws SSLException
     {
-        Event scheduledWrite;
+        IoFilterEvent scheduledWrite;
         
         while( ( scheduledWrite = preHandshakeEventQueue.poll() ) != null )
         {
             if( SessionLog.isDebugEnabled( session ) )
             {
-                SessionLog.debug( session, " Flushing buffered write request: " + scheduledWrite.data );
+                SessionLog.debug( session, " Flushing buffered write request: " + scheduledWrite.getParameter() );
             }
-            parent.filterWrite( scheduledWrite.nextFilter, session, ( WriteRequest ) scheduledWrite.data );
+            parent.filterWrite( scheduledWrite.getNextFilter(), session, ( WriteRequest ) scheduledWrite.getParameter() );
         }
     }
     
     public void schedulePostHandshakeWriteRequest( NextFilter nextFilter, WriteRequest writeRequest )
     {
-        postHandshakeEventQueue.offer( new Event( EventType.FILTER_WRITE, nextFilter, writeRequest ) );
+        postHandshakeEventQueue.offer( new IoFilterEvent( nextFilter, IoEventType.WRITE, session, writeRequest ) );
     }
     
     public void schedulePostHandshakeMessage( NextFilter nextFilter, Object message )
     {
-        postHandshakeEventQueue.offer( new Event( EventType.RECEIVED, nextFilter, message ) );
+        postHandshakeEventQueue.offer( new IoFilterEvent( nextFilter, IoEventType.MESSAGE_RECEIVED, session, message ) );
     }
 
     public void flushPostHandshakeEvents()
@@ -285,17 +287,17 @@
             return;
         }
         
-        Event e;
+        IoFilterEvent e;
         
         while( ( e = postHandshakeEventQueue.poll() ) != null )
         {
-            if( EventType.RECEIVED == e.type )
+            if( IoEventType.MESSAGE_RECEIVED == e.getType() )
             {
-                e.nextFilter.messageReceived( session, e.data );
+                e.getNextFilter().messageReceived( session, e.getParameter() );
             }
             else
             {
-                e.nextFilter.filterWrite( session, ( WriteRequest ) e.data );
+                e.getNextFilter().filterWrite( session, ( WriteRequest ) e.getParameter() );
             }
         }
     }
@@ -804,53 +806,5 @@
         copy.put( src );
         copy.flip();
         return copy;
-    }
-
-    private static class EventType
-    {
-        public static final EventType RECEIVED = new EventType( "RECEIVED" );
-        public static final EventType FILTER_WRITE = new EventType( "FILTER_WRITE" );
-
-        private final String value;
-
-        private EventType( String value )
-        {
-            this.value = value;
-        }
-
-        @Override
-        public String toString()
-        {
-            return value;
-        }
-    }
-
-    private static class Event
-    {
-        private final EventType type;
-        private final NextFilter nextFilter;
-        private final Object data;
-
-        Event( EventType type, NextFilter nextFilter, Object data )
-        {
-            this.type = type;
-            this.nextFilter = nextFilter;
-            this.data = data;
-        }
-
-        public Object getData()
-        {
-            return data;
-        }
-
-        public NextFilter getNextFilter()
-        {
-            return nextFilter;
-        }
-
-        public EventType getType()
-        {
-            return type;
-        }
     }
 }