01: /*=============================================================================
02: * Copyright Texas Instruments 2002. All Rights Reserved.
03: *
04: * This program is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * This program 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
12: * GNU General Public License for more details.
13: *
14: * You should have received a copy of the GNU General Public License
15: * along with this program; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package ti.chimera;
20:
21: /**
22: * Resources are tracked by a plugin. A plugin is active whenever there are
23: * installed resources. If a resource is <code>managed</code>, then it is not
24: * installed immediately, but instead it is automatically installed when the
25: * plugin becomes active, and uninstalled when the plugin becomes inactive. A
26: * unmanaged resource is installed as soon as it is added, and uninstalled as
27: * soon as it is removed.
28: *
29: * @author Rob Clark
30: * @version 0.1
31: */
32: public abstract class Resource {
33: private boolean managed;
34:
35: /**
36: * Class Constructor.
37: *
38: * @param managed flag to indicate whether this is a managed resource
39: */
40: public Resource(boolean managed) {
41: this .managed = managed;
42: }
43:
44: /**
45: * Is this a managed resource? Bad things will happen if the resource
46: * changes from managed to unmanaged, or visa versa, which is why this
47: * method is final.
48: */
49: public final boolean isManaged() {
50: return managed;
51: }
52:
53: /**
54: * This method is called when the resource is installed. It should be
55: * overloaded by the derived class to perform whatever steps are necessary
56: * to install this resource.
57: *
58: * @see #uninstall
59: */
60: public abstract void install();
61:
62: /**
63: * This method is called when the resource is uninstalled. It should be
64: * overloaded by the derived class to perform whatever steps are necessary
65: * to uninstall the resources. It should be the inverse of {@link #install}.
66: *
67: * @see #install
68: */
69: public abstract void uninstall();
70: }
71:
72: /*
73: * Local Variables:
74: * tab-width: 2
75: * indent-tabs-mode: nil
76: * mode: java
77: * c-indentation-style: java
78: * c-basic-offset: 2
79: * eval: (c-set-offset 'substatement-open '0)
80: * eval: (c-set-offset 'case-label '+)
81: * eval: (c-set-offset 'inclass '+)
82: * eval: (c-set-offset 'inline-open '0)
83: * End:
84: */
|