1 package com.atlassian.plugin.impl;
2
3
4
5
6
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
21
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
76 super.uninstallInternal();
77 }
78 }
79
80 @Override
81 public String toString() {
82 return super.toString() + " " + errorText;
83 }
84 }