1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package net.sf.jguard.core.provisioning;
30
31 import java.util.HashSet;
32 import java.util.Set;
33 import net.sf.jguard.core.authentication.credentials.JGuardCredential;
34 import net.sf.jguard.core.organization.Organization;
35 import net.sf.jguard.core.principals.PrincipalUtils;
36
37
38
39
40
41 public class OrganizationTemplate extends EntityTemplate{
42
43 private Set credentials;
44
45 private SubjectTemplate subjectTemplate;
46 private Long id;
47 public static final String ORGANIZATION_TEMPLATE = "organizationTemplate";
48 private Set principals;
49
50 public OrganizationTemplate(){
51 super();
52 credentials = new HashSet();
53 subjectTemplate = new SubjectTemplate();
54 principals = new HashSet();
55 }
56
57 public OrganizationTemplate(Organization organization){
58 super();
59 credentials = new HashSet(organization.getCredentials());
60 principals = organization.getPrincipals();
61 subjectTemplate = organization.getSubjectTemplate();
62 principals = new HashSet();
63 }
64
65
66
67
68
69
70
71
72 public Organization buildOrganization(OrganizationTemplate orga){
73
74 Set principalsForRegisteredUsers = new HashSet();
75 principalsForRegisteredUsers.addAll((getPrincipals()));
76 Set allCredentials = new HashSet(orga.getCredentials());
77 Set creds = allCredentials;
78 Set principalsForOrganization = new HashSet();
79
80 principalsForOrganization.addAll((getPrincipals()));
81 Organization organization = new Organization();
82 organization.setCredentials(creds);
83 organization.setPrincipals(principalsForOrganization);
84 organization.setSubjectTemplate(orga.getSubjectTemplate());
85 return organization;
86 }
87
88
89
90
91
92 public Organization toOrganization(){
93 return buildOrganization(this);
94 }
95
96
97
98
99
100
101 public void validateTemplate(OrganizationTemplate organizationCandidate) {
102 if(organizationCandidate==null){
103 throw new IllegalArgumentException(" organizationTemplate is null ");
104 }
105 Set requiredCredentialsFromCandidate = organizationCandidate.getCredentials();
106 if(requiredCredentialsFromCandidate==null){
107 requiredCredentialsFromCandidate = new HashSet();
108 organizationCandidate.setCredentials(requiredCredentialsFromCandidate);
109 }
110 EntityTemplate.filterCredentialSet(this.credentials,requiredCredentialsFromCandidate);
111
112 }
113
114 public SubjectTemplate getSubjectTemplate() {
115 return subjectTemplate;
116 }
117
118 public void setSubjectTemplate(SubjectTemplate subjectTemplate) {
119 this.subjectTemplate = subjectTemplate;
120 }
121
122 public Set getCredentials() {
123 return credentials;
124 }
125
126 public void setCredentials(Set credentials) {
127 this.credentials = credentials;
128 }
129
130 public Object clone() throws CloneNotSupportedException {
131 OrganizationTemplate clone = new OrganizationTemplate();
132 clone.setSubjectTemplate((SubjectTemplate)subjectTemplate.clone());
133 clone.setPrincipals(PrincipalUtils.clonePrincipalsSet(principals));
134 clone.setCredentials(JGuardCredential.cloneCredentialsSet(credentials));
135 return clone;
136 }
137
138 public Long getId() {
139 return id;
140 }
141
142 public void setId(Long id) {
143 this.id = id;
144 }
145 public Set getPrincipals() {
146 return principals;
147 }
148
149
150
151
152 public void setPrincipals(Set principals) {
153 this.principals = principals;
154 }
155
156
157 }