View Javadoc
1   package com.atlassian.plugin.impl;
2   
3   /**
4    * This class represents a Plugin that was not able to be loaded by the PluginManager.
5    *
6    * @see com.atlassian.plugin.manager.DefaultPluginManager
7    */
8   public class UnloadablePlugin extends StaticPlugin {
9       private static final String UNKNOWN_KEY_PREFIX = "Unknown-";
10      private String errorText;
11      private boolean uninstallable = true;
12      private boolean deletable = true;
13      private boolean dynamic = false;
14  
15      public UnloadablePlugin() {
16          this(null);
17      }
18  
19      /**
20       * @param text The error text
21       * @since 2.0.0
22       */
23      public UnloadablePlugin(final String text) {
24          errorText = text;
25          setKey(UNKNOWN_KEY_PREFIX + System.identityHashCode(this));
26      }
27  
28      @Override
29      public boolean isUninstallable() {
30          return uninstallable;
31      }
32  
33      public void setDeletable(final boolean deletable) {
34          this.deletable = deletable;
35      }
36  
37      @Override
38      public boolean isDeleteable() {
39          return deletable;
40      }
41  
42      public void setUninstallable(final boolean uninstallable) {
43          this.uninstallable = uninstallable;
44      }
45  
46      @Override
47      public boolean isEnabledByDefault() {
48          return false;
49      }
50  
51      public String getErrorText() {
52          return errorText;
53      }
54  
55      public void setErrorText(final String errorText) {
56          this.errorText = errorText;
57      }
58  
59      @Override
60      public boolean isDynamicallyLoaded() {
61          return dynamic;
62      }
63  
64      public void setDynamicallyLoaded(boolean dynamic) {
65          this.dynamic = dynamic;
66      }
67  
68      @Override
69      public void close() {
70      }
71  
72      @Override
73      protected void uninstallInternal() {
74          if (!uninstallable) {
75              // should throw exception
76              super.uninstallInternal();
77          }
78      }
79  
80      @Override
81      public String toString() {
82          return super.toString() + " " + errorText;
83      }
84  }