1 package com.atlassian.plugin.metadata;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4 import com.atlassian.plugin.Plugin;
5
6 /**
7 * Describes whether plugins are required or provided by the host application.
8 *
9 * @since 2.6
10 */
11 interface PluginMetadata {
12 /**
13 * Is the {@link Plugin} provided by (bundled with) the application.
14 *
15 * @param plugin the plugin
16 * @return true if the application bundled the plugin.
17 */
18 boolean applicationProvided(Plugin plugin);
19
20 /**
21 * Is the {@link Plugin} required by the application for basic operation.
22 *
23 * @param plugin the plugin
24 * @return true if the application requires the plugin.
25 */
26 boolean required(Plugin plugin);
27
28 /**
29 * Is the {@link ModuleDescriptor} required by the application for basic
30 * operation.
31 *
32 * @param descriptor the module descriptor
33 * @return true if the application requires the module descriptor.
34 */
35 boolean required(ModuleDescriptor<?> descriptor);
36
37 }