1 // 2 // This file is part of the prose package. 3 // 4 // The contents of this file are subject to the Mozilla Public License 5 // Version 1.1 (the "License"); you may not use this file except in 6 // compliance with the License. You may obtain a copy of the License at 7 // http://www.mozilla.org/MPL/ 8 // 9 // Software distributed under the License is distributed on an "AS IS" basis, 10 // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11 // for the specific language governing rights and limitations under the 12 // License. 13 // 14 // The Original Code is prose. 15 // 16 // The Initial Developer of the Original Code is Andrei Popovici. Portions 17 // created by Andrei Popovici are Copyright (C) 2002 Andrei Popovici. 18 // All Rights Reserved. 19 // 20 // Contributor(s): 21 // $Id: CompositePointFilter.java,v 1.2 2003/07/17 13:11:08 apopovic Exp $ 22 // ===================================================================== 23 // 24 // (history at end) 25 // 26 27 package ch.ethz.prose.filter; 28 29 // used packages 30 import java.util.List; 31 32 /** 33 * Interface CompositePointFilter must (or can) be implemented 34 * by PointFilters which are composed out of sub-PointFilters. For instance, 35 * a PointFilter may be a <code>AND</code> combination of two 36 * other PointFilters. 37 * 38 * A composite PointFilter is a <em>shallow</em> container. 39 * That is, one of the members might be a CompositePointFilter itself, 40 * meaning that the sub-sub-components should not 41 * be returned as part of the <code>memberPointFilters</code> result. 42 * 43 * @version $Revision: 1.2 $ 44 * @author Andrei Popovici 45 */ 46 public abstract 47 class CompositePointFilter extends PointFilter { 48 49 /** Return the PointFilters contained in this composite PointFilter. 50 */ 51 public abstract List memberPointFilters(); 52 53 } 54 55 56 //====================================================================== 57 // 58 // $Log: CompositePointFilter.java,v $ 59 // Revision 1.2 2003/07/17 13:11:08 apopovic 60 // refactorization: from PointFilter.memberSpecializers to PointFilter.memberPointFilters; 61 // improved documentation (removed references to specializers) 62 // 63 // Revision 1.1.1.1 2003/07/02 15:30:51 apopovic 64 // Imported from ETH Zurich 65 // 66 // Revision 1.1 2003/05/05 13:57:51 popovici 67 // renaming from runes to prose 68 // 69 // Revision 1.1 2003/04/27 13:08:51 popovici 70 // Specializers renamed to PointCutter 71 // 72 // Revision 1.2 2003/03/04 18:36:30 popovici 73 // Organization of imprts 74 // 75 // Revision 1.1 2002/05/07 10:46:56 popovici 76 // Reorganization of the Specializer package. All specializer related classes 77 // moved to ch.ethz.inf.crossucut.spec; Classes ORingPointCutter, ANDspecializer and NOTspecializer is 78 // introduced, the static analysis of filtering simplified, because now specializers 79 // contain a field 'filterType' which is propagated to the root of composite specializers. junit packages updated accordingly 80 // 81 // Revision 1.2 2002/03/28 13:48:41 popovici 82 // Mozilla-ified 83 // 84 // Revision 1.1 2002/02/21 12:39:51 popovici 85 // Specializer inspection issues: 86 // - CompositeSpecialiers now allow specializer inspection - AbstractCrosscutSpecs are now composite 87 // - AbstractCrosscutSpecs define defaults for isSpecialEvent 88 // to allow inspection of subclasses (of those overrinding the 89 // defaults) 90 // 91