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: Surrogate.java,v 1.1.1.1 2003/07/02 15:30:52 apopovic Exp $
22: // =====================================================================
23: //
24: // (history at end)
25: //
26:
27: package ch.ethz.prose.query;
28:
29: // used packages
30: import java.io.Serializable;
31:
32: /**
33: * Class Surrogate is the superclass of all Surrogate classe like
34: * MethodSurrogate, FieldSurrogate, ClassSurrogate or JoinPointRequestSurrogate.
35: *
36: * @version $Revision: 1.1.1.1 $
37: * @author Philippe Schoch
38: */
39: public abstract class Surrogate implements Serializable {
40:
41: public abstract Object toRealInstance()
42: throws ClassNotFoundException, NoSuchFieldException,
43: NoSuchMethodException;
44:
45: public abstract String getName();
46:
47: public abstract int hashCode();
48:
49: public abstract boolean equals(Object o);
50:
51: }
52:
53: //======================================================================
54: //
55: // $Log: Surrogate.java,v $
56: // Revision 1.1.1.1 2003/07/02 15:30:52 apopovic
57: // Imported from ETH Zurich
58: //
59: // Revision 1.3 2003/05/20 16:05:10 popovici
60: //
61: // New QueryManager replaces functionality in AspectManager (better Soc)
62: // New 'Surrogate' classes for usage in the QueryManager
63: // The 'RemoteAspectManager' and tools modified to use the Surrogates and the QueryManager
64: //
65: // Revision 1.2 2003/05/06 15:51:52 popovici
66: // Mozilla-ification
67: //
68: // Revision 1.1 2003/05/05 13:58:22 popovici
69: // renaming from runes to prose
70: //
71: // Revision 1.3 2003/04/17 15:14:58 popovici
72: // Extension->Aspect renaming
73: //
74: // Revision 1.2 2003/03/04 18:36:03 popovici
75: // Organization of imprts
76: //
77: // Revision 1.1 2003/01/17 14:43:59 pschoch
78: // Introduction of 'query' methods in the AspectManager and its
79: // subclasses. The result set is given back in form of surrogates; 4 new tests added to ExtensionManagerTest
80: // ExtensionSystemTest
81: //
|