01: //
02: // This file is part of the prose package.
03: //
04: // The contents of this file are subject to the Mozilla Public License
05: // Version 1.1 (the "License"); you may not use this file except in
06: // compliance with the License. You may obtain a copy of the License at
07: // http://www.mozilla.org/MPL/
08: //
09: // 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 class CompositePointFilter extends PointFilter {
47:
48: /** Return the PointFilters contained in this composite PointFilter.
49: */
50: public abstract List memberPointFilters();
51:
52: }
53:
54: //======================================================================
55: //
56: // $Log: CompositePointFilter.java,v $
57: // Revision 1.2 2003/07/17 13:11:08 apopovic
58: // refactorization: from PointFilter.memberSpecializers to PointFilter.memberPointFilters;
59: // improved documentation (removed references to specializers)
60: //
61: // Revision 1.1.1.1 2003/07/02 15:30:51 apopovic
62: // Imported from ETH Zurich
63: //
64: // Revision 1.1 2003/05/05 13:57:51 popovici
65: // renaming from runes to prose
66: //
67: // Revision 1.1 2003/04/27 13:08:51 popovici
68: // Specializers renamed to PointCutter
69: //
70: // Revision 1.2 2003/03/04 18:36:30 popovici
71: // Organization of imprts
72: //
73: // Revision 1.1 2002/05/07 10:46:56 popovici
74: // Reorganization of the Specializer package. All specializer related classes
75: // moved to ch.ethz.inf.crossucut.spec; Classes ORingPointCutter, ANDspecializer and NOTspecializer is
76: // introduced, the static analysis of filtering simplified, because now specializers
77: // contain a field 'filterType' which is propagated to the root of composite specializers. junit packages updated accordingly
78: //
79: // Revision 1.2 2002/03/28 13:48:41 popovici
80: // Mozilla-ified
81: //
82: // Revision 1.1 2002/02/21 12:39:51 popovici
83: // Specializer inspection issues:
84: // - CompositeSpecialiers now allow specializer inspection - AbstractCrosscutSpecs are now composite
85: // - AbstractCrosscutSpecs define defaults for isSpecialEvent
86: // to allow inspection of subclasses (of those overrinding the
87: // defaults)
88: //
|