1 package com.atlassian.plugin.impl;
2
3
4
5
6
7
8 public class UnloadablePlugin extends StaticPlugin
9 {
10 private static final String UNKNOWN_KEY_PREFIX = "Unknown-";
11 private String errorText;
12 private boolean uninstallable = true;
13 private boolean deletable = true;
14 private boolean dynamic = false;
15
16 public UnloadablePlugin()
17 {
18 this(null);
19 }
20
21
22
23
24
25 public UnloadablePlugin(final String text)
26 {
27 errorText = text;
28 setKey(UNKNOWN_KEY_PREFIX + System.identityHashCode(this));
29 }
30
31 @Override
32 public boolean isUninstallable()
33 {
34 return uninstallable;
35 }
36
37 public void setDeletable(final boolean deletable)
38 {
39 this.deletable = deletable;
40 }
41
42 @Override
43 public boolean isDeleteable()
44 {
45 return deletable;
46 }
47
48 public void setUninstallable(final boolean uninstallable)
49 {
50 this.uninstallable = uninstallable;
51 }
52
53 @Override
54 public boolean isEnabledByDefault()
55 {
56 return false;
57 }
58
59 public String getErrorText()
60 {
61 return errorText;
62 }
63
64 public void setErrorText(final String errorText)
65 {
66 this.errorText = errorText;
67 }
68
69 @Override
70 public boolean isDynamicallyLoaded()
71 {
72 return dynamic;
73 }
74
75 public void setDynamicallyLoaded(boolean dynamic)
76 {
77 this.dynamic = dynamic;
78 }
79
80 @Override
81 public void close()
82 {}
83
84 @Override
85 protected void uninstallInternal()
86 {
87 if (!uninstallable)
88 {
89
90 super.uninstallInternal();
91 }
92 }
93
94 @Override
95 public String toString()
96 {
97 return super.toString() + " " + errorText;
98 }
99 }