annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/SampleSearch07.java @ 188:34ac2e1b323a

new Clean UI to find non-public digitalizations of public codices and make them public.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Tue, 06 Nov 2018 20:05:49 +0100
parents 2e911857a759
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.search.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.io.Serializable;
jurzua
parents:
diff changeset
4 import java.util.ArrayList;
jurzua
parents:
diff changeset
5 import java.util.List;
jurzua
parents:
diff changeset
6 import java.util.Map;
jurzua
parents:
diff changeset
7
jurzua
parents:
diff changeset
8 import javax.faces.event.ActionEvent;
jurzua
parents:
diff changeset
9 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
10
jurzua
parents:
diff changeset
11 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
12 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
13 import org.mpi.openmind.search.utils.ResultEntry;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.search.utils.SAttributeMultipleName;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.search.utils.SAttributeUniqueName;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.search.utils.SEntity;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.search.utils.SRelation;
jurzua
parents:
diff changeset
18 import org.mpi.openmind.search.utils.SRelationMultipleName;
jurzua
parents:
diff changeset
19 import org.mpi.openmind.search.utils.SRelationUniqueName;
jurzua
parents:
diff changeset
20
jurzua
parents:
diff changeset
21 import de.mpiwg.itgroup.ismi.entry.beans.ApplicationBean;
jurzua
parents:
diff changeset
22
jurzua
parents:
diff changeset
23 /**
jurzua
parents:
diff changeset
24 * 7) Bring up people associated with a particular witness
jurzua
parents:
diff changeset
25 * (not just one huge list of people, but be able to distinguish owner, say, from commentator)
jurzua
parents:
diff changeset
26 * @author jurzua
jurzua
parents:
diff changeset
27 *
jurzua
parents:
diff changeset
28 */
jurzua
parents:
diff changeset
29 public class SampleSearch07 extends AbstractQuery implements Serializable{
jurzua
parents:
diff changeset
30 private static final long serialVersionUID = 55883896148547918L;
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 private String personName;
jurzua
parents:
diff changeset
33 private String roleName = "Author";
jurzua
parents:
diff changeset
34 private static List<SelectItem> roleList;
jurzua
parents:
diff changeset
35 private List<ResultEntry07> rs;
jurzua
parents:
diff changeset
36
jurzua
parents:
diff changeset
37 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
38 static{
jurzua
parents:
diff changeset
39 roleList = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
40 roleList.add(new SelectItem("Author"));
jurzua
parents:
diff changeset
41 roleList.add(new SelectItem("Annotator"));
jurzua
parents:
diff changeset
42 roleList.add(new SelectItem("Copyist"));
jurzua
parents:
diff changeset
43 roleList.add(new SelectItem("Corrector"));
jurzua
parents:
diff changeset
44 roleList.add(new SelectItem("Dedicatee"));
jurzua
parents:
diff changeset
45 roleList.add(new SelectItem("Illuminator"));
jurzua
parents:
diff changeset
46 roleList.add(new SelectItem("Illustrator"));
jurzua
parents:
diff changeset
47 roleList.add(new SelectItem("Owner"));
jurzua
parents:
diff changeset
48 roleList.add(new SelectItem("Patron"));
jurzua
parents:
diff changeset
49 roleList.add(new SelectItem("Inspector"));
jurzua
parents:
diff changeset
50 }
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52
jurzua
parents:
diff changeset
53 public SampleSearch07(ApplicationBean appBean){
jurzua
parents:
diff changeset
54 super(appBean);
jurzua
parents:
diff changeset
55 }
jurzua
parents:
diff changeset
56
jurzua
parents:
diff changeset
57 @Override
jurzua
parents:
diff changeset
58 public void reset(){
jurzua
parents:
diff changeset
59 super.reset();
jurzua
parents:
diff changeset
60 this.personName = null;
jurzua
parents:
diff changeset
61 this.roleName = "Author";
jurzua
parents:
diff changeset
62 this.rs = null;
jurzua
parents:
diff changeset
63 }
jurzua
parents:
diff changeset
64
jurzua
parents:
diff changeset
65 @Override
jurzua
parents:
diff changeset
66 protected void search(){
jurzua
parents:
diff changeset
67 List<ResultEntry> rs0 = this.execute(personName, roleName);
jurzua
parents:
diff changeset
68 //this.printRs(rs, this.appBean.getWrapper());
jurzua
parents:
diff changeset
69
jurzua
parents:
diff changeset
70 this.rs = new ArrayList<SampleSearch07.ResultEntry07>();
jurzua
parents:
diff changeset
71
jurzua
parents:
diff changeset
72 int count = 0;
jurzua
parents:
diff changeset
73 for(ResultEntry re : rs0){
jurzua
parents:
diff changeset
74 Entity person = getOm().getEntityById(re.getEntMap().get(1));
jurzua
parents:
diff changeset
75 Entity witness = getOm().getEntityById(re.getEntMap().get(2));
jurzua
parents:
diff changeset
76 String witness2Person = re.getRel(2, 1);
jurzua
parents:
diff changeset
77 rs.add(new ResultEntry07(
jurzua
parents:
diff changeset
78 person.getId(), person.getOwnValue(),
jurzua
parents:
diff changeset
79 witness.getId(), witness.getOwnValue(),
jurzua
parents:
diff changeset
80 this.roleName, witness2Person));
jurzua
parents:
diff changeset
81 count++;
jurzua
parents:
diff changeset
82 if(count >= MAX_RS){
jurzua
parents:
diff changeset
83 break;
jurzua
parents:
diff changeset
84 }
jurzua
parents:
diff changeset
85 }
jurzua
parents:
diff changeset
86 }
jurzua
parents:
diff changeset
87
jurzua
parents:
diff changeset
88 private List<ResultEntry> execute(String personName, String roleName){
jurzua
parents:
diff changeset
89
jurzua
parents:
diff changeset
90 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
91 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
92
jurzua
parents:
diff changeset
93 //The user can select between:
jurzua
parents:
diff changeset
94 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
95 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
96 role.addAtt(new SAttributeUniqueName("name", roleName));
jurzua
parents:
diff changeset
97 entFilters.add(role);
jurzua
parents:
diff changeset
98
jurzua
parents:
diff changeset
99 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
100 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
101 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
102 if(StringUtils.isNotEmpty(personName)){
jurzua
parents:
diff changeset
103 person.addAtt(new SAttributeMultipleName(personName, "name_translit", "name"));
jurzua
parents:
diff changeset
104 }
jurzua
parents:
diff changeset
105 entFilters.add(person);
jurzua
parents:
diff changeset
106
jurzua
parents:
diff changeset
107 SEntity witness = new SEntity(2, "WITNESS");
jurzua
parents:
diff changeset
108 entFilters.add(witness);
jurzua
parents:
diff changeset
109
jurzua
parents:
diff changeset
110
jurzua
parents:
diff changeset
111 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
112 SRelationMultipleName witness_to_person = new SRelationMultipleName(witness, person, "had_patron", "was_copied_by", "was_created_by", "was_studied_by");
jurzua
parents:
diff changeset
113 relFilters.add(witness_to_person);
jurzua
parents:
diff changeset
114 relFilters.add(has_role);
jurzua
parents:
diff changeset
115
jurzua
parents:
diff changeset
116 return this.appBean.getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
117 }
jurzua
parents:
diff changeset
118
jurzua
parents:
diff changeset
119 public String getPersonName() {
jurzua
parents:
diff changeset
120 return personName;
jurzua
parents:
diff changeset
121 }
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 public void setPersonName(String personName) {
jurzua
parents:
diff changeset
124 this.personName = personName;
jurzua
parents:
diff changeset
125 }
jurzua
parents:
diff changeset
126
jurzua
parents:
diff changeset
127 public String getRoleName() {
jurzua
parents:
diff changeset
128 return roleName;
jurzua
parents:
diff changeset
129 }
jurzua
parents:
diff changeset
130
jurzua
parents:
diff changeset
131 public void setRoleName(String roleName) {
jurzua
parents:
diff changeset
132 this.roleName = roleName;
jurzua
parents:
diff changeset
133 }
jurzua
parents:
diff changeset
134
jurzua
parents:
diff changeset
135 public List<SelectItem> getRoleList() {
jurzua
parents:
diff changeset
136 return roleList;
jurzua
parents:
diff changeset
137 }
jurzua
parents:
diff changeset
138
jurzua
parents:
diff changeset
139 public List<ResultEntry07> getRs() {
jurzua
parents:
diff changeset
140 return rs;
jurzua
parents:
diff changeset
141 }
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 @Override
jurzua
parents:
diff changeset
144 public Integer getRsSize(){
jurzua
parents:
diff changeset
145 if(rs != null){
jurzua
parents:
diff changeset
146 return rs.size();
jurzua
parents:
diff changeset
147 }
jurzua
parents:
diff changeset
148 return 0;
jurzua
parents:
diff changeset
149 }
jurzua
parents:
diff changeset
150
jurzua
parents:
diff changeset
151 public class ResultEntry07 implements Serializable{
jurzua
parents:
diff changeset
152 private static final long serialVersionUID = -3582904838999322869L;
jurzua
parents:
diff changeset
153
jurzua
parents:
diff changeset
154 private Long personId;
jurzua
parents:
diff changeset
155 private String personOv;
jurzua
parents:
diff changeset
156 private Long witnessId;
jurzua
parents:
diff changeset
157 private String witnessOv;
jurzua
parents:
diff changeset
158 private String role;
jurzua
parents:
diff changeset
159 private String witness2Person;
jurzua
parents:
diff changeset
160
jurzua
parents:
diff changeset
161 public ResultEntry07(
jurzua
parents:
diff changeset
162 Long personId, String personOv,
jurzua
parents:
diff changeset
163 Long witnessId, String witnessOv,
jurzua
parents:
diff changeset
164 String role, String witness2Person){
jurzua
parents:
diff changeset
165
jurzua
parents:
diff changeset
166 this.personId = personId;
jurzua
parents:
diff changeset
167 this.personOv = personOv;
jurzua
parents:
diff changeset
168 this.witnessId = witnessId;
jurzua
parents:
diff changeset
169 this.witnessOv = witnessOv;
jurzua
parents:
diff changeset
170 this.role = role;
jurzua
parents:
diff changeset
171 this.witness2Person = witness2Person;
jurzua
parents:
diff changeset
172 }
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 public Long getPersonId() {
jurzua
parents:
diff changeset
175 return personId;
jurzua
parents:
diff changeset
176 }
jurzua
parents:
diff changeset
177
jurzua
parents:
diff changeset
178 public void setPersonId(Long personId) {
jurzua
parents:
diff changeset
179 this.personId = personId;
jurzua
parents:
diff changeset
180 }
jurzua
parents:
diff changeset
181
jurzua
parents:
diff changeset
182 public String getPersonOv() {
jurzua
parents:
diff changeset
183 return personOv;
jurzua
parents:
diff changeset
184 }
jurzua
parents:
diff changeset
185
jurzua
parents:
diff changeset
186 public void setPersonOv(String personOv) {
jurzua
parents:
diff changeset
187 this.personOv = personOv;
jurzua
parents:
diff changeset
188 }
jurzua
parents:
diff changeset
189
jurzua
parents:
diff changeset
190 public Long getWitnessId() {
jurzua
parents:
diff changeset
191 return witnessId;
jurzua
parents:
diff changeset
192 }
jurzua
parents:
diff changeset
193
jurzua
parents:
diff changeset
194 public void setWitnessId(Long witnessId) {
jurzua
parents:
diff changeset
195 this.witnessId = witnessId;
jurzua
parents:
diff changeset
196 }
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 public String getWitnessOv() {
jurzua
parents:
diff changeset
199 return witnessOv;
jurzua
parents:
diff changeset
200 }
jurzua
parents:
diff changeset
201
jurzua
parents:
diff changeset
202 public void setWitnessOv(String witnessOv) {
jurzua
parents:
diff changeset
203 this.witnessOv = witnessOv;
jurzua
parents:
diff changeset
204 }
jurzua
parents:
diff changeset
205
jurzua
parents:
diff changeset
206 public String getRole() {
jurzua
parents:
diff changeset
207 return role;
jurzua
parents:
diff changeset
208 }
jurzua
parents:
diff changeset
209
jurzua
parents:
diff changeset
210 public void setRole(String role) {
jurzua
parents:
diff changeset
211 this.role = role;
jurzua
parents:
diff changeset
212 }
jurzua
parents:
diff changeset
213
jurzua
parents:
diff changeset
214 public String getWitness2Person() {
jurzua
parents:
diff changeset
215 return witness2Person;
jurzua
parents:
diff changeset
216 }
jurzua
parents:
diff changeset
217
jurzua
parents:
diff changeset
218 public void setWitness2Person(String witness2Person) {
jurzua
parents:
diff changeset
219 this.witness2Person = witness2Person;
jurzua
parents:
diff changeset
220 }
jurzua
parents:
diff changeset
221
jurzua
parents:
diff changeset
222
jurzua
parents:
diff changeset
223 }
jurzua
parents:
diff changeset
224 }