1
2
3
4
5 package org.directdemocracyportal.democracy.model.world;
6
7 import java.util.HashSet;
8 import java.util.Set;
9
10 import javax.persistence.CascadeType;
11 import javax.persistence.Entity;
12 import javax.persistence.FetchType;
13 import javax.persistence.OneToMany;
14 import javax.persistence.Transient;
15
16 import org.directdemocracyportal.democracy.model.core.Role;
17 import org.hibernate.annotations.Cache;
18 import org.hibernate.annotations.CacheConcurrencyStrategy;
19
20 /***
21 * The Class Government.
22 */
23 @Entity
24 @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
25 public class Government extends Organisation
26 {
27
28 /***
29 * The Enum GovernmentRoles.
30 */
31 public enum GovernmentRoles {
32
33 /*** The Head_of_ state. */
34 Head_of_State
35 };
36
37 /*** The Constant serialVersionUID. */
38 private static final long serialVersionUID = -946981671229247412L;
39
40 /*** The Government type. */
41 private GovernmentType GovernmentType;
42
43 /*** The elections. */
44 private Set<Election> elections = new HashSet<Election>();
45
46 /***
47 * Instantiates a new government.
48 */
49 public Government() {
50 }
51
52 /***
53 * Gets the government type.
54 *
55 * @return the government type
56 */
57 public GovernmentType getGovernmentType() {
58 return GovernmentType;
59 }
60
61 /***
62 * Sets the government type.
63 *
64 * @param GovernmentType the new government type
65 */
66 public void setGovernmentType(GovernmentType GovernmentType) {
67 this.GovernmentType = GovernmentType;
68 }
69
70 /***
71 * Gets the elections.
72 *
73 * @return the elections
74 */
75 @OneToMany(mappedBy = "government", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
76 public Set<Election> getElections() {
77 return elections;
78 }
79
80 /***
81 * Sets the elections.
82 *
83 * @param elections the new elections
84 */
85 public void setElections(Set<Election> elections) {
86 this.elections = elections;
87 }
88
89 /***
90 * Gets the headof state.
91 *
92 * @return the headof state
93 */
94 @Transient
95 public Person getHeadofState() {
96 for (Role role : getDefinedRoles()) {
97 if (role.getName().equals(GovernmentRoles.Head_of_State.toString())) {
98 return (Person) role.getPlayers().iterator().next();
99 }
100 }
101 return null;
102 }
103 }