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