1 package com.atlassian.plugin;
2
3 /**
4 * Methods that are necessary for the plugin framework, however should not be exposed via public API.
5 *
6 * @since v4.0
7 */
8 public interface PluginInternal extends Plugin {
9 /**
10 * Alters whether the plugin is a "bundled" plugin that can't be removed.
11 *
12 * @param bundledPlugin {@code true} if this plugin is a "bundled" plugin.
13 * @since 4.0
14 */
15 void setBundledPlugin(final boolean bundledPlugin);
16
17
18 /**
19 * Add a module descriptor.
20 *
21 * @param module to add
22 * @return true if added, false if already present
23 * @since 4.0
24 */
25 boolean addDynamicModuleDescriptor(final ModuleDescriptor<?> module);
26
27 /**
28 * @return current set of dynamic module descriptors.
29 * @since 4.0
30 */
31 Iterable<ModuleDescriptor<?>> getDynamicModuleDescriptors();
32
33 /**
34 * Remove a module descriptor.
35 *
36 * @param module to remove
37 * @return true if removed, false if not present
38 * @since 4.0
39 */
40 boolean removeDynamicModuleDescriptor(final ModuleDescriptor<?> module);
41 }