annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/Titles4PersonQuery.java @ 216:93d33f138c9e default tip

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