source: pypartiesserver/src/main/java/geniusweb/partiesserver/repository/AvailablePythonParty.java@ 2

Last change on this file since 2 was 2, checked in by bart, 3 years ago

Added SAOP and simplerunner to GeniusWebPython. Several minor fixes.

File size: 2.4 KB
Line 
1package geniusweb.partiesserver.repository;
2
3import java.io.IOException;
4
5import geniusweb.actions.PartyId;
6import geniusweb.javavenv.PythonPartyFactory;
7import geniusweb.party.Capabilities;
8import geniusweb.party.Party;
9
10/**
11 * An approved and ready to run party.
12 */
13public class AvailablePythonParty implements AvailableParty {
14
15 private final PythonPartyFactory partyfactory;
16 private final String name;
17
18 /**
19 *
20 * @param name the filename. This is not a {@link PartyId}.
21 * @param partyfactory the {@link PythonPartyFactory} for the party.
22 */
23 public AvailablePythonParty(String name, PythonPartyFactory partyfactory)
24 throws ClassNotFoundException {
25 this.name = name;
26 this.partyfactory = partyfactory;
27 }
28
29 @Override
30 public String getID() {
31 return name;
32 }
33
34 @Override
35 public String getName() {
36 return name;
37 }
38
39 /**
40 *
41 * @return cached copy of what was received from a call to
42 * {@link Party#getDescription()}.
43 */
44 @Override
45 public String getDescription() {
46 return partyfactory.getDescription();
47 }
48
49 /**
50 *
51 * @return cached copy of what was received from a call to
52 * {@link AvailableParty#getCapabilities()}
53 */
54 @Override
55 public Capabilities getCapabilities() {
56 return partyfactory.getCapabilites();
57 }
58
59 @Override
60 public Party getInstance() throws InstantiationFailedException {
61 try {
62 return partyfactory.getInstance();
63 } catch (IOException e) {
64 throw new InstantiationFailedException(
65 "Failed to create instance of " + name, e);
66 }
67 }
68
69 @Override
70 public void free() {
71 partyfactory.close();
72 }
73
74 @Override
75 public int hashCode() {
76 final int prime = 31;
77 int result = 1;
78 result = prime * result + ((name == null) ? 0 : name.hashCode());
79 result = prime * result
80 + ((partyfactory == null) ? 0 : partyfactory.hashCode());
81 return result;
82 }
83
84 @Override
85 public boolean equals(Object obj) {
86 if (this == obj)
87 return true;
88 if (obj == null)
89 return false;
90 if (getClass() != obj.getClass())
91 return false;
92 AvailablePythonParty other = (AvailablePythonParty) obj;
93 if (name == null) {
94 if (other.name != null)
95 return false;
96 } else if (!name.equals(other.name))
97 return false;
98 if (partyfactory == null) {
99 if (other.partyfactory != null)
100 return false;
101 } else if (!partyfactory.equals(other.partyfactory))
102 return false;
103 return true;
104 }
105
106 @Override
107 public String toString() {
108 return name + " (" + partyfactory + ")";
109 }
110
111}
Note: See TracBrowser for help on using the repository browser.