1 package twcsckernel.serverKernel.plugins;
2
3 import twcsckernel.projectbase.plugins.PluginDescriptor;
4
5 /***
6 * Uchwyt plugina na serwerze zawierający komplet informacji tj.: deskryptor,
7 * ścieżki do plików JAR klienta i serwera oraz instancję PluginBuildera
8 * (o ile plugina pracuje w trybie zdalnymm czyli deskryptor.isRemote==true).
9 *
10 * @author VMD Group
11 *
12 */
13 public class PluginHandle {
14
15 /***
16 * Deskryptor plugina.
17 */
18 public final PluginDescriptor descriptor;
19
20 private final String pluginPath;
21
22 private final String serverFilename;
23
24 private final String clientFilename;
25
26 private final byte[] clientPluginData;
27
28 /***
29 * klasa serwerowej części plugina - jeśli plugin nie jest przeznaczony do
30 * pracy zdalnej, to wartością jest <code>null</code>.
31 */
32 public final PluginBuilder serverPluginBuilder;
33
34 /***
35 * @return ścieżka do JARa serwerowej części plugina - jeśli plugin nie
36 * posiada części serwerowej, to wartością jest <code>null</code>.
37 */
38 public String getServerJarPath() {
39 if (descriptor.isRemote)
40 return pluginPath + "/" + serverFilename;
41 else
42 return null;
43 }
44
45 /***
46 * @return ścieżka do JARa klienckiej części plugina.
47 */
48 public String getClientJarPath() {
49 return pluginPath + "/" + clientFilename;
50 }
51
52 /***
53 * Metoda zwraca binarną postać pliku JAR klienckiej części plugina.
54 * @return - binarna postać pliku JAR klienta
55 */
56 public byte[] getClientPluginData() {
57
58
59
60
61
62 return clientPluginData;
63 }
64
65 public PluginHandle(PluginBuilder serverPluginBuilder,
66 PluginDescriptor descriptor, String pluginPath,
67 String serverFilename, String clientFilename, byte[] clientPluginData) {
68 this.clientFilename = clientFilename;
69 this.descriptor = descriptor;
70 this.pluginPath = pluginPath;
71 this.serverFilename = serverFilename;
72 this.serverPluginBuilder = serverPluginBuilder;
73 this.clientPluginData=clientPluginData;
74 }
75
76 }