annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/Titles4PersonQuery.java @ 119:4aa8c425685d

less System.out.println.
author casties
date Fri, 06 Jan 2017 16:59:37 +0100
parents 2e911857a759
children 8ae989269f51
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.HashMap;
jurzua
parents:
diff changeset
6 import java.util.List;
jurzua
parents:
diff changeset
7 import java.util.Map;
jurzua
parents:
diff changeset
8
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.repository.bo.Relation;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.repository.utils.NormalizerUtils;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.search.utils.ResultEntry;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.search.utils.SAttributeMultipleName;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.search.utils.SAttributeUniqueName;
jurzua
parents:
diff changeset
18 import org.mpi.openmind.search.utils.SEntity;
jurzua
parents:
diff changeset
19 import org.mpi.openmind.search.utils.SRelLongKey;
jurzua
parents:
diff changeset
20 import org.mpi.openmind.search.utils.SRelation;
jurzua
parents:
diff changeset
21 import org.mpi.openmind.search.utils.SRelationMultipleName;
jurzua
parents:
diff changeset
22 import org.mpi.openmind.search.utils.SRelationUniqueName;
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 import de.mpiwg.itgroup.ismi.entry.beans.ApplicationBean;
jurzua
parents:
diff changeset
25
jurzua
parents:
diff changeset
26 public class Titles4PersonQuery extends AbstractQuery implements Serializable{
jurzua
parents:
diff changeset
27
jurzua
parents:
diff changeset
28 /**
jurzua
parents:
diff changeset
29 *
jurzua
parents:
diff changeset
30 */
jurzua
parents:
diff changeset
31 private static final long serialVersionUID = -5342126098161866749L;
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<SRelLongKey> personTitleKeyList;
jurzua
parents:
diff changeset
36
jurzua
parents:
diff changeset
37 private boolean displayCodex = false;
jurzua
parents:
diff changeset
38 private boolean displayAlias = false;
jurzua
parents:
diff changeset
39
jurzua
parents:
diff changeset
40 public Titles4PersonQuery(ApplicationBean appBean){
jurzua
parents:
diff changeset
41 super(appBean);
jurzua
parents:
diff changeset
42 this.exportUrlRoot = ApplicationBean.urlISMIExportServiceAuthors;
jurzua
parents:
diff changeset
43 }
jurzua
parents:
diff changeset
44
jurzua
parents:
diff changeset
45 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
46 static{
jurzua
parents:
diff changeset
47 roleList = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
48 roleList.add(new SelectItem("Author"));
jurzua
parents:
diff changeset
49 roleList.add(new SelectItem("Annotator"));
jurzua
parents:
diff changeset
50 roleList.add(new SelectItem("Copyist"));
jurzua
parents:
diff changeset
51 roleList.add(new SelectItem("Corrector"));
jurzua
parents:
diff changeset
52 roleList.add(new SelectItem("Dedicatee"));
jurzua
parents:
diff changeset
53 roleList.add(new SelectItem("Illuminator"));
jurzua
parents:
diff changeset
54 roleList.add(new SelectItem("Illustrator"));
jurzua
parents:
diff changeset
55 roleList.add(new SelectItem("Owner"));
jurzua
parents:
diff changeset
56 roleList.add(new SelectItem("Patron"));
jurzua
parents:
diff changeset
57 roleList.add(new SelectItem("Inspector"));
jurzua
parents:
diff changeset
58 }
jurzua
parents:
diff changeset
59
jurzua
parents:
diff changeset
60 @Override
jurzua
parents:
diff changeset
61 public void reset(){
jurzua
parents:
diff changeset
62 super.reset();
jurzua
parents:
diff changeset
63 this.personName = null;
jurzua
parents:
diff changeset
64 this.roleName = "Author";
jurzua
parents:
diff changeset
65 this.rs = null;
jurzua
parents:
diff changeset
66 this.personTitleKeyList = null;
jurzua
parents:
diff changeset
67 this.displayAlias = false;
jurzua
parents:
diff changeset
68 this.displayCodex = false;
jurzua
parents:
diff changeset
69 }
jurzua
parents:
diff changeset
70
jurzua
parents:
diff changeset
71 @Override
jurzua
parents:
diff changeset
72 protected void search(){
jurzua
parents:
diff changeset
73
jurzua
parents:
diff changeset
74 this.displayAlias = false;
jurzua
parents:
diff changeset
75 this.displayCodex = false;
jurzua
parents:
diff changeset
76
jurzua
parents:
diff changeset
77 List<ResultEntry> rs0 = this.execute01(personName, roleName);
jurzua
parents:
diff changeset
78 List<ResultEntry> rs1 = null;
jurzua
parents:
diff changeset
79 if(StringUtils.isNotEmpty(personName)){
jurzua
parents:
diff changeset
80 rs1 = this.execute02(personName, roleName);
jurzua
parents:
diff changeset
81 }
jurzua
parents:
diff changeset
82 rs = loadResultSet(rs0, rs1);
jurzua
parents:
diff changeset
83
jurzua
parents:
diff changeset
84 List<Long> idLongList = new ArrayList<Long>();
jurzua
parents:
diff changeset
85 for(Object e : rs){
jurzua
parents:
diff changeset
86 Titles4PersonEntry entry = (Titles4PersonEntry)e;
jurzua
parents:
diff changeset
87 if(!idLongList.contains(entry.getPersonId()))
jurzua
parents:
diff changeset
88 idLongList.add(entry.getPersonId());
jurzua
parents:
diff changeset
89 }
jurzua
parents:
diff changeset
90 this.idList = ApplicationBean.generateIdList(idLongList);
jurzua
parents:
diff changeset
91
jurzua
parents:
diff changeset
92 this.exportDirkUrl = ApplicationBean.generateExportURL(exportUrlRoot, idList, "xml");
jurzua
parents:
diff changeset
93 }
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95
jurzua
parents:
diff changeset
96
jurzua
parents:
diff changeset
97 private List<Titles4PersonEntry> loadResultSet(List<ResultEntry> rs0, List<ResultEntry> rs1){
jurzua
parents:
diff changeset
98 List<Titles4PersonEntry> currentRS = new ArrayList<Titles4PersonEntry>();
jurzua
parents:
diff changeset
99
jurzua
parents:
diff changeset
100 List<Long> personIdList = new ArrayList<Long>();
jurzua
parents:
diff changeset
101
jurzua
parents:
diff changeset
102
jurzua
parents:
diff changeset
103 for(ResultEntry re : rs0){
jurzua
parents:
diff changeset
104 Entity person = getOm().getEntityById(re.getEntMap().get(1));
jurzua
parents:
diff changeset
105 personIdList.add(person.getId());
jurzua
parents:
diff changeset
106 currentRS.addAll(getEntryFromPerson(person, null, null, this.roleName));
jurzua
parents:
diff changeset
107 }
jurzua
parents:
diff changeset
108
jurzua
parents:
diff changeset
109 if(rs1 != null){
jurzua
parents:
diff changeset
110 for(ResultEntry re : rs1){
jurzua
parents:
diff changeset
111 Entity person = getOm().getEntityById(re.getEntMap().get(1));
jurzua
parents:
diff changeset
112 if(!personIdList.contains(person.getId())){
jurzua
parents:
diff changeset
113 String alias = getOm().getEntityById(re.getEntMap().get(2)).getOwnValue();
jurzua
parents:
diff changeset
114 String alias2Person = re.getRel(2, 1);
jurzua
parents:
diff changeset
115 currentRS.addAll(getEntryFromPerson(person, alias, alias2Person, this.roleName));
jurzua
parents:
diff changeset
116 this.displayAlias = true;
jurzua
parents:
diff changeset
117 }
jurzua
parents:
diff changeset
118 }
jurzua
parents:
diff changeset
119 }
jurzua
parents:
diff changeset
120
jurzua
parents:
diff changeset
121 return currentRS;
jurzua
parents:
diff changeset
122 }
jurzua
parents:
diff changeset
123
jurzua
parents:
diff changeset
124
jurzua
parents:
diff changeset
125 /**
jurzua
parents:
diff changeset
126 * Possible ways to find a title from a given person
jurzua
parents:
diff changeset
127 * 1- TEXT is_exemplar_of WITNESS is_part_of CODEX owned_by PERSON
jurzua
parents:
diff changeset
128 * 2-
jurzua
parents:
diff changeset
129 * TEXT was_created_by PERSON
jurzua
parents:
diff changeset
130 * TEXT had_patron PERSON
jurzua
parents:
diff changeset
131 * TEXT was_dedicated_to PERSON
jurzua
parents:
diff changeset
132 */
jurzua
parents:
diff changeset
133 private List<Titles4PersonEntry> getEntryFromPerson(Entity person, String alias, String alias2Person, String role){
jurzua
parents:
diff changeset
134 //rs.add(new Titles4PersonEntry(person, title, title2Person, codex, codex2Person, alias, alias2Person, role, subject, ));
jurzua
parents:
diff changeset
135 List<Titles4PersonEntry> rs = new ArrayList<Titles4PersonQuery.Titles4PersonEntry>();
jurzua
parents:
diff changeset
136
jurzua
parents:
diff changeset
137 List<Entity> entList = getOm().getSourcesForTargetRelation(person.getId(), "was_created_by", "TEXT", -1);
jurzua
parents:
diff changeset
138 for(Entity title : entList){
jurzua
parents:
diff changeset
139 String subject = getSubject(title);
jurzua
parents:
diff changeset
140 rs.add(new Titles4PersonEntry(person, title, alias, alias2Person, role, subject, "TEXT was_created_by PERSON"));
jurzua
parents:
diff changeset
141 }
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 entList = getOm().getSourcesForTargetRelation(person.getId(), "had_patron", "TEXT", -1);
jurzua
parents:
diff changeset
144 for(Entity title : entList){
jurzua
parents:
diff changeset
145 String subject = getSubject(title);
jurzua
parents:
diff changeset
146 rs.add(new Titles4PersonEntry(person, title, alias, alias2Person, role, subject, "TEXT had_patron PERSON"));
jurzua
parents:
diff changeset
147 }
jurzua
parents:
diff changeset
148
jurzua
parents:
diff changeset
149
jurzua
parents:
diff changeset
150 entList = getOm().getSourcesForTargetRelation(person.getId(), "was_dedicated_to", "TEXT", -1);
jurzua
parents:
diff changeset
151 for(Entity title : entList){
jurzua
parents:
diff changeset
152 String subject = getSubject(title);
jurzua
parents:
diff changeset
153 rs.add(new Titles4PersonEntry(person, title, alias, alias2Person, role, subject, "TEXT was_dedicated_to PERSON"));
jurzua
parents:
diff changeset
154 }
jurzua
parents:
diff changeset
155
jurzua
parents:
diff changeset
156 entList = getOm().getSourcesForTargetRelation(person.getId(), "owned_by", "CODEX", -1);
jurzua
parents:
diff changeset
157 for(Entity codex : entList){
jurzua
parents:
diff changeset
158 List<Entity> witnessList = getOm().getSourcesForTargetRelation(codex.getId(), "is_part_of", "WITNESS", -1);
jurzua
parents:
diff changeset
159 for(Entity witness : witnessList){
jurzua
parents:
diff changeset
160 List<Entity> textList = getOm().getTargetsForSourceRelation(witness.getId(), "is_exemplar_of", "TEXT", -1);
jurzua
parents:
diff changeset
161 for(Entity title : textList){
jurzua
parents:
diff changeset
162 String subject = getSubject(title);
jurzua
parents:
diff changeset
163 rs.add(new Titles4PersonEntry(person, title, codex, witness, alias, alias2Person, role, subject,
jurzua
parents:
diff changeset
164 "TEXT is_exemplar_of WITNESS is_part_of CODEX owned_by PERSON"));
jurzua
parents:
diff changeset
165 this.displayCodex = true;
119
4aa8c425685d less System.out.println.
casties
parents: 1
diff changeset
166 //System.out.println("this.displayCodex = true;");
1
jurzua
parents:
diff changeset
167 }
jurzua
parents:
diff changeset
168 }
jurzua
parents:
diff changeset
169 }
jurzua
parents:
diff changeset
170
jurzua
parents:
diff changeset
171 return rs;
jurzua
parents:
diff changeset
172 }
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 private String getSubject(Entity title){
jurzua
parents:
diff changeset
175 List<Entity> subjectList = getOm().getTargetsForSourceRelation(title.getId(), "has_subject", "SUBJECT", 1);
jurzua
parents:
diff changeset
176 return (subjectList.size() == 0) ? null : subjectList.get(0).getOwnValue();
jurzua
parents:
diff changeset
177 }
jurzua
parents:
diff changeset
178
jurzua
parents:
diff changeset
179 private List<ResultEntry> execute01(String personName, String roleName){
jurzua
parents:
diff changeset
180
jurzua
parents:
diff changeset
181 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
182 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
183
jurzua
parents:
diff changeset
184 //The user can select between:
jurzua
parents:
diff changeset
185 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
186 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
187 role.addAtt(new SAttributeUniqueName("name", roleName));
jurzua
parents:
diff changeset
188 entFilters.add(role);
jurzua
parents:
diff changeset
189
jurzua
parents:
diff changeset
190 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
191 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
192 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
193 if(StringUtils.isNotEmpty(personName)){
jurzua
parents:
diff changeset
194 person.addAtt(new SAttributeMultipleName(personName, "name_translit", "name"));
jurzua
parents:
diff changeset
195 }
jurzua
parents:
diff changeset
196 entFilters.add(person);
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
199 relFilters.add(has_role);
jurzua
parents:
diff changeset
200
jurzua
parents:
diff changeset
201 return this.appBean.getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
202 }
jurzua
parents:
diff changeset
203
jurzua
parents:
diff changeset
204 private List<ResultEntry> execute02(String personName, String roleName){
jurzua
parents:
diff changeset
205
jurzua
parents:
diff changeset
206 List<SEntity> entFilters = new ArrayList<SEntity>();
jurzua
parents:
diff changeset
207 List<SRelation> relFilters = new ArrayList<SRelation>();
jurzua
parents:
diff changeset
208
jurzua
parents:
diff changeset
209 //The user can select between:
jurzua
parents:
diff changeset
210 //"Author", "Annotator", "Copyist", "Corrector", "Dedicatee", "Illuminator", "Illustrator", "Owner", "Patron", "inspector"
jurzua
parents:
diff changeset
211 SEntity role = new SEntity(0, "ROLE");
jurzua
parents:
diff changeset
212 role.addAtt(new SAttributeUniqueName("name", roleName));
jurzua
parents:
diff changeset
213 entFilters.add(role);
jurzua
parents:
diff changeset
214
jurzua
parents:
diff changeset
215 //alias, "is_prime_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
216 //alias, "is_alias_name_of", "PERSON"
jurzua
parents:
diff changeset
217 SEntity person = new SEntity(1, "PERSON");
jurzua
parents:
diff changeset
218 entFilters.add(person);
jurzua
parents:
diff changeset
219
jurzua
parents:
diff changeset
220 SEntity alias = new SEntity(2, "ALIAS");
jurzua
parents:
diff changeset
221 alias.addAtt(new SAttributeUniqueName("alias", personName));
jurzua
parents:
diff changeset
222 entFilters.add(alias);
jurzua
parents:
diff changeset
223
jurzua
parents:
diff changeset
224 SRelationMultipleName is_alias = new SRelationMultipleName(alias, person, "is_alias_name_of", "is_prime_alias_name_of");
jurzua
parents:
diff changeset
225 SRelationUniqueName has_role = new SRelationUniqueName(person, role, "has_role");
jurzua
parents:
diff changeset
226 relFilters.add(has_role);
jurzua
parents:
diff changeset
227 relFilters.add(is_alias);
jurzua
parents:
diff changeset
228
jurzua
parents:
diff changeset
229 return this.appBean.getSS().search(entFilters, relFilters);
jurzua
parents:
diff changeset
230 }
jurzua
parents:
diff changeset
231
jurzua
parents:
diff changeset
232 public String getPersonName() {
jurzua
parents:
diff changeset
233 return personName;
jurzua
parents:
diff changeset
234 }
jurzua
parents:
diff changeset
235
jurzua
parents:
diff changeset
236 public void setPersonName(String personName) {
jurzua
parents:
diff changeset
237 this.personName = personName;
jurzua
parents:
diff changeset
238 }
jurzua
parents:
diff changeset
239
jurzua
parents:
diff changeset
240 public String getRoleName() {
jurzua
parents:
diff changeset
241 return roleName;
jurzua
parents:
diff changeset
242 }
jurzua
parents:
diff changeset
243
jurzua
parents:
diff changeset
244 public void setRoleName(String roleName) {
jurzua
parents:
diff changeset
245 this.roleName = roleName;
jurzua
parents:
diff changeset
246 }
jurzua
parents:
diff changeset
247
jurzua
parents:
diff changeset
248 public List<SRelLongKey> getPersonTitleKeyList() {
jurzua
parents:
diff changeset
249 return personTitleKeyList;
jurzua
parents:
diff changeset
250 }
jurzua
parents:
diff changeset
251
jurzua
parents:
diff changeset
252 public void setPersonTitleKeyList(List<SRelLongKey> personTitleKeyList) {
jurzua
parents:
diff changeset
253 this.personTitleKeyList = personTitleKeyList;
jurzua
parents:
diff changeset
254 }
jurzua
parents:
diff changeset
255
jurzua
parents:
diff changeset
256 public List<SelectItem> getRoleList() {
jurzua
parents:
diff changeset
257 return roleList;
jurzua
parents:
diff changeset
258 }
jurzua
parents:
diff changeset
259
jurzua
parents:
diff changeset
260 public boolean isDisplayCodex() {
jurzua
parents:
diff changeset
261 return displayCodex;
jurzua
parents:
diff changeset
262 }
jurzua
parents:
diff changeset
263
jurzua
parents:
diff changeset
264 public boolean isDisplayAlias() {
jurzua
parents:
diff changeset
265 return displayAlias;
jurzua
parents:
diff changeset
266 }
jurzua
parents:
diff changeset
267
jurzua
parents:
diff changeset
268
jurzua
parents:
diff changeset
269
jurzua
parents:
diff changeset
270 public class Titles4PersonEntry implements Comparable<Titles4PersonEntry>, Serializable{
jurzua
parents:
diff changeset
271 private static final long serialVersionUID = 7798695003500406910L;
jurzua
parents:
diff changeset
272
jurzua
parents:
diff changeset
273 private Long personId;
jurzua
parents:
diff changeset
274 private String personOv;
jurzua
parents:
diff changeset
275 private String personNOv;
jurzua
parents:
diff changeset
276
jurzua
parents:
diff changeset
277 private Long titleId;
jurzua
parents:
diff changeset
278 private String titleOv;
jurzua
parents:
diff changeset
279 private String titleNOv;
jurzua
parents:
diff changeset
280
jurzua
parents:
diff changeset
281 private Long codexId;
jurzua
parents:
diff changeset
282 private String codexOv;
jurzua
parents:
diff changeset
283 private String codex2Person;
jurzua
parents:
diff changeset
284
jurzua
parents:
diff changeset
285 private Long witnessId;
jurzua
parents:
diff changeset
286 private String witnessOv;
jurzua
parents:
diff changeset
287 private String witnessNOv;
jurzua
parents:
diff changeset
288
jurzua
parents:
diff changeset
289 private String alias;
jurzua
parents:
diff changeset
290 private String alias2Person;
jurzua
parents:
diff changeset
291
jurzua
parents:
diff changeset
292 private String role;
jurzua
parents:
diff changeset
293 //private String title2Person;
jurzua
parents:
diff changeset
294 private String subject;
jurzua
parents:
diff changeset
295
jurzua
parents:
diff changeset
296
jurzua
parents:
diff changeset
297
jurzua
parents:
diff changeset
298 private String query;
jurzua
parents:
diff changeset
299
jurzua
parents:
diff changeset
300 public Titles4PersonEntry(
jurzua
parents:
diff changeset
301 Entity person,
jurzua
parents:
diff changeset
302 Entity title,
jurzua
parents:
diff changeset
303 Entity codex,
jurzua
parents:
diff changeset
304 Entity witness,
jurzua
parents:
diff changeset
305 String alias,
jurzua
parents:
diff changeset
306 String alias2Person,
jurzua
parents:
diff changeset
307 String role,
jurzua
parents:
diff changeset
308 String subject,
jurzua
parents:
diff changeset
309 String query
jurzua
parents:
diff changeset
310 ){
jurzua
parents:
diff changeset
311
jurzua
parents:
diff changeset
312 set(person, title);
jurzua
parents:
diff changeset
313 this.alias = alias;
jurzua
parents:
diff changeset
314 this.alias2Person = alias2Person;
jurzua
parents:
diff changeset
315 this.role = role;
jurzua
parents:
diff changeset
316 this.subject = subject;
jurzua
parents:
diff changeset
317 this.query = query;
jurzua
parents:
diff changeset
318 if(codex != null){
jurzua
parents:
diff changeset
319 this.codexId = codex.getId();
jurzua
parents:
diff changeset
320 this.codexOv = codex.getOwnValue();
jurzua
parents:
diff changeset
321 }
jurzua
parents:
diff changeset
322 if(witness != null){
jurzua
parents:
diff changeset
323 this.witnessId = witness.getId();
jurzua
parents:
diff changeset
324 this.witnessOv = witness.getOwnValue();
jurzua
parents:
diff changeset
325 this.witnessNOv = witness.getNormalizedOwnValue();
jurzua
parents:
diff changeset
326 }
jurzua
parents:
diff changeset
327 }
jurzua
parents:
diff changeset
328
jurzua
parents:
diff changeset
329 public Titles4PersonEntry(
jurzua
parents:
diff changeset
330 Entity person,
jurzua
parents:
diff changeset
331 Entity title,
jurzua
parents:
diff changeset
332 String alias,
jurzua
parents:
diff changeset
333 String alias2Person,
jurzua
parents:
diff changeset
334 String role,
jurzua
parents:
diff changeset
335 String subject,
jurzua
parents:
diff changeset
336 String query
jurzua
parents:
diff changeset
337 ){
jurzua
parents:
diff changeset
338
jurzua
parents:
diff changeset
339 set(person, title);
jurzua
parents:
diff changeset
340 this.alias = alias;
jurzua
parents:
diff changeset
341 this.alias2Person = alias2Person;
jurzua
parents:
diff changeset
342 this.role = role;
jurzua
parents:
diff changeset
343 this.subject = subject;
jurzua
parents:
diff changeset
344 this.query = query;
jurzua
parents:
diff changeset
345 }
jurzua
parents:
diff changeset
346
jurzua
parents:
diff changeset
347 private void set(Entity person, Entity title){
jurzua
parents:
diff changeset
348 this.personId = person.getId();
jurzua
parents:
diff changeset
349 this.personOv = person.getOwnValue();
jurzua
parents:
diff changeset
350 this.personNOv = person.getNormalizedOwnValue();
jurzua
parents:
diff changeset
351
jurzua
parents:
diff changeset
352 this.titleId = title.getId();
jurzua
parents:
diff changeset
353 this.titleOv = title.getOwnValue();
jurzua
parents:
diff changeset
354 this.titleNOv = title.getNormalizedOwnValue();
jurzua
parents:
diff changeset
355 }
jurzua
parents:
diff changeset
356
jurzua
parents:
diff changeset
357 public Long getPersonId() {
jurzua
parents:
diff changeset
358 return personId;
jurzua
parents:
diff changeset
359 }
jurzua
parents:
diff changeset
360
jurzua
parents:
diff changeset
361 public String getPersonOv() {
jurzua
parents:
diff changeset
362 return personOv;
jurzua
parents:
diff changeset
363 }
jurzua
parents:
diff changeset
364
jurzua
parents:
diff changeset
365 public String getPersonNOv() {
jurzua
parents:
diff changeset
366 return personNOv;
jurzua
parents:
diff changeset
367 }
jurzua
parents:
diff changeset
368
jurzua
parents:
diff changeset
369 public String getAlias() {
jurzua
parents:
diff changeset
370 return alias;
jurzua
parents:
diff changeset
371 }
jurzua
parents:
diff changeset
372
jurzua
parents:
diff changeset
373 public String getAlias2Person() {
jurzua
parents:
diff changeset
374 return alias2Person;
jurzua
parents:
diff changeset
375 }
jurzua
parents:
diff changeset
376
jurzua
parents:
diff changeset
377 public Long getTitleId() {
jurzua
parents:
diff changeset
378 return titleId;
jurzua
parents:
diff changeset
379 }
jurzua
parents:
diff changeset
380
jurzua
parents:
diff changeset
381 public String getTitleOv() {
jurzua
parents:
diff changeset
382 return titleOv;
jurzua
parents:
diff changeset
383 }
jurzua
parents:
diff changeset
384
jurzua
parents:
diff changeset
385 public String getTitleNOv() {
jurzua
parents:
diff changeset
386 return titleNOv;
jurzua
parents:
diff changeset
387 }
jurzua
parents:
diff changeset
388
jurzua
parents:
diff changeset
389 public String getRole() {
jurzua
parents:
diff changeset
390 return role;
jurzua
parents:
diff changeset
391 }
jurzua
parents:
diff changeset
392
jurzua
parents:
diff changeset
393 public String getSubject() {
jurzua
parents:
diff changeset
394 return subject;
jurzua
parents:
diff changeset
395 }
jurzua
parents:
diff changeset
396
jurzua
parents:
diff changeset
397 public Long getCodexId() {
jurzua
parents:
diff changeset
398 return codexId;
jurzua
parents:
diff changeset
399 }
jurzua
parents:
diff changeset
400
jurzua
parents:
diff changeset
401 public String getCodexOv() {
jurzua
parents:
diff changeset
402 return codexOv;
jurzua
parents:
diff changeset
403 }
jurzua
parents:
diff changeset
404
jurzua
parents:
diff changeset
405
jurzua
parents:
diff changeset
406 public String getCodex2Person() {
jurzua
parents:
diff changeset
407 return codex2Person;
jurzua
parents:
diff changeset
408 }
jurzua
parents:
diff changeset
409
jurzua
parents:
diff changeset
410 public String getQuery() {
jurzua
parents:
diff changeset
411 return query;
jurzua
parents:
diff changeset
412 }
jurzua
parents:
diff changeset
413
jurzua
parents:
diff changeset
414 public Long getWitnessId() {
jurzua
parents:
diff changeset
415 return witnessId;
jurzua
parents:
diff changeset
416 }
jurzua
parents:
diff changeset
417
jurzua
parents:
diff changeset
418 public String getWitnessOv() {
jurzua
parents:
diff changeset
419 return witnessOv;
jurzua
parents:
diff changeset
420 }
jurzua
parents:
diff changeset
421
jurzua
parents:
diff changeset
422 public String getWitnessNOv() {
jurzua
parents:
diff changeset
423 return witnessNOv;
jurzua
parents:
diff changeset
424 }
jurzua
parents:
diff changeset
425
jurzua
parents:
diff changeset
426 @Override
jurzua
parents:
diff changeset
427 public int compareTo(Titles4PersonEntry o) {
jurzua
parents:
diff changeset
428 if(!this.personId.equals(o.personId)){
jurzua
parents:
diff changeset
429
jurzua
parents:
diff changeset
430 int comparisonPerson = NormalizerUtils.normalizedToCompare(personNOv).compareTo(
jurzua
parents:
diff changeset
431 NormalizerUtils.normalizedToCompare(o.personNOv));
jurzua
parents:
diff changeset
432 if(comparisonPerson != 0){
jurzua
parents:
diff changeset
433 return comparisonPerson;
jurzua
parents:
diff changeset
434 }else{
jurzua
parents:
diff changeset
435 if(StringUtils.isNotEmpty(role) && StringUtils.isNotEmpty(o.role)){
jurzua
parents:
diff changeset
436 int comparisonRole = this.role.compareTo(o.role);
jurzua
parents:
diff changeset
437 if(comparisonRole != 0){
jurzua
parents:
diff changeset
438 return comparisonRole;
jurzua
parents:
diff changeset
439 }
jurzua
parents:
diff changeset
440 }else{
jurzua
parents:
diff changeset
441 if(StringUtils.isNotEmpty(role)){
jurzua
parents:
diff changeset
442 return -1;
jurzua
parents:
diff changeset
443 }else if(StringUtils.isNotEmpty(o.role)){
jurzua
parents:
diff changeset
444 return 1;
jurzua
parents:
diff changeset
445 }
jurzua
parents:
diff changeset
446 }
jurzua
parents:
diff changeset
447 }
jurzua
parents:
diff changeset
448 }else{
jurzua
parents:
diff changeset
449 if(!this.titleId.equals(o.titleId)){
jurzua
parents:
diff changeset
450 //comparing subject
jurzua
parents:
diff changeset
451 if(StringUtils.isNotEmpty(subject) && StringUtils.isNotEmpty(o.subject)){
jurzua
parents:
diff changeset
452 int comparisonSubject = this.subject.compareTo(o.subject);
jurzua
parents:
diff changeset
453 if(comparisonSubject != 0){
jurzua
parents:
diff changeset
454 return comparisonSubject;
jurzua
parents:
diff changeset
455 }
jurzua
parents:
diff changeset
456 }else{
jurzua
parents:
diff changeset
457 if(StringUtils.isNotEmpty(subject)){
jurzua
parents:
diff changeset
458 return -1;
jurzua
parents:
diff changeset
459 }else if(StringUtils.isNotEmpty(o.subject)){
jurzua
parents:
diff changeset
460 return 1;
jurzua
parents:
diff changeset
461 }
jurzua
parents:
diff changeset
462 }
jurzua
parents:
diff changeset
463 //comparing title
jurzua
parents:
diff changeset
464 int comparisonTitle = NormalizerUtils.normalizedToCompare(titleNOv).compareTo(
jurzua
parents:
diff changeset
465 NormalizerUtils.normalizedToCompare(o.titleNOv));
jurzua
parents:
diff changeset
466 return comparisonTitle;
jurzua
parents:
diff changeset
467 }
jurzua
parents:
diff changeset
468 }
jurzua
parents:
diff changeset
469 return 0;
jurzua
parents:
diff changeset
470 }
jurzua
parents:
diff changeset
471 }
jurzua
parents:
diff changeset
472
jurzua
parents:
diff changeset
473 }