1 /* 2 * Copyright (C) 2003 Christian Cryder [christianc@granitepeaks.com] 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * 18 * $Id: Exceptional.java,v 1.5 2004/02/01 05:16:28 christianc Exp $ 19 */ 20 package org.enhydra.barracuda.core.event; 21 22 import java.io.*; 23 import java.util.*; 24 25 /** 26 * This marker interface indicates an Event must be handled, and if 27 * it's not, the parent event should be dispatched. This is 28 * kind of the opposite meaning of the Polymorphic interface. 29 * 30 * Events should never indicate both Exceptional and Polymorphic 31 * (and can't because both of these interfaces define 32 * describeEventChainingStrategy()) 33 */ 34 public interface Exceptional { 35 /** 36 * Describe the event chaining stategy. This method really 37 * just serves to ensure that objects cannot implement BOTH 38 * Polymorphic and Exceptional (it's got to be one or the other) 39 * 40 * @return string describing the event chain strategy 41 */ 42 public String describeEventChainingStrategy(); 43 } 44