01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //limitations under the License.
10: //
11: //The Original Code is "The Columba Project"
12: //
13: //The Initial Developers of the Original Code are Frederik Dietz and Timo
14: // Stich.
15: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16: //
17: //All Rights Reserved.
18: package org.columba.api.plugin;
19:
20: /**
21: * An extension providing the metadata of an extension and the runtime
22: * context for instanciation.
23: *
24: * @author fdietz
25: */
26: public interface IExtension {
27:
28: /**
29: * Get extension metadata, describing the extension and the
30: * runtime context.
31: *
32: * @return
33: */
34: public ExtensionMetadata getMetadata();
35:
36: /**
37: * Instanciate the extension. Method automatically uses the
38: * constructor matching the argument list
39: *
40: * @param arguments argument array
41: * @return extension instance
42: * @throws PluginException
43: */
44: public IExtensionInterface instanciateExtension(Object[] arguments)
45: throws PluginException;
46:
47: /**
48: * Check if this is an internal extension. If its an external
49: * extension, then its specified using the <code>plugin.xml</code
50: * file and uses a different classloader.
51: *
52: * @return true, if extension is internal. False, otherwise.
53: *
54: */
55: public boolean isInternal();
56:
57: /**
58: * An extension can be disabled if an error occured on instanciation.
59: * @return true, if enabled. False, otherwise.
60: */
61: public boolean isEnabled();
62:
63: }
|