annotate src/main/java/de/mpiwg/itgroup/ismi/utils/templates/AuthorTemplate.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children 4ec8d4cfad26
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.utils.templates;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.util.ArrayList;
jurzua
parents:
diff changeset
4 import java.util.Collection;
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 org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
10 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
11 import org.mpi.openmind.cache.WrapperService;
jurzua
parents:
diff changeset
12 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
13 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.repository.bo.Relation;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.search.AbstractSearchService;
jurzua
parents:
diff changeset
16 import org.mpiwg.itgroup.escidoc.ESciDocHandler;
jurzua
parents:
diff changeset
17 import org.mpiwg.itgroup.escidoc.bo.Publication;
jurzua
parents:
diff changeset
18
jurzua
parents:
diff changeset
19 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
jurzua
parents:
diff changeset
20 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
jurzua
parents:
diff changeset
21
jurzua
parents:
diff changeset
22 public class AuthorTemplate extends AbstractTemplate{
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 private static Logger logger = Logger.getLogger(AuthorTemplate.class);
jurzua
parents:
diff changeset
25
jurzua
parents:
diff changeset
26 private static String birth_date = "birth_date";
jurzua
parents:
diff changeset
27
jurzua
parents:
diff changeset
28 private static String lived_in = "lived_in";
jurzua
parents:
diff changeset
29 private static String has_role = "has_role";
jurzua
parents:
diff changeset
30 private static String was_student_of = "was_student_of";
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 public String privacity;
jurzua
parents:
diff changeset
33 public String name;
jurzua
parents:
diff changeset
34 public String nameTranslit;
jurzua
parents:
diff changeset
35 public String bornInPlace;
jurzua
parents:
diff changeset
36 public String diedInPlace;
jurzua
parents:
diff changeset
37 public String primeAlias;
jurzua
parents:
diff changeset
38 public String notes;
jurzua
parents:
diff changeset
39 public String url;
jurzua
parents:
diff changeset
40 public List<String> aliasList;
jurzua
parents:
diff changeset
41 public List<String> roleList;
jurzua
parents:
diff changeset
42
jurzua
parents:
diff changeset
43 public String birthDate;
jurzua
parents:
diff changeset
44 public String deathDate;
jurzua
parents:
diff changeset
45
jurzua
parents:
diff changeset
46 public Map<String, String> livedInPlaceMap;
jurzua
parents:
diff changeset
47
jurzua
parents:
diff changeset
48 public AuthorTemplate(Entity entity, WrapperService om){
jurzua
parents:
diff changeset
49
jurzua
parents:
diff changeset
50 logger.info("Diplaying " + entity);
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52 if (entity.isLightweight()) {
jurzua
parents:
diff changeset
53 entity = om.getEntityContent(entity);
jurzua
parents:
diff changeset
54 }
jurzua
parents:
diff changeset
55 this.aliasList = new ArrayList<String>();
jurzua
parents:
diff changeset
56 this.roleList = new ArrayList<String>();
jurzua
parents:
diff changeset
57 this.livedInPlaceMap = new HashMap<String, String>();
jurzua
parents:
diff changeset
58 this.privacity = entity.getPrivacity();
jurzua
parents:
diff changeset
59
jurzua
parents:
diff changeset
60 Attribute attName = entity.getAttributeByName("name");
jurzua
parents:
diff changeset
61 Attribute attNameTranslit = entity.getAttributeByName("name_translit");
jurzua
parents:
diff changeset
62 Attribute attNotes = entity.getAttributeByName("notes");
jurzua
parents:
diff changeset
63 Attribute attUrl = entity.getAttributeByName("url");
jurzua
parents:
diff changeset
64 this.name = (attName == null) ? null : attName.getValue();
jurzua
parents:
diff changeset
65 this.nameTranslit = (attNameTranslit == null) ? null : attNameTranslit.getValue();
jurzua
parents:
diff changeset
66 this.notes = (attNotes == null) ? null : attNotes.getValue();
jurzua
parents:
diff changeset
67 this.url = (attUrl == null) ? null : attUrl.getValue();
jurzua
parents:
diff changeset
68
jurzua
parents:
diff changeset
69 Calendar calDeathDate = AbstractISMIBean.updateCalendar(entity.getAttributeByName("death_date"));
jurzua
parents:
diff changeset
70 this.deathDate = calDeathDate.getCalendarAsHtml();
jurzua
parents:
diff changeset
71
jurzua
parents:
diff changeset
72 Calendar calBirthDate = AbstractISMIBean.updateCalendar(entity.getAttributeByName(birth_date));
jurzua
parents:
diff changeset
73 this.birthDate = calBirthDate.getCalendarAsHtml();
jurzua
parents:
diff changeset
74
jurzua
parents:
diff changeset
75 //this.setCurrentId(entity.getId().toString());
jurzua
parents:
diff changeset
76 //this.loadAttributes(entity);
jurzua
parents:
diff changeset
77
jurzua
parents:
diff changeset
78 for (Relation rel : entity.getSourceRelations()) {
jurzua
parents:
diff changeset
79 if(StringUtils.isEmpty(rel.getOwnValue()) || StringUtils.isEmpty(rel.getTargetObjectClass())){
jurzua
parents:
diff changeset
80 try {
jurzua
parents:
diff changeset
81 throw new Exception("Relation has no ownValue and/or targetObjCls " + rel);
jurzua
parents:
diff changeset
82 } catch (Exception e) {
jurzua
parents:
diff changeset
83 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
84 }
jurzua
parents:
diff changeset
85 }else{
jurzua
parents:
diff changeset
86 Entity target = om.getEntityById(rel.getTargetId());
jurzua
parents:
diff changeset
87 if (rel.getOwnValue().equals("was_born_in")) {
jurzua
parents:
diff changeset
88 this.bornInPlace = (target == null) ? "" : target.getOwnValue();
jurzua
parents:
diff changeset
89 } else if (rel.getOwnValue().equals(lived_in)) {
jurzua
parents:
diff changeset
90 String date = (rel.getAttributeByName("date") != null) ?
jurzua
parents:
diff changeset
91 new Calendar(rel.getAttributeByName("date").getOwnValue()).getCalendarAsHtml() :
jurzua
parents:
diff changeset
92 "";
jurzua
parents:
diff changeset
93 this.livedInPlaceMap.put(target.getOwnValue(), date);
jurzua
parents:
diff changeset
94 } else if (rel.getOwnValue().equals(was_student_of)) {
jurzua
parents:
diff changeset
95 //this.studentOfList.add(target);
jurzua
parents:
diff changeset
96 } else if (rel.getOwnValue().equals(has_role)) {
jurzua
parents:
diff changeset
97 this.roleList.add(target.getOwnValue());
jurzua
parents:
diff changeset
98 } else if (rel.getOwnValue().equals("died_in")) {
jurzua
parents:
diff changeset
99 this.diedInPlace = (target == null) ? "" : target.getOwnValue();
jurzua
parents:
diff changeset
100 }
jurzua
parents:
diff changeset
101 }
jurzua
parents:
diff changeset
102 }
jurzua
parents:
diff changeset
103
jurzua
parents:
diff changeset
104 for (Relation rel : entity.getTargetRelations()) {
jurzua
parents:
diff changeset
105
jurzua
parents:
diff changeset
106 if(StringUtils.isEmpty(rel.getOwnValue()) || StringUtils.isEmpty(rel.getSourceObjectClass())){
jurzua
parents:
diff changeset
107 try {
jurzua
parents:
diff changeset
108 throw new Exception("Relation has no ownValue and/or sourceObjCls " + rel);
jurzua
parents:
diff changeset
109 } catch (Exception e) {
jurzua
parents:
diff changeset
110 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112 }else{
jurzua
parents:
diff changeset
113 if (rel.getOwnValue().equals("was_created_by") && rel.getSourceObjectClass().equals("TEXT")) {
jurzua
parents:
diff changeset
114 Entity title = om.getEntityById(rel.getSourceId());
jurzua
parents:
diff changeset
115 if(title != null && title.getObjectClass().equals("TEXT")){
jurzua
parents:
diff changeset
116 //this.titles.add(title);
jurzua
parents:
diff changeset
117 //I remove this line cause the list in this way would not be sorted.
jurzua
parents:
diff changeset
118 //this.titleItems.add(new SelectItem(title.getId().toString(), title.getOwnValue() + " [" + title.getId() + "]"));
jurzua
parents:
diff changeset
119 }
jurzua
parents:
diff changeset
120 } else if (rel.getOwnValue().equals("is_alias_name_of")) {
jurzua
parents:
diff changeset
121 Entity alias = om.getEntityById(rel.getSourceId());
jurzua
parents:
diff changeset
122 this.aliasList.add(alias.getOwnValue());
jurzua
parents:
diff changeset
123 } else if (rel.getOwnValue().equals("is_prime_alias_name_of")) {
jurzua
parents:
diff changeset
124 Entity alias = om.getEntityByIdWithContent(rel.getSourceId());
jurzua
parents:
diff changeset
125 this.primeAlias = alias.getAttributeByName("alias").getValue();
jurzua
parents:
diff changeset
126 } else if (rel.getOwnValue().equals("is_reference_of")) {
jurzua
parents:
diff changeset
127 Entity ref = om.getEntityByIdWithContent(rel.getSourceId());
jurzua
parents:
diff changeset
128 this.refEntityList.add(ref);
jurzua
parents:
diff changeset
129 }
jurzua
parents:
diff changeset
130 }
jurzua
parents:
diff changeset
131
jurzua
parents:
diff changeset
132 }
jurzua
parents:
diff changeset
133 this.loadRefernces();
jurzua
parents:
diff changeset
134 }
jurzua
parents:
diff changeset
135
jurzua
parents:
diff changeset
136 public String getPrivacity() {
jurzua
parents:
diff changeset
137 return privacity;
jurzua
parents:
diff changeset
138 }
jurzua
parents:
diff changeset
139 public String getName() {
jurzua
parents:
diff changeset
140 return name;
jurzua
parents:
diff changeset
141 }
jurzua
parents:
diff changeset
142 public String getNameTranslit() {
jurzua
parents:
diff changeset
143 return nameTranslit;
jurzua
parents:
diff changeset
144 }
jurzua
parents:
diff changeset
145 public String getBornInPlace() {
jurzua
parents:
diff changeset
146 return bornInPlace;
jurzua
parents:
diff changeset
147 }
jurzua
parents:
diff changeset
148 public String getDiedInPlace() {
jurzua
parents:
diff changeset
149 return diedInPlace;
jurzua
parents:
diff changeset
150 }
jurzua
parents:
diff changeset
151 public String getPrimeAlias() {
jurzua
parents:
diff changeset
152 return primeAlias;
jurzua
parents:
diff changeset
153 }
jurzua
parents:
diff changeset
154 public String getNotes() {
jurzua
parents:
diff changeset
155 return notes;
jurzua
parents:
diff changeset
156 }
jurzua
parents:
diff changeset
157 public String getUrl() {
jurzua
parents:
diff changeset
158 return url;
jurzua
parents:
diff changeset
159 }
jurzua
parents:
diff changeset
160 public List<String> getAliasList() {
jurzua
parents:
diff changeset
161 return aliasList;
jurzua
parents:
diff changeset
162 }
jurzua
parents:
diff changeset
163
jurzua
parents:
diff changeset
164 public String getBirthDate() {
jurzua
parents:
diff changeset
165 return birthDate;
jurzua
parents:
diff changeset
166 }
jurzua
parents:
diff changeset
167 public String getDeathDate() {
jurzua
parents:
diff changeset
168 return deathDate;
jurzua
parents:
diff changeset
169 }
jurzua
parents:
diff changeset
170 public List<String> getRoleList() {
jurzua
parents:
diff changeset
171 return roleList;
jurzua
parents:
diff changeset
172 }
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 public Map<String, String> getLivedInPlaceMap() {
jurzua
parents:
diff changeset
175 return livedInPlaceMap;
jurzua
parents:
diff changeset
176 }
jurzua
parents:
diff changeset
177
jurzua
parents:
diff changeset
178 public Collection<String> getLivedInPlaceList(){
jurzua
parents:
diff changeset
179 return livedInPlaceMap.keySet();
jurzua
parents:
diff changeset
180 }
jurzua
parents:
diff changeset
181 }