1 package com.atlassian.plugin.parsers;
2
3 import com.atlassian.plugin.Plugin;
4 import com.atlassian.plugin.ModuleDescriptorFactory;
5 import com.atlassian.plugin.PluginParseException;
6 import com.atlassian.plugin.PluginInformation;
7
8 /**
9 * Interface for parsing a plugin descriptor file, e.g. atlassian-plugin.xml.
10 *
11 * @see XmlDescriptorParser
12 * @see DescriptorParserFactory
13 */
14 public interface DescriptorParser
15 {
16 /**
17 * Sets the configuration on the plugin argument to match the configuration specified in the
18 * plugin descriptor (typically an XML file).
19 *
20 * @param moduleDescriptorFactory a factory for instantiating the required plugin modules
21 * @param plugin the plugin whose configuration will be modified
22 * @return the original plugin with the configuration changed and the module descriptors added
23 * @throws PluginParseException if there was an error getting information about the plugin
24 */
25 Plugin configurePlugin(ModuleDescriptorFactory moduleDescriptorFactory, Plugin plugin) throws PluginParseException;
26
27 /**
28 * @return the key of the plugin specified in the descriptor
29 */
30 String getKey();
31
32 /**
33 * @return true if this plugin is marked as a system plugin in the descriptor. This should only be
34 * acted on by plugin loaders which can trust their plugins implicitly (e.g. a classpath plugin
35 * loader).
36 */
37 boolean isSystemPlugin();
38
39 /**
40 * @return The version of the plugin system expected by this plugin. If unknown, it is assumed to be 1.
41 */
42 int getPluginsVersion();
43
44 PluginInformation getPluginInformation();
45 }