annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/AbstractISMIBean.java @ 111:22a18bfc66b0

new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
author casties
date Fri, 09 Dec 2016 21:18:27 +0100
parents e27603a39e70
children 59f26a5ef2b3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.entry.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.HashSet;
jurzua
parents:
diff changeset
7 import java.util.List;
jurzua
parents:
diff changeset
8 import java.util.Map;
jurzua
parents:
diff changeset
9
jurzua
parents:
diff changeset
10 import javax.faces.context.FacesContext;
jurzua
parents:
diff changeset
11 import javax.faces.event.ValueChangeEvent;
jurzua
parents:
diff changeset
12 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
13
jurzua
parents:
diff changeset
14 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
15 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.cache.WrapperService;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
18 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
19 import org.mpi.openmind.repository.bo.Node;
jurzua
parents:
diff changeset
20 import org.mpi.openmind.repository.bo.Relation;
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 92
diff changeset
21 import org.mpi.openmind.repository.services.PersistenceService;
1
jurzua
parents:
diff changeset
22 import org.mpi.openmind.security.SecurityService;
jurzua
parents:
diff changeset
23 import org.mpi.openmind.security.bo.User;
jurzua
parents:
diff changeset
24
jurzua
parents:
diff changeset
25 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
jurzua
parents:
diff changeset
26 import de.mpiwg.itgroup.ismi.entry.dataBeans.SimpleSearchCache;
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
27 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
1
jurzua
parents:
diff changeset
28 import de.mpiwg.itgroup.ismi.util.guiComponents.Reference;
jurzua
parents:
diff changeset
29 import de.mpiwg.itgroup.ismi.util.guiComponents.ReferenceTable;
jurzua
parents:
diff changeset
30 import de.mpiwg.itgroup.ismi.util.guiComponents.StatusChecker;
jurzua
parents:
diff changeset
31 import de.mpiwg.itgroup.ismi.util.guiComponents.StatusImage;
jurzua
parents:
diff changeset
32 import de.mpiwg.itgroup.ismi.utils.SelectableObject;
jurzua
parents:
diff changeset
33
jurzua
parents:
diff changeset
34 /**
jurzua
parents:
diff changeset
35 *
jurzua
parents:
diff changeset
36 * @author jurzua
jurzua
parents:
diff changeset
37 */
jurzua
parents:
diff changeset
38 public class AbstractISMIBean extends AbstractBean implements Serializable{
jurzua
parents:
diff changeset
39
jurzua
parents:
diff changeset
40 private static final long serialVersionUID = 9193140306343947209L;
jurzua
parents:
diff changeset
41
jurzua
parents:
diff changeset
42 private static Logger logger = Logger.getLogger(AbstractISMIBean.class);
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 92
diff changeset
43 private static Logger txLog = Logger.getLogger(PersistenceService.TRANSACTION_LOGGER);
1
jurzua
parents:
diff changeset
44
jurzua
parents:
diff changeset
45 public static String WITNESS = "WITNESS";
jurzua
parents:
diff changeset
46 public static String TEXT = "TEXT";
jurzua
parents:
diff changeset
47 public static String PERSON = "PERSON";
jurzua
parents:
diff changeset
48 public static String COLLECTION = "COLLECTION";
jurzua
parents:
diff changeset
49 public static String CODEX = "CODEX";
jurzua
parents:
diff changeset
50 public static String REPOSITORY = "REPOSITORY";
jurzua
parents:
diff changeset
51 public static String ALIAS = "ALIAS";
jurzua
parents:
diff changeset
52 public static String PLACE = "PLACE";
jurzua
parents:
diff changeset
53 public static String SUBJECT = "SUBJECT";
jurzua
parents:
diff changeset
54 public static String REFERENCE = "REFERENCE";
jurzua
parents:
diff changeset
55 public static String ROLE = "ROLE";
jurzua
parents:
diff changeset
56 public static String DIGITALIZATION = "DIGITALIZATION";
jurzua
parents:
diff changeset
57 public static String FLORUIT_DATE = "FLORUIT_DATE";
jurzua
parents:
diff changeset
58
jurzua
parents:
diff changeset
59 public static String is_digitalization_of = "is_digitalization_of";
jurzua
parents:
diff changeset
60 public static String is_part_of = "is_part_of";
jurzua
parents:
diff changeset
61 public static String is_in = "is_in";
jurzua
parents:
diff changeset
62 public static String has_subject = "has_subject";
jurzua
parents:
diff changeset
63 public static String misattributed_to = "misattributed_to";
jurzua
parents:
diff changeset
64 public static String lived_in = "lived_in";
jurzua
parents:
diff changeset
65 public static String owned_by = "owned_by";
jurzua
parents:
diff changeset
66 public static String has_role = "has_role";
jurzua
parents:
diff changeset
67 public static String was_student_of = "was_student_of";
jurzua
parents:
diff changeset
68 public static String is_alias_name_of = "is_alias_name_of";
jurzua
parents:
diff changeset
69 public static String is_prime_alias_name_of = "is_prime_alias_name_of";
jurzua
parents:
diff changeset
70 public static String is_alias_title_of = "is_alias_title_of";
jurzua
parents:
diff changeset
71 public static String is_prime_alias_title_of = "is_prime_alias_title_of";
jurzua
parents:
diff changeset
72 public static String alias = "alias";
jurzua
parents:
diff changeset
73 public static String has_floruit_date = "has_floruit_date";
jurzua
parents:
diff changeset
74
jurzua
parents:
diff changeset
75 public static String rel_was_created_by = "was_created_by";
jurzua
parents:
diff changeset
76 public static String rel_was_copied_by = "was_copied_by";
jurzua
parents:
diff changeset
77 public static String is_exemplar_of = "is_exemplar_of";
jurzua
parents:
diff changeset
78 public static String is_possible_exemplar_of = "is_possible_exemplar_of";
jurzua
parents:
diff changeset
79 public static String rel_had_patron = "had_patron";
jurzua
parents:
diff changeset
80 public static String rel_has_title_written_as = "has_title_written_as";
jurzua
parents:
diff changeset
81 public static String rel_has_author_written_as = "has_author_written_as";
jurzua
parents:
diff changeset
82 public static String rel_is_reference_of = "is_reference_of";
jurzua
parents:
diff changeset
83
jurzua
parents:
diff changeset
84 public static String rel_was_studied_by = "was_studied_by";
jurzua
parents:
diff changeset
85
jurzua
parents:
diff changeset
86 public static String PAGE_EDITOR = "entry_edit_entity";
jurzua
parents:
diff changeset
87 public static String PAGE_SIMPLE_SEARCH = "simple_search";
jurzua
parents:
diff changeset
88 public static String PAGE_MERGE = "general_merge";
jurzua
parents:
diff changeset
89
jurzua
parents:
diff changeset
90 //some attributes names
jurzua
parents:
diff changeset
91 public static String name = "name";
jurzua
parents:
diff changeset
92 public static String name_translit = "name_translit";
jurzua
parents:
diff changeset
93 public static String full_title_translit = "full_title_translit";
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 public static int MAX_SUGGEST = 25;
jurzua
parents:
diff changeset
96
jurzua
parents:
diff changeset
97 protected boolean selectedSaveAsNew = false;
jurzua
parents:
diff changeset
98
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
99 private HashSet<StatusChecker> statusCheckers = new HashSet<StatusChecker>();
1
jurzua
parents:
diff changeset
100 private boolean warning = false;
jurzua
parents:
diff changeset
101 private String warningMessage = "";
jurzua
parents:
diff changeset
102 private boolean displayWarning = false;
jurzua
parents:
diff changeset
103
jurzua
parents:
diff changeset
104 //private PanelPopup popup = new PanelPopup();
jurzua
parents:
diff changeset
105 //private String popupText = "";
jurzua
parents:
diff changeset
106
jurzua
parents:
diff changeset
107 private String currentId;
jurzua
parents:
diff changeset
108 private String currentIdMsg;
jurzua
parents:
diff changeset
109
jurzua
parents:
diff changeset
110 // used in the new version
jurzua
parents:
diff changeset
111 private Boolean create_error = false;
jurzua
parents:
diff changeset
112 private String selectedWitnessID = "0";
jurzua
parents:
diff changeset
113 private boolean showWitness;
jurzua
parents:
diff changeset
114 private boolean showTitle = false;
jurzua
parents:
diff changeset
115
jurzua
parents:
diff changeset
116 private Map<String, String> attributes = new HashMap<String, String>();
jurzua
parents:
diff changeset
117 protected String defObjectClass = null;
jurzua
parents:
diff changeset
118
jurzua
parents:
diff changeset
119 protected String displayUrl;
jurzua
parents:
diff changeset
120
jurzua
parents:
diff changeset
121 protected Entity entity;
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 protected long start;
jurzua
parents:
diff changeset
124
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
125 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
126 * Save current entity.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
127 *
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
128 * @return
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
129 */
1
jurzua
parents:
diff changeset
130 public String save(){
jurzua
parents:
diff changeset
131 logger.info("*************** START Saving "+ this.defObjectClass + " [ID=" + entity.getId() +", user"+ getUserName() +"] *********************");
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 92
diff changeset
132 txLog.debug("*** START Saving "+ this.defObjectClass + " id=" + entity.getId() +" user="+getUserName());
1
jurzua
parents:
diff changeset
133 this.start = System.currentTimeMillis();
jurzua
parents:
diff changeset
134 return null;
jurzua
parents:
diff changeset
135 }
jurzua
parents:
diff changeset
136
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
137 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
138 * End saving current entity.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
139 *
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
140 * To be called at the end of save().
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
141 */
1
jurzua
parents:
diff changeset
142 protected void saveEnd(){
jurzua
parents:
diff changeset
143 logger.info("*************** END Saving "+ this.defObjectClass + " [ID=" + entity.getId() +", user"+ getUserName() +"] *********************\n");
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 92
diff changeset
144 txLog.debug("*** END Saving "+ this.defObjectClass + " id=" + entity.getId() +" user="+getUserName());
1
jurzua
parents:
diff changeset
145 }
jurzua
parents:
diff changeset
146
jurzua
parents:
diff changeset
147 public Entity getEntity() {
jurzua
parents:
diff changeset
148 if (this.entity == null) {
jurzua
parents:
diff changeset
149 this.entity = new Entity();
jurzua
parents:
diff changeset
150 this.entity.setObjectClass(defObjectClass);
jurzua
parents:
diff changeset
151 this.entity.setLightweight(false);
jurzua
parents:
diff changeset
152 this.loadAttributes(this.entity);
jurzua
parents:
diff changeset
153 }
jurzua
parents:
diff changeset
154 return entity;
jurzua
parents:
diff changeset
155 }
jurzua
parents:
diff changeset
156
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
157 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
158 * Add save confirmation to message.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
159 */
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
160 protected void printSuccessSavingEntity() {
1
jurzua
parents:
diff changeset
161 this.addGeneralMsg("The entity was successfully saved!");
jurzua
parents:
diff changeset
162 this.addGeneralMsg("Its ID is " + this.entity.getId());
jurzua
parents:
diff changeset
163 }
jurzua
parents:
diff changeset
164
105
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
165 /**
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
166 * Set the current Entity and parse data for the form.
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
167 *
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
168 * @param entity
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
169 */
1
jurzua
parents:
diff changeset
170 public void setEntity(Entity entity) {
jurzua
parents:
diff changeset
171 this.entity = entity;
jurzua
parents:
diff changeset
172 }
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 public String getSaveButtonLabel(){
jurzua
parents:
diff changeset
175 if(entity.isPersistent())
jurzua
parents:
diff changeset
176 return "Save";
jurzua
parents:
diff changeset
177 return "Create";
jurzua
parents:
diff changeset
178 }
jurzua
parents:
diff changeset
179
jurzua
parents:
diff changeset
180 public boolean isRenderSaveButton(){
jurzua
parents:
diff changeset
181 //#{(CurrentText.entity.id == null and Session.canCreate) || (CurrentText.entity.id != null and Session.canEdit)}
jurzua
parents:
diff changeset
182 if((!entity.isPersistent() && getSessionBean().isCanCreate()) ||
jurzua
parents:
diff changeset
183 entity.isPersistent() && getSessionBean().isCanEdit())
jurzua
parents:
diff changeset
184 return true;
jurzua
parents:
diff changeset
185 return false;
jurzua
parents:
diff changeset
186 }
jurzua
parents:
diff changeset
187
92
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
188 /**
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
189 * Clear the bean by setting a new empty entity.
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
190 * @return
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
191 */
1
jurzua
parents:
diff changeset
192 public String clearAction(){
jurzua
parents:
diff changeset
193 System.out.println("clearAction");
jurzua
parents:
diff changeset
194 this.entity = new Entity(Node.TYPE_ABOX, this.defObjectClass, false);
jurzua
parents:
diff changeset
195 this.setEntity(this.entity);
jurzua
parents:
diff changeset
196 return PAGE_EDITOR;
jurzua
parents:
diff changeset
197 }
jurzua
parents:
diff changeset
198
92
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
199 /**
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
200 * Reload the bean using the entity with currentId.
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
201 * @return
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
202 */
90
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
203 public String actionReloadEntity() {
1
jurzua
parents:
diff changeset
204 Long id = null;
90
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
205 try {
1
jurzua
parents:
diff changeset
206 id = new Long(this.getCurrentId());
90
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
207 } catch (Exception e) {}
1
jurzua
parents:
diff changeset
208
90
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
209 if (id != null) {
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
210 Entity newEnt = getWrapper().getEntityById(id);
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
211 if (newEnt != null && newEnt.getObjectClass().equals(this.defObjectClass)) {
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
212 this.setEntity(newEnt);
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
213 } else {
1
jurzua
parents:
diff changeset
214 this.setCurrentIdMsg("Entity no found!");
jurzua
parents:
diff changeset
215 }
90
72b877076f43 small cleanup.
casties
parents: 60
diff changeset
216 } else {
1
jurzua
parents:
diff changeset
217 this.setCurrentIdMsg("ID is not valid!");
jurzua
parents:
diff changeset
218 }
jurzua
parents:
diff changeset
219 return PAGE_EDITOR;
jurzua
parents:
diff changeset
220 }
jurzua
parents:
diff changeset
221
jurzua
parents:
diff changeset
222 public String getDisplayUrl() {
jurzua
parents:
diff changeset
223 return displayUrl;
jurzua
parents:
diff changeset
224 }
jurzua
parents:
diff changeset
225
jurzua
parents:
diff changeset
226 public void setDisplayUrl(String displayUrl) {
jurzua
parents:
diff changeset
227 this.displayUrl = displayUrl;
jurzua
parents:
diff changeset
228 }
jurzua
parents:
diff changeset
229
jurzua
parents:
diff changeset
230 public static String generateDisplayUrl(Entity author, Entity title, Entity witness, String rootUrl){
jurzua
parents:
diff changeset
231 //example: ?personId=414996&textId=36650&witnessId=66802#witnesses
jurzua
parents:
diff changeset
232 StringBuilder sb = new StringBuilder();
jurzua
parents:
diff changeset
233 if(author != null && author.isPersistent()){
jurzua
parents:
diff changeset
234 sb.append(rootUrl + "/search/displayAuthor.xhtml?");
jurzua
parents:
diff changeset
235 sb.append("personId=" + author.getId());
jurzua
parents:
diff changeset
236 if(title != null && title.isPersistent()){
jurzua
parents:
diff changeset
237 sb.append("&textId=" + title.getId());
jurzua
parents:
diff changeset
238 if(witness != null && witness.isPersistent()){
jurzua
parents:
diff changeset
239 sb.append("&witness=" + witness.getId());
jurzua
parents:
diff changeset
240 sb.append("#witnesses");
jurzua
parents:
diff changeset
241 }else{
jurzua
parents:
diff changeset
242 sb.append("#titles");
jurzua
parents:
diff changeset
243 }
jurzua
parents:
diff changeset
244 }
jurzua
parents:
diff changeset
245 }else if(title != null && title.isPersistent()){
jurzua
parents:
diff changeset
246 sb.append(rootUrl + "/search/displayTitle.xhtml?");
jurzua
parents:
diff changeset
247 sb.append("&textId=" + title.getId());
jurzua
parents:
diff changeset
248 if(witness != null && witness.isPersistent()){
jurzua
parents:
diff changeset
249 sb.append("&witness=" + witness.getId());
jurzua
parents:
diff changeset
250 sb.append("#witnesses");
jurzua
parents:
diff changeset
251 }else{
jurzua
parents:
diff changeset
252 sb.append("#titles");
jurzua
parents:
diff changeset
253 }
jurzua
parents:
diff changeset
254
jurzua
parents:
diff changeset
255 }
jurzua
parents:
diff changeset
256 return sb.toString();
jurzua
parents:
diff changeset
257 }
jurzua
parents:
diff changeset
258
jurzua
parents:
diff changeset
259 //********************************
jurzua
parents:
diff changeset
260 //**** PUBLICATIONS END NOTE *****
jurzua
parents:
diff changeset
261 //********************************
jurzua
parents:
diff changeset
262
jurzua
parents:
diff changeset
263 private ReferenceTable endNoteRefTable = new ReferenceTable();
jurzua
parents:
diff changeset
264
jurzua
parents:
diff changeset
265 protected void loadEndNoteRefs(){
jurzua
parents:
diff changeset
266 this.endNoteRefTable.loadRefs(getEntRefs());
jurzua
parents:
diff changeset
267 }
jurzua
parents:
diff changeset
268
jurzua
parents:
diff changeset
269 public ReferenceTable getEndNoteRefTable() {
jurzua
parents:
diff changeset
270 return endNoteRefTable;
jurzua
parents:
diff changeset
271 }
jurzua
parents:
diff changeset
272
jurzua
parents:
diff changeset
273 public void setEndNoteRefTable(ReferenceTable endNoteRefTable) {
jurzua
parents:
diff changeset
274 this.endNoteRefTable = endNoteRefTable;
jurzua
parents:
diff changeset
275 }
jurzua
parents:
diff changeset
276
jurzua
parents:
diff changeset
277 private List<Entity> getEntRefs(){
jurzua
parents:
diff changeset
278 List<Entity> rs = new ArrayList<Entity>();
jurzua
parents:
diff changeset
279 for (Relation rel : this.entity.getTargetRelations()) {
jurzua
parents:
diff changeset
280 if (rel.getOwnValue().equals(rel_is_reference_of)) {
jurzua
parents:
diff changeset
281 rs.add(getWrapper().getEntityByIdWithContent(rel.getSourceId()));
jurzua
parents:
diff changeset
282 }
jurzua
parents:
diff changeset
283 }
jurzua
parents:
diff changeset
284 return rs;
jurzua
parents:
diff changeset
285 }
jurzua
parents:
diff changeset
286
jurzua
parents:
diff changeset
287
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
288 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
289 * Save references and set relations.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
290 *
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
291 * @throws Exception
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
292 */
1
jurzua
parents:
diff changeset
293 protected void prepareEndNoteRefs2Save() throws Exception{
jurzua
parents:
diff changeset
294 //REFERENCE -> is_reference_of -> WITNESS
jurzua
parents:
diff changeset
295 this.entity.removeAllTargetRelationsByName(rel_is_reference_of);
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
296 for (SelectableObject<Reference> so : this.endNoteRefTable.list) {
1
jurzua
parents:
diff changeset
297 Reference ref = so.getObj();
jurzua
parents:
diff changeset
298 Entity entRef = ref.getEnt();
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
299 getWrapper().saveEntity(entRef, getUserName());
1
jurzua
parents:
diff changeset
300 //entity can be no persistent, therefore the assignment of the relation should be done after the save
jurzua
parents:
diff changeset
301 entRef.addSourceRelation(rel_is_reference_of, entity);
jurzua
parents:
diff changeset
302 //new Relation(entRef, entity, rel_is_reference_of);
jurzua
parents:
diff changeset
303 }
jurzua
parents:
diff changeset
304 }
jurzua
parents:
diff changeset
305
jurzua
parents:
diff changeset
306
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
307 public static Calendar updateCalendar(Attribute att){
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
308 Calendar calendar = null;
1
jurzua
parents:
diff changeset
309 if(att != null && StringUtils.isNotEmpty(att.getOwnValue())){
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
310 calendar = new Calendar(att.getOwnValue());
1
jurzua
parents:
diff changeset
311 }else{
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
312 calendar = new Calendar();
1
jurzua
parents:
diff changeset
313 }
jurzua
parents:
diff changeset
314 return calendar;
jurzua
parents:
diff changeset
315 }
jurzua
parents:
diff changeset
316
92
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
317 /**
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
318 * Load all (defined) attributes of the entity into this.attributes.
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
319 *
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
320 * Creates new empty attributes if entity=null.
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
321 *
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
322 * @param entity
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
323 */
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
324 protected void loadAttributes(Entity entity) {
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
325 attributes = new HashMap<String, String>();
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
326 if (entity != null) {
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
327 for (Attribute defAtt : getWrapper().getDefAttributes(this.defObjectClass)) {
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
328 Attribute originalAtt = entity.getAttributeByName(defAtt.getOwnValue());
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
329 String attValue = (originalAtt != null) ? originalAtt.getOwnValue() : "";
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
330 attributes.put(defAtt.getOwnValue(), attValue);
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
331 }
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
332 } else {
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
333 for (Attribute defAtt : getWrapper().getDefAttributes(this.defObjectClass)) {
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
334 attributes.put(defAtt.getOwnValue(), "");
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
335 }
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
336 }
be377d5f9cc4 more comments and cleanup.
casties
parents: 91
diff changeset
337 }
1
jurzua
parents:
diff changeset
338
105
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
339 /**
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
340 * Clear some selected options.
e27603a39e70 small cleanups.
casties
parents: 95
diff changeset
341 */
1
jurzua
parents:
diff changeset
342 public void reset(){
jurzua
parents:
diff changeset
343 this.setSelectedSaveAsNew(false);
jurzua
parents:
diff changeset
344 this.setCurrentId("");
jurzua
parents:
diff changeset
345 this.setCurrentIdMsg("");
jurzua
parents:
diff changeset
346 this.setAttributes(new HashMap<String, String>());
jurzua
parents:
diff changeset
347 this.displayUrl = null;
jurzua
parents:
diff changeset
348 this.endNoteRefTable = new ReferenceTable();
jurzua
parents:
diff changeset
349 }
jurzua
parents:
diff changeset
350
jurzua
parents:
diff changeset
351 public boolean isSelectedSaveAsNew() {
jurzua
parents:
diff changeset
352 return selectedSaveAsNew;
jurzua
parents:
diff changeset
353 }
jurzua
parents:
diff changeset
354
jurzua
parents:
diff changeset
355 public void setSelectedSaveAsNew(boolean selectedSaveAsNew) {
jurzua
parents:
diff changeset
356 this.selectedSaveAsNew = selectedSaveAsNew;
jurzua
parents:
diff changeset
357 }
jurzua
parents:
diff changeset
358
jurzua
parents:
diff changeset
359 /**
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
360 * Update the defined attributes of the given entity with the
1
jurzua
parents:
diff changeset
361 * attributes of the attributes Map<String, String>.
jurzua
parents:
diff changeset
362 *
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
363 * @return the entity with updated attributes.
1
jurzua
parents:
diff changeset
364 */
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
365 public Entity updateEntityAttributes(Entity entity) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
366 // create entity if it doesn't exist
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
367 if (entity == null) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
368 entity = new Entity(Node.TYPE_ABOX, false);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
369 entity.setObjectClass(this.defObjectClass);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
370 }
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
371 // update all defined attributes
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
372 for (Attribute defAtt : getWrapper().getDefAttributes(this.defObjectClass)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
373 String attName = defAtt.getOwnValue();
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
374 Attribute att = entity.getAttributeByName(attName);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
375 if (StringUtils.isNotEmpty(this.attributes.get(attName))) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
376 // there is an attribute to update
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
377 if (att == null) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
378 // attribute is new
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
379 att = new Attribute(defAtt);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
380 entity.addAttribute(att);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
381 }
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
382 // update value
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
383 att.setOwnValue(this.attributes.get(attName));
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
384 att.setObjectClass(attName);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
385 } else if (att != null) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
386 // there is no attribute to update - delete attribute
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
387 entity.getAttributes().remove(att);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
388 }
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
389 }
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
390 return entity;
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
391 }
1
jurzua
parents:
diff changeset
392
jurzua
parents:
diff changeset
393 protected List<SelectItem> updateSuggestedPersonByRole(String searchWord, String objClass, String attName, String role){
jurzua
parents:
diff changeset
394 List<Attribute> attList = getWrapper().getAttributesByDefByAttName(objClass, attName, searchWord.toString(), -1);
jurzua
parents:
diff changeset
395
jurzua
parents:
diff changeset
396 List<SelectItem> suggestedItems = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
397 if (attList == null)
jurzua
parents:
diff changeset
398 return suggestedItems;
jurzua
parents:
diff changeset
399
jurzua
parents:
diff changeset
400 int count = 0;
jurzua
parents:
diff changeset
401 for (Attribute att : attList) {
jurzua
parents:
diff changeset
402 if(getCache().roleContainsPersonId(role, att.getSourceId())){
jurzua
parents:
diff changeset
403 SelectItem item = new SelectItem(att, att.getOwnValue() + " [" + att.getSourceId() + "]","description: " + att);
jurzua
parents:
diff changeset
404 suggestedItems.add(item);
jurzua
parents:
diff changeset
405 count++;
jurzua
parents:
diff changeset
406 if(count == MAX_SUGGEST)
jurzua
parents:
diff changeset
407 break;
jurzua
parents:
diff changeset
408 }
jurzua
parents:
diff changeset
409 }
jurzua
parents:
diff changeset
410 return suggestedItems;
jurzua
parents:
diff changeset
411 }
jurzua
parents:
diff changeset
412
jurzua
parents:
diff changeset
413 protected List<SelectItem> updateSuggestedItems(ValueChangeEvent event,
jurzua
parents:
diff changeset
414 String objClass, String attName) {
jurzua
parents:
diff changeset
415 return updateSuggestedItems((String) event.getNewValue(), objClass,
jurzua
parents:
diff changeset
416 attName);
jurzua
parents:
diff changeset
417 }
jurzua
parents:
diff changeset
418
jurzua
parents:
diff changeset
419 protected List<SelectItem> updateSuggestedItems(String searchWord,
jurzua
parents:
diff changeset
420 String objClass, String attName) {
jurzua
parents:
diff changeset
421
jurzua
parents:
diff changeset
422 List<Attribute> attList = getWrapper().getAttributesByDefByAttName(objClass, attName, searchWord.toString(), MAX_SUGGEST);
jurzua
parents:
diff changeset
423
jurzua
parents:
diff changeset
424 List<SelectItem> suggestedItems = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
425 if (attList == null)
jurzua
parents:
diff changeset
426 return suggestedItems;
jurzua
parents:
diff changeset
427
jurzua
parents:
diff changeset
428 for (Attribute att : attList) {
jurzua
parents:
diff changeset
429 SelectItem item = new SelectItem(att, att.getOwnValue() + " [" + att.getSourceId() + "]",
jurzua
parents:
diff changeset
430 "description: " + att);
jurzua
parents:
diff changeset
431 suggestedItems.add(item);
jurzua
parents:
diff changeset
432 }
jurzua
parents:
diff changeset
433 return suggestedItems;
jurzua
parents:
diff changeset
434 }
jurzua
parents:
diff changeset
435
jurzua
parents:
diff changeset
436 protected SimpleSearchCache getCache(){
jurzua
parents:
diff changeset
437 return getAppBean().getSimpleSearchCache();
jurzua
parents:
diff changeset
438 }
jurzua
parents:
diff changeset
439
jurzua
parents:
diff changeset
440 protected List<SelectItem> updateSuggestedItems(String objClass,
jurzua
parents:
diff changeset
441 String firstName, String firstValue, String secondName,
jurzua
parents:
diff changeset
442 String secondValue) {
jurzua
parents:
diff changeset
443
jurzua
parents:
diff changeset
444 List<Attribute> attList =
jurzua
parents:
diff changeset
445 getWrapper().
jurzua
parents:
diff changeset
446 searchAttribute(firstName, firstValue, secondName, secondValue, objClass, MAX_SUGGEST);
jurzua
parents:
diff changeset
447
jurzua
parents:
diff changeset
448 List<SelectItem> suggestedItems = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
449 if (attList == null)
jurzua
parents:
diff changeset
450 return suggestedItems;
jurzua
parents:
diff changeset
451
jurzua
parents:
diff changeset
452 for (Attribute att : attList) {
jurzua
parents:
diff changeset
453 SelectItem item = new SelectItem(att, att.getOwnValue() + " [" + att.getSourceId() + "]");
jurzua
parents:
diff changeset
454 suggestedItems.add(item);
jurzua
parents:
diff changeset
455 }
jurzua
parents:
diff changeset
456 return suggestedItems;
jurzua
parents:
diff changeset
457 }
jurzua
parents:
diff changeset
458
jurzua
parents:
diff changeset
459 public Map<String, String> getAttributes() {
jurzua
parents:
diff changeset
460 return attributes;
jurzua
parents:
diff changeset
461 }
jurzua
parents:
diff changeset
462
jurzua
parents:
diff changeset
463 public void setAttributes(Map<String, String> attributes) {
jurzua
parents:
diff changeset
464 this.attributes = attributes;
jurzua
parents:
diff changeset
465 }
jurzua
parents:
diff changeset
466
jurzua
parents:
diff changeset
467 /**
jurzua
parents:
diff changeset
468 * <p>
jurzua
parents:
diff changeset
469 * This method plays the role of a small cache to get quickly the
jurzua
parents:
diff changeset
470 * definitions.
jurzua
parents:
diff changeset
471 * </p>
jurzua
parents:
diff changeset
472 * TODO this method must be implemented into a bean in session context and
jurzua
parents:
diff changeset
473 * research by every beans.
jurzua
parents:
diff changeset
474 *
jurzua
parents:
diff changeset
475 * @param assertion
jurzua
parents:
diff changeset
476 * @return
jurzua
parents:
diff changeset
477 */
jurzua
parents:
diff changeset
478 public Entity getLWDefinition(Entity assertion) {
jurzua
parents:
diff changeset
479 return getWrapper().getDefinition(assertion.getObjectClass());
jurzua
parents:
diff changeset
480 }
jurzua
parents:
diff changeset
481
jurzua
parents:
diff changeset
482 public Entity getLWDefinition(String objClass) {
jurzua
parents:
diff changeset
483 return getWrapper().getDefinition(objClass);
jurzua
parents:
diff changeset
484 }
jurzua
parents:
diff changeset
485
jurzua
parents:
diff changeset
486 /**
jurzua
parents:
diff changeset
487 * <p>
jurzua
parents:
diff changeset
488 * Returns the target's entity of a relation. The returned target is no
jurzua
parents:
diff changeset
489 * light weight.
jurzua
parents:
diff changeset
490 * <p>
jurzua
parents:
diff changeset
491 *
jurzua
parents:
diff changeset
492 * @param rel
jurzua
parents:
diff changeset
493 * @param target
jurzua
parents:
diff changeset
494 * @return
jurzua
parents:
diff changeset
495 */
jurzua
parents:
diff changeset
496 protected Entity getTargetRelation(Relation rel) {
jurzua
parents:
diff changeset
497 Entity target = rel.getTarget();
jurzua
parents:
diff changeset
498 if (target == null) {
jurzua
parents:
diff changeset
499 target = getWrapper().getEntityById(rel.getTargetId());
jurzua
parents:
diff changeset
500 rel.setTarget(target);
jurzua
parents:
diff changeset
501 } else if (target.isLightweight()) {
jurzua
parents:
diff changeset
502 target = getWrapper().getEntityContent(target);
jurzua
parents:
diff changeset
503 }
jurzua
parents:
diff changeset
504 return target;
jurzua
parents:
diff changeset
505 }
jurzua
parents:
diff changeset
506
jurzua
parents:
diff changeset
507 protected Attribute getTargetAttribute(Entity target, String name) {
jurzua
parents:
diff changeset
508 Attribute att = getWrapper().getAttributeByName(target.getId(), name);
jurzua
parents:
diff changeset
509
jurzua
parents:
diff changeset
510 if (att == null) {
jurzua
parents:
diff changeset
511 att = new Attribute();
jurzua
parents:
diff changeset
512 att.setOwnValue(target.getOwnValue());
jurzua
parents:
diff changeset
513 }
jurzua
parents:
diff changeset
514 return att;
jurzua
parents:
diff changeset
515 }
jurzua
parents:
diff changeset
516
jurzua
parents:
diff changeset
517 protected WrapperService getWrapper() {
jurzua
parents:
diff changeset
518 return getAppBean().getWrapper();
jurzua
parents:
diff changeset
519 }
jurzua
parents:
diff changeset
520
jurzua
parents:
diff changeset
521 /**
jurzua
parents:
diff changeset
522 * <p>
jurzua
parents:
diff changeset
523 * Return the <code>FacesContext</code> instance for the current request.
jurzua
parents:
diff changeset
524 */
jurzua
parents:
diff changeset
525 protected FacesContext context() {
jurzua
parents:
diff changeset
526 return (FacesContext.getCurrentInstance());
jurzua
parents:
diff changeset
527 }
jurzua
parents:
diff changeset
528
jurzua
parents:
diff changeset
529 public void setCreate_error(Boolean create_error) {
jurzua
parents:
diff changeset
530 this.create_error = create_error;
jurzua
parents:
diff changeset
531 }
jurzua
parents:
diff changeset
532
jurzua
parents:
diff changeset
533 public Boolean getCreate_error() {
jurzua
parents:
diff changeset
534 return create_error;
jurzua
parents:
diff changeset
535 }
jurzua
parents:
diff changeset
536
jurzua
parents:
diff changeset
537 /**
jurzua
parents:
diff changeset
538 * Eine Liste <code>toBeRestricted</code> wird so eingeschraenkt, dass nur
jurzua
parents:
diff changeset
539 * noch die jenigen uebrig bleiben, die �ber die Relation
jurzua
parents:
diff changeset
540 * <code>relation</code> mit einem der Elemente aus
jurzua
parents:
diff changeset
541 * <code>contraintIds</code> verbunden sind.
jurzua
parents:
diff changeset
542 *
jurzua
parents:
diff changeset
543 * @param toBeRestricted
jurzua
parents:
diff changeset
544 * @param constraintIds
jurzua
parents:
diff changeset
545 * @param relation
jurzua
parents:
diff changeset
546 * @param mode
jurzua
parents:
diff changeset
547 * @return
jurzua
parents:
diff changeset
548 */
jurzua
parents:
diff changeset
549 protected List<SelectItem> restrictList(List<SelectItem> toBeRestricted,
jurzua
parents:
diff changeset
550 List<String> constraintIds, String relation, String mode) {
jurzua
parents:
diff changeset
551
jurzua
parents:
diff changeset
552 List<SelectItem> newList = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
553
jurzua
parents:
diff changeset
554 for (SelectItem s : toBeRestricted) {
jurzua
parents:
diff changeset
555 Entity ent = getWrapper().getEntityById(
jurzua
parents:
diff changeset
556 Long.valueOf((String) s.getValue()));
jurzua
parents:
diff changeset
557 if (s.getValue().equals("0")) {
jurzua
parents:
diff changeset
558 newList.add(s);
jurzua
parents:
diff changeset
559 continue;
jurzua
parents:
diff changeset
560 }
jurzua
parents:
diff changeset
561
jurzua
parents:
diff changeset
562 List<Relation> rels;
jurzua
parents:
diff changeset
563 if (mode.equals("target")) {
jurzua
parents:
diff changeset
564 rels = ent.getTargetRelations();
jurzua
parents:
diff changeset
565 } else if (mode.equals("source")) {
jurzua
parents:
diff changeset
566 rels = ent.getSourceRelations();
jurzua
parents:
diff changeset
567 } else {
jurzua
parents:
diff changeset
568 System.err.println("restrict List - mode not defined:" + mode);
jurzua
parents:
diff changeset
569 return null;
jurzua
parents:
diff changeset
570 }
jurzua
parents:
diff changeset
571
jurzua
parents:
diff changeset
572 for (Relation r : rels) {
jurzua
parents:
diff changeset
573 if (r.getObjectClass().equals(relation)) {
jurzua
parents:
diff changeset
574 Long id;
jurzua
parents:
diff changeset
575 if (mode.equals("target")) {
jurzua
parents:
diff changeset
576 id = r.getSource().getId();
jurzua
parents:
diff changeset
577 } else if (mode.equals("source")) {
jurzua
parents:
diff changeset
578 id = r.getTarget().getId();
jurzua
parents:
diff changeset
579 } else {
jurzua
parents:
diff changeset
580 System.err.println("restrict List - mode not defined:"
jurzua
parents:
diff changeset
581 + mode);
jurzua
parents:
diff changeset
582 return null;
jurzua
parents:
diff changeset
583 }
jurzua
parents:
diff changeset
584 if (constraintIds.contains(String.valueOf(id))) {
jurzua
parents:
diff changeset
585 newList.add(s);
jurzua
parents:
diff changeset
586 }
jurzua
parents:
diff changeset
587 }
jurzua
parents:
diff changeset
588 }
jurzua
parents:
diff changeset
589 }
jurzua
parents:
diff changeset
590
jurzua
parents:
diff changeset
591 return newList;
jurzua
parents:
diff changeset
592 }
jurzua
parents:
diff changeset
593
jurzua
parents:
diff changeset
594 public String getSelectedWitnessID() {
jurzua
parents:
diff changeset
595 return selectedWitnessID;
jurzua
parents:
diff changeset
596 }
jurzua
parents:
diff changeset
597
jurzua
parents:
diff changeset
598 public void setShowWitness(boolean showWitness) {
jurzua
parents:
diff changeset
599 this.showWitness = showWitness;
jurzua
parents:
diff changeset
600 }
jurzua
parents:
diff changeset
601
jurzua
parents:
diff changeset
602 public boolean isShowWitness() {
jurzua
parents:
diff changeset
603 return showWitness;
jurzua
parents:
diff changeset
604 }
jurzua
parents:
diff changeset
605
jurzua
parents:
diff changeset
606 public void setShowTitle(boolean showTitle) {
jurzua
parents:
diff changeset
607 this.showTitle = showTitle;
jurzua
parents:
diff changeset
608 }
jurzua
parents:
diff changeset
609
jurzua
parents:
diff changeset
610 public boolean isShowTitle() {
jurzua
parents:
diff changeset
611 return showTitle;
jurzua
parents:
diff changeset
612 }
jurzua
parents:
diff changeset
613 /*
jurzua
parents:
diff changeset
614 public PanelPopup getPopup() {
jurzua
parents:
diff changeset
615 return popup;
jurzua
parents:
diff changeset
616 }
jurzua
parents:
diff changeset
617
jurzua
parents:
diff changeset
618 public void setPopup(PanelPopup popup) {
jurzua
parents:
diff changeset
619 this.popup = popup;
jurzua
parents:
diff changeset
620 }
jurzua
parents:
diff changeset
621
jurzua
parents:
diff changeset
622 public String getPopupText() {
jurzua
parents:
diff changeset
623 return popupText;
jurzua
parents:
diff changeset
624 }
jurzua
parents:
diff changeset
625
jurzua
parents:
diff changeset
626 public void setPopupText(String popupText) {
jurzua
parents:
diff changeset
627 this.popupText = popupText;
jurzua
parents:
diff changeset
628 }*/
jurzua
parents:
diff changeset
629
jurzua
parents:
diff changeset
630
jurzua
parents:
diff changeset
631 public String getUserName(){
jurzua
parents:
diff changeset
632 User user = getSessionUser();
jurzua
parents:
diff changeset
633 if(user == null)
jurzua
parents:
diff changeset
634 return "";
jurzua
parents:
diff changeset
635 else
jurzua
parents:
diff changeset
636 return user.getEmail();
jurzua
parents:
diff changeset
637 }
jurzua
parents:
diff changeset
638
jurzua
parents:
diff changeset
639 public User getSessionUser() {
jurzua
parents:
diff changeset
640 SessionBean bean = getSessionBean();
jurzua
parents:
diff changeset
641 if(bean != null){
jurzua
parents:
diff changeset
642 return bean.getUser();
jurzua
parents:
diff changeset
643 }else{
jurzua
parents:
diff changeset
644 return null;
jurzua
parents:
diff changeset
645 }
jurzua
parents:
diff changeset
646 }
jurzua
parents:
diff changeset
647
jurzua
parents:
diff changeset
648 public void fillList(List<SelectItem> list, String[] array) {
jurzua
parents:
diff changeset
649 list.add(new SelectItem(""));
jurzua
parents:
diff changeset
650 for (int i = 0; i < array.length; i++) {
jurzua
parents:
diff changeset
651 list.add(new SelectItem(array[i]));
jurzua
parents:
diff changeset
652 }
jurzua
parents:
diff changeset
653
jurzua
parents:
diff changeset
654 }
jurzua
parents:
diff changeset
655
jurzua
parents:
diff changeset
656 public boolean isWarning() {
jurzua
parents:
diff changeset
657 return warning;
jurzua
parents:
diff changeset
658 }
jurzua
parents:
diff changeset
659
jurzua
parents:
diff changeset
660 public void setWarning(boolean warning) {
jurzua
parents:
diff changeset
661 this.warning = warning;
jurzua
parents:
diff changeset
662 }
jurzua
parents:
diff changeset
663
jurzua
parents:
diff changeset
664 public void setWarningMessage(String warningMessage) {
jurzua
parents:
diff changeset
665 this.warningMessage = warningMessage;
jurzua
parents:
diff changeset
666 }
jurzua
parents:
diff changeset
667
jurzua
parents:
diff changeset
668 public String getWarningMessage() {
jurzua
parents:
diff changeset
669 return warningMessage;
jurzua
parents:
diff changeset
670 }
jurzua
parents:
diff changeset
671
jurzua
parents:
diff changeset
672 public void setDisplayWarning(boolean displayWarning) {
jurzua
parents:
diff changeset
673 this.displayWarning = displayWarning;
jurzua
parents:
diff changeset
674 }
jurzua
parents:
diff changeset
675
jurzua
parents:
diff changeset
676 public boolean isDisplayWarning() {
jurzua
parents:
diff changeset
677 return displayWarning;
jurzua
parents:
diff changeset
678 }
jurzua
parents:
diff changeset
679
jurzua
parents:
diff changeset
680 public void registerChecker(StatusChecker sc) {
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
681 statusCheckers.add(sc);
1
jurzua
parents:
diff changeset
682 }
jurzua
parents:
diff changeset
683
jurzua
parents:
diff changeset
684 public void registerChecker(ListenerObject lo, String message) {
jurzua
parents:
diff changeset
685 registerChecker(lo.statusImage, message);
jurzua
parents:
diff changeset
686
jurzua
parents:
diff changeset
687 }
jurzua
parents:
diff changeset
688
jurzua
parents:
diff changeset
689 public void registerChecker(StatusChecker sc, String message) {
jurzua
parents:
diff changeset
690 sc.setMessage(message);
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
691 statusCheckers.add(sc);
1
jurzua
parents:
diff changeset
692 }
jurzua
parents:
diff changeset
693
jurzua
parents:
diff changeset
694 class CheckResults {
jurzua
parents:
diff changeset
695 List<String> errors = new ArrayList<String>();
jurzua
parents:
diff changeset
696 List<String> warnings = new ArrayList<String>();
jurzua
parents:
diff changeset
697 public boolean hasErrors = false;
jurzua
parents:
diff changeset
698 public boolean hasWarnings = false;
jurzua
parents:
diff changeset
699
jurzua
parents:
diff changeset
700 }
jurzua
parents:
diff changeset
701
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
702 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
703 * Get the result from all StatusCheckers.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
704 *
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
705 * @return
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
706 */
1
jurzua
parents:
diff changeset
707 public CheckResults getCheckResults() {
jurzua
parents:
diff changeset
708 CheckResults cr = new CheckResults();
jurzua
parents:
diff changeset
709
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
710 for (StatusChecker sc : statusCheckers) {
1
jurzua
parents:
diff changeset
711 if (sc.getStatus().equals("false")) {
jurzua
parents:
diff changeset
712 cr.hasErrors = true;
jurzua
parents:
diff changeset
713 cr.errors.add(sc.getMessage());
jurzua
parents:
diff changeset
714 } else if (sc.getStatus().equals("unset")) {
jurzua
parents:
diff changeset
715 cr.hasWarnings = true;
jurzua
parents:
diff changeset
716 cr.warnings.add(sc.getMessage());
jurzua
parents:
diff changeset
717 }
jurzua
parents:
diff changeset
718 }
jurzua
parents:
diff changeset
719 return cr;
jurzua
parents:
diff changeset
720 }
jurzua
parents:
diff changeset
721
jurzua
parents:
diff changeset
722 protected ListenerObject changeValue(String ownvalue, ListenerObject lo, String suggestType, String suggestAttributeName,
jurzua
parents:
diff changeset
723 List<SelectItem> restrictedItems) {
jurzua
parents:
diff changeset
724 if (restrictedItems != null) {
jurzua
parents:
diff changeset
725 lo.suggestedItems = restrictedItems;}
jurzua
parents:
diff changeset
726
jurzua
parents:
diff changeset
727 if (ownvalue == null || ownvalue.equals(""))
jurzua
parents:
diff changeset
728 lo.statusImage.setStatus("unset");
jurzua
parents:
diff changeset
729 else
jurzua
parents:
diff changeset
730 lo.statusImage.setStatus("false");
jurzua
parents:
diff changeset
731 lo.entity = null;
jurzua
parents:
diff changeset
732 // setze erst mal den Eigenwert auf das eingebene.
jurzua
parents:
diff changeset
733 Attribute at = new Attribute();
jurzua
parents:
diff changeset
734 at.setOwnValue(ownvalue);
jurzua
parents:
diff changeset
735 lo.attribute = at;
jurzua
parents:
diff changeset
736 Entity element = null;
jurzua
parents:
diff changeset
737 if (lo.suggestedItems != null) // schaue in der liste der vorgebenen Ereignisse nach.
jurzua
parents:
diff changeset
738 for (SelectItem item : lo.suggestedItems) {
jurzua
parents:
diff changeset
739 if (item.getLabel().equals(ownvalue)) {
jurzua
parents:
diff changeset
740 if (Attribute.class.isInstance(item.getValue())){ // entweder es ist schon ein attribute
jurzua
parents:
diff changeset
741 lo.attribute = (Attribute) item.getValue();
jurzua
parents:
diff changeset
742 element = getWrapper().getEntityById(
jurzua
parents:
diff changeset
743 lo.attribute.getSourceId());
jurzua
parents:
diff changeset
744 }else{ //oder ein paar wert / id// = (Attribute) item.getValue();
jurzua
parents:
diff changeset
745 element = getWrapper().getEntityById(Long.valueOf((String) item.getValue()));
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 105
diff changeset
746 lo.setEntityAndAttributeName(element, suggestAttributeName);
1
jurzua
parents:
diff changeset
747 }
jurzua
parents:
diff changeset
748 if (element != null) {
jurzua
parents:
diff changeset
749 if(element.isLightweight()){
jurzua
parents:
diff changeset
750 element = getWrapper().getEntityByIdWithContent(element.getId());
jurzua
parents:
diff changeset
751 }
jurzua
parents:
diff changeset
752 lo.entity = element;
jurzua
parents:
diff changeset
753 lo.statusImage.setStatus("ok");
jurzua
parents:
diff changeset
754 }
jurzua
parents:
diff changeset
755 break;
jurzua
parents:
diff changeset
756 }
jurzua
parents:
diff changeset
757
jurzua
parents:
diff changeset
758 } else {
jurzua
parents:
diff changeset
759 //juc *** List<Entity> ents = getWrapper().getLightweightConceptsByAttribute(null, suggestType, suggestAttributeName, ownvalue, 1, false);
jurzua
parents:
diff changeset
760 List<Entity> ents = getWrapper().getEntitiesByAtt(suggestType, suggestAttributeName, ownvalue, 1, false);
jurzua
parents:
diff changeset
761 if (ents.size()==1){
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 105
diff changeset
762 lo.setEntityAndAttributeName(ents.get(0),suggestAttributeName);
1
jurzua
parents:
diff changeset
763 lo.statusImage.setStatus("ok");
jurzua
parents:
diff changeset
764 }
jurzua
parents:
diff changeset
765
jurzua
parents:
diff changeset
766 }
jurzua
parents:
diff changeset
767 return lo;
jurzua
parents:
diff changeset
768
jurzua
parents:
diff changeset
769 }
jurzua
parents:
diff changeset
770
jurzua
parents:
diff changeset
771
jurzua
parents:
diff changeset
772
jurzua
parents:
diff changeset
773 protected ListenerObject changeValuePersonByRole(ValueChangeEvent event, ListenerObject lo, String role){
jurzua
parents:
diff changeset
774 if (event.getNewValue() == null) {
jurzua
parents:
diff changeset
775 return lo;
jurzua
parents:
diff changeset
776 }else if(StringUtils.isEmpty(event.getNewValue().toString()) && (event.getOldValue() == null || StringUtils.isEmpty(event.getOldValue().toString()))){
jurzua
parents:
diff changeset
777 //if the old and new value are empty, then return
jurzua
parents:
diff changeset
778 return lo;
jurzua
parents:
diff changeset
779 }
jurzua
parents:
diff changeset
780 if (event.getNewValue().equals(event.getOldValue())) {
jurzua
parents:
diff changeset
781 return lo;
jurzua
parents:
diff changeset
782 }
jurzua
parents:
diff changeset
783
jurzua
parents:
diff changeset
784 String ownValue = (String) event.getNewValue();
jurzua
parents:
diff changeset
785
jurzua
parents:
diff changeset
786 if(StringUtils.isEmpty(ownValue))
jurzua
parents:
diff changeset
787 lo.statusImage.setStatus("unset");
jurzua
parents:
diff changeset
788 else
jurzua
parents:
diff changeset
789 lo.statusImage.setStatus("false");
jurzua
parents:
diff changeset
790
jurzua
parents:
diff changeset
791 lo.entity = null;
jurzua
parents:
diff changeset
792 // setze erst mal den Eigenwert auf das eingebene.
jurzua
parents:
diff changeset
793 Attribute at = new Attribute();
jurzua
parents:
diff changeset
794 at.setOwnValue(ownValue);
jurzua
parents:
diff changeset
795 lo.attribute = at;
jurzua
parents:
diff changeset
796 for (SelectItem item : lo.suggestedItems) {
jurzua
parents:
diff changeset
797 if (StringUtils.isNotEmpty(item.getLabel()) &&
jurzua
parents:
diff changeset
798 item.getLabel().equals(ownValue)) {
jurzua
parents:
diff changeset
799 //System.out.println("item.getValue()= " + item.getValue());
jurzua
parents:
diff changeset
800 lo.attribute = (Attribute) item.getValue();
jurzua
parents:
diff changeset
801 Entity element = getWrapper().getEntityById(
jurzua
parents:
diff changeset
802 lo.attribute.getSourceId());
jurzua
parents:
diff changeset
803
jurzua
parents:
diff changeset
804 if (element != null) {
jurzua
parents:
diff changeset
805 if(element.isLightweight()){
jurzua
parents:
diff changeset
806 element = getWrapper().getEntityByIdWithContent(element.getId());
jurzua
parents:
diff changeset
807 }
jurzua
parents:
diff changeset
808 lo.entity = element;
jurzua
parents:
diff changeset
809 lo.statusImage.setStatus(StatusImage.STATUS_OK);
jurzua
parents:
diff changeset
810 }
jurzua
parents:
diff changeset
811 break;
jurzua
parents:
diff changeset
812 }
jurzua
parents:
diff changeset
813
jurzua
parents:
diff changeset
814 }
jurzua
parents:
diff changeset
815
jurzua
parents:
diff changeset
816 //juc lo.suggestedItems = updateSuggestedPersonByRole(ownValue, PERSON, "name", role);
jurzua
parents:
diff changeset
817 lo.suggestedItems = updateSuggestedPersonByRole(ownValue, PERSON, "name_translit", role);
jurzua
parents:
diff changeset
818
jurzua
parents:
diff changeset
819
jurzua
parents:
diff changeset
820 return lo;
jurzua
parents:
diff changeset
821 }
jurzua
parents:
diff changeset
822
jurzua
parents:
diff changeset
823 protected ListenerObject changeValue(String ownvalue, ListenerObject lo,
jurzua
parents:
diff changeset
824 String suggestType, String suggestAttributeName) {
jurzua
parents:
diff changeset
825
jurzua
parents:
diff changeset
826 return changeValue(ownvalue, lo, suggestType, suggestAttributeName,
jurzua
parents:
diff changeset
827 null);
jurzua
parents:
diff changeset
828 }
jurzua
parents:
diff changeset
829
jurzua
parents:
diff changeset
830 protected ListenerObject changeListener(ValueChangeEvent event,
jurzua
parents:
diff changeset
831 ListenerObject lo, String suggestType, String suggestAttributeName,
jurzua
parents:
diff changeset
832 String restrictingAttributeName, String restrictingAttributeValue) {
jurzua
parents:
diff changeset
833 try {
jurzua
parents:
diff changeset
834 if (event.getNewValue() == null) {
jurzua
parents:
diff changeset
835 return lo;
jurzua
parents:
diff changeset
836 }else if(StringUtils.isEmpty(event.getNewValue().toString()) && (event.getOldValue() == null || StringUtils.isEmpty(event.getOldValue().toString()))){
jurzua
parents:
diff changeset
837 //if the old and new value are empty, then return
jurzua
parents:
diff changeset
838 return lo;
jurzua
parents:
diff changeset
839 }
jurzua
parents:
diff changeset
840 if (event.getNewValue().equals(event.getOldValue())) {
jurzua
parents:
diff changeset
841 return lo;
jurzua
parents:
diff changeset
842 }
jurzua
parents:
diff changeset
843
jurzua
parents:
diff changeset
844 String ownvalue = (String) event.getNewValue();
jurzua
parents:
diff changeset
845
jurzua
parents:
diff changeset
846 if(StringUtils.isEmpty(ownvalue))
jurzua
parents:
diff changeset
847 lo.statusImage.setStatus(StatusImage.STATUS_UNSET);
jurzua
parents:
diff changeset
848 else
jurzua
parents:
diff changeset
849 lo.statusImage.setStatus(StatusImage.STATUS_FALSE);
jurzua
parents:
diff changeset
850
jurzua
parents:
diff changeset
851 lo.entity = null;
jurzua
parents:
diff changeset
852 // setze erst mal den Eigenwert auf das eingebene.
jurzua
parents:
diff changeset
853 Attribute at = new Attribute();
jurzua
parents:
diff changeset
854 at.setOwnValue(ownvalue);
jurzua
parents:
diff changeset
855 lo.attribute = at;
jurzua
parents:
diff changeset
856 for (SelectItem item : lo.suggestedItems) {
jurzua
parents:
diff changeset
857 if (StringUtils.isNotEmpty(item.getLabel()) &&
jurzua
parents:
diff changeset
858 item.getLabel().equals(ownvalue)) {
jurzua
parents:
diff changeset
859 //System.out.println("item.getValue()= " + item.getValue());
jurzua
parents:
diff changeset
860 lo.attribute = (Attribute) item.getValue();
jurzua
parents:
diff changeset
861 Entity element = getWrapper().getEntityById(
jurzua
parents:
diff changeset
862 lo.attribute.getSourceId());
jurzua
parents:
diff changeset
863
jurzua
parents:
diff changeset
864 if (element != null) {
jurzua
parents:
diff changeset
865 if(element.isLightweight()){
jurzua
parents:
diff changeset
866 element = getWrapper().getEntityByIdWithContent(element.getId());
jurzua
parents:
diff changeset
867 }
jurzua
parents:
diff changeset
868 lo.entity = element;
jurzua
parents:
diff changeset
869 lo.statusImage.setStatus(StatusImage.STATUS_OK);
jurzua
parents:
diff changeset
870 }
jurzua
parents:
diff changeset
871 break;
jurzua
parents:
diff changeset
872 }
jurzua
parents:
diff changeset
873
jurzua
parents:
diff changeset
874 }
jurzua
parents:
diff changeset
875
jurzua
parents:
diff changeset
876 if (restrictingAttributeName == null) {
jurzua
parents:
diff changeset
877 lo.suggestedItems = this.updateSuggestedItems(event,
jurzua
parents:
diff changeset
878 suggestType, suggestAttributeName);
jurzua
parents:
diff changeset
879 } else {
jurzua
parents:
diff changeset
880 lo.suggestedItems = this.updateSuggestedItems(suggestType,
jurzua
parents:
diff changeset
881 suggestAttributeName, event.getNewValue().toString(),
jurzua
parents:
diff changeset
882 restrictingAttributeName, restrictingAttributeValue);
jurzua
parents:
diff changeset
883 }
jurzua
parents:
diff changeset
884
jurzua
parents:
diff changeset
885 } catch (Exception e) {
jurzua
parents:
diff changeset
886 e.printStackTrace();
jurzua
parents:
diff changeset
887 }
jurzua
parents:
diff changeset
888 return lo;
jurzua
parents:
diff changeset
889 }
jurzua
parents:
diff changeset
890
91
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
891 /**
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
892 * Update the ownvalues of entities that are related to the given entity.
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
893 *
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
894 * @param entity
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
895 * @param user
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
896 * @throws Exception
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
897 */
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
898 protected void updateRelatedOW(Entity entity, String user) throws Exception {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
899 List<Entity> nodeList = new ArrayList<Entity>();
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
900
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
901 /*
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
902 * run updates depending on type
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
903 */
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
904 if (entity.getObjectClass().equals(PLACE)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
905 this.generateOW4City(entity, nodeList, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
906 getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
907
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
908 } else if (entity.getObjectClass().equals(REPOSITORY)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
909 this.generateOW4Repository(entity, nodeList, new HashMap<String, String>(), user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
910 getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
911
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
912 } else if (entity.getObjectClass().equals(COLLECTION)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
913 this.generateOW4Collection(entity, nodeList, new HashMap<String, String>(), user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
914 getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
915
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
916 } else if (entity.getObjectClass().equals(CODEX)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
917 this.generateOW4Codex(entity, nodeList, new HashMap<String, String>(), user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
918 getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
919
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
920 } else if (entity.getObjectClass().equals(TEXT)) {
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
921 generateOW4Text(entity, user);
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
922 }
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
923 // TODO PERSON and TEXT
d172201d24ad more comments and refactorings.
casties
parents: 90
diff changeset
924 }
1
jurzua
parents:
diff changeset
925
jurzua
parents:
diff changeset
926 private void generateOW4City(Entity city, List<Entity> nodeList, String user){
jurzua
parents:
diff changeset
927 Map<String, String> map = new HashMap<String, String>();
jurzua
parents:
diff changeset
928 map.put(PLACE, city.getOwnValue());
jurzua
parents:
diff changeset
929
jurzua
parents:
diff changeset
930 List<Entity> repoList = getWrapper().getSourcesForTargetRelation(city, is_in, REPOSITORY, -1);
jurzua
parents:
diff changeset
931 for(Entity repo : repoList){
jurzua
parents:
diff changeset
932 this.generateOW4Repository(repo, nodeList, map, user);
jurzua
parents:
diff changeset
933 }
jurzua
parents:
diff changeset
934 }
jurzua
parents:
diff changeset
935
jurzua
parents:
diff changeset
936 private void generateOW4Repository(Entity repository, List<Entity> nodeList, Map<String, String> map, String user){
jurzua
parents:
diff changeset
937 if(map.size() == 0){
jurzua
parents:
diff changeset
938 List<Entity> placeList = getWrapper().getTargetsForSourceRelation(repository, is_in, PLACE, 1);
jurzua
parents:
diff changeset
939 map.put(PLACE, ((placeList.size() > 0) ? placeList.get(0).getOwnValue() : ""));
jurzua
parents:
diff changeset
940 }
jurzua
parents:
diff changeset
941
jurzua
parents:
diff changeset
942 map.put(REPOSITORY, repository.getOwnValue());
jurzua
parents:
diff changeset
943 List<Entity> collectionList = getWrapper().getSourcesForTargetRelation(repository, is_part_of, COLLECTION, -1);
jurzua
parents:
diff changeset
944 for(Entity collection : collectionList){
jurzua
parents:
diff changeset
945 this.generateOW4Collection(collection, nodeList, map, user);
jurzua
parents:
diff changeset
946 }
jurzua
parents:
diff changeset
947 }
jurzua
parents:
diff changeset
948
jurzua
parents:
diff changeset
949 private void generateOW4Collection(Entity collection, List<Entity> nodeList, Map<String, String> map, String user){
jurzua
parents:
diff changeset
950 if(map.size() == 0){
jurzua
parents:
diff changeset
951 List<Entity> repoList = getWrapper().getTargetsForSourceRelation(collection, is_part_of, REPOSITORY, 1);
jurzua
parents:
diff changeset
952 map.put(REPOSITORY, (repoList.size() > 0) ? repoList.get(0).getOwnValue() : "");
jurzua
parents:
diff changeset
953 if(repoList.size() > 0){
jurzua
parents:
diff changeset
954 Entity repository = repoList.get(0);
jurzua
parents:
diff changeset
955 List<Entity> placeList = getWrapper().getTargetsForSourceRelation(repository, is_in, PLACE, 1);
jurzua
parents:
diff changeset
956 map.put(PLACE, (placeList.size() > 0) ? placeList.get(0).getOwnValue() : "");
jurzua
parents:
diff changeset
957 }else{
jurzua
parents:
diff changeset
958 map.put(REPOSITORY, "");
jurzua
parents:
diff changeset
959 map.put(PLACE, "");
jurzua
parents:
diff changeset
960 }
jurzua
parents:
diff changeset
961 }
jurzua
parents:
diff changeset
962
jurzua
parents:
diff changeset
963 map.put(COLLECTION, collection.getOwnValue());
jurzua
parents:
diff changeset
964 List<Entity> list = getWrapper().getSourcesForTargetRelation(collection, is_part_of, CODEX, -1);
jurzua
parents:
diff changeset
965 for(Entity codex : list){
jurzua
parents:
diff changeset
966 //update ow codex
jurzua
parents:
diff changeset
967 Attribute att = getWrapper().getAttributeByName(codex.getId(), "identifier");
jurzua
parents:
diff changeset
968 if(att != null){
jurzua
parents:
diff changeset
969 codex.setOwnValue(collection.getOwnValue() + "_" + att.getOwnValue());
jurzua
parents:
diff changeset
970 nodeList.add(codex);
jurzua
parents:
diff changeset
971 }
jurzua
parents:
diff changeset
972 this.generateOW4Codex(codex, nodeList, map, user);
jurzua
parents:
diff changeset
973 }
jurzua
parents:
diff changeset
974 }
jurzua
parents:
diff changeset
975
jurzua
parents:
diff changeset
976 private void generateOW4Codex(Entity codex, List<Entity> nodeList, Map<String, String> map, String user){
jurzua
parents:
diff changeset
977 if(map.size() == 0){
jurzua
parents:
diff changeset
978 List<Entity> collList = getWrapper().getTargetsForSourceRelation(codex, is_part_of, COLLECTION, 1);
jurzua
parents:
diff changeset
979 map.put(COLLECTION, (collList.size() > 0 ) ? collList.get(0).getOwnValue() : "");
jurzua
parents:
diff changeset
980 if(collList.size() > 0){
jurzua
parents:
diff changeset
981 Entity collection = collList.get(0);
jurzua
parents:
diff changeset
982 List<Entity> repoList = getWrapper().getTargetsForSourceRelation(collection, is_part_of, REPOSITORY, 1);
jurzua
parents:
diff changeset
983 map.put(REPOSITORY, (repoList.size() > 0) ? repoList.get(0).getOwnValue() : "");
jurzua
parents:
diff changeset
984 if(repoList.size() > 0){
jurzua
parents:
diff changeset
985 Entity repository = repoList.get(0);
jurzua
parents:
diff changeset
986 List<Entity> placeList = getWrapper().getTargetsForSourceRelation(repository, is_in, PLACE, 1);
jurzua
parents:
diff changeset
987 map.put(PLACE, (placeList.size() > 0) ? placeList.get(0).getOwnValue() : "");
jurzua
parents:
diff changeset
988 }else{
jurzua
parents:
diff changeset
989 map.put(PLACE, "");
jurzua
parents:
diff changeset
990 }
jurzua
parents:
diff changeset
991 }else{
jurzua
parents:
diff changeset
992 map.put(COLLECTION, "");
jurzua
parents:
diff changeset
993 map.put(REPOSITORY, "");
jurzua
parents:
diff changeset
994 map.put(PLACE, "");
jurzua
parents:
diff changeset
995 }
jurzua
parents:
diff changeset
996 }
jurzua
parents:
diff changeset
997 List<Entity> list = getWrapper().getSourcesForTargetRelation(codex, is_part_of, WITNESS, -1);
jurzua
parents:
diff changeset
998 String placeText = (StringUtils.isNotEmpty(map.get(PLACE))) ? "_" + map.get(PLACE) : "";
jurzua
parents:
diff changeset
999 String repoText = (StringUtils.isNotEmpty(map.get(REPOSITORY))) ? "_" + map.get(REPOSITORY) : "";
jurzua
parents:
diff changeset
1000 String codexText = (codex != null) ? "_" + codex.getOwnValue() : "";
jurzua
parents:
diff changeset
1001
jurzua
parents:
diff changeset
1002 for(Entity witness : list){
jurzua
parents:
diff changeset
1003 List<Entity> textList = getWrapper().getTargetsForSourceRelation(witness, "is_exemplar_of", TEXT, -1);
jurzua
parents:
diff changeset
1004 String textName = (textList.size() > 0) ? textList.get(0).getOwnValue() : "";
jurzua
parents:
diff changeset
1005 witness.setOwnValue(textName + placeText + repoText + codexText);
jurzua
parents:
diff changeset
1006 nodeList.add(witness);
jurzua
parents:
diff changeset
1007 }
jurzua
parents:
diff changeset
1008 }
jurzua
parents:
diff changeset
1009
jurzua
parents:
diff changeset
1010 private void generateOW4Text(Entity text, String user) throws Exception{
jurzua
parents:
diff changeset
1011 List<Entity> witnessList = getWrapper().getSourcesForTargetRelation(text, "is_exemplar_of", WITNESS, -1);
jurzua
parents:
diff changeset
1012 List<Entity> listToSave = new ArrayList<Entity>();
jurzua
parents:
diff changeset
1013 for(Entity witness : witnessList){
jurzua
parents:
diff changeset
1014 List<Entity> list = getWrapper().getTargetsForSourceRelation(witness, "is_part_of", "CODEX", 1);
jurzua
parents:
diff changeset
1015 if(list.size() > 0){
jurzua
parents:
diff changeset
1016 Entity codex = list.get(0);
jurzua
parents:
diff changeset
1017 list = getWrapper().getTargetsForSourceRelation(codex, "is_part_of", "COLLECTION", 1);
jurzua
parents:
diff changeset
1018 if(list.size() > 0){
jurzua
parents:
diff changeset
1019 Entity collection = list.get(0);
jurzua
parents:
diff changeset
1020 list = getWrapper().getTargetsForSourceRelation(collection, "is_part_of", "REPOSITORY", 1);
jurzua
parents:
diff changeset
1021 if(list.size() > 0){
jurzua
parents:
diff changeset
1022 Entity repository = list.get(0);
jurzua
parents:
diff changeset
1023 list = getWrapper().getTargetsForSourceRelation(repository, "is_in", "PLACE", 1);
jurzua
parents:
diff changeset
1024 if(list.size() > 0){
jurzua
parents:
diff changeset
1025 Entity city = list.get(0);
jurzua
parents:
diff changeset
1026 witness.setOwnValue(text.getOwnValue() + "_" + city.getOwnValue() + "_" + repository.getOwnValue() + "_" + codex.getOwnValue());
jurzua
parents:
diff changeset
1027 listToSave.add(witness);
jurzua
parents:
diff changeset
1028 }
jurzua
parents:
diff changeset
1029 }
jurzua
parents:
diff changeset
1030 }
jurzua
parents:
diff changeset
1031 }
jurzua
parents:
diff changeset
1032 getWrapper().saveEntityListAsNodeWithoutContent(listToSave, user);
jurzua
parents:
diff changeset
1033 }
jurzua
parents:
diff changeset
1034 }
jurzua
parents:
diff changeset
1035
jurzua
parents:
diff changeset
1036 protected SecurityService getSecurityService() {
jurzua
parents:
diff changeset
1037 return getAppBean().getSecurityService();
jurzua
parents:
diff changeset
1038 }
jurzua
parents:
diff changeset
1039
jurzua
parents:
diff changeset
1040 protected ListenerObject changeListener(ValueChangeEvent event,
jurzua
parents:
diff changeset
1041 ListenerObject lo, String suggestType, String suggestAttributeName) {
jurzua
parents:
diff changeset
1042
jurzua
parents:
diff changeset
1043 return changeListener(event, lo, suggestType, suggestAttributeName,
jurzua
parents:
diff changeset
1044 null, null);
jurzua
parents:
diff changeset
1045 }
jurzua
parents:
diff changeset
1046
jurzua
parents:
diff changeset
1047 public String getCurrentId() {
jurzua
parents:
diff changeset
1048 return currentId;
jurzua
parents:
diff changeset
1049 }
jurzua
parents:
diff changeset
1050
jurzua
parents:
diff changeset
1051 public void setCurrentId(String currentId) {
jurzua
parents:
diff changeset
1052 this.currentId = currentId;
jurzua
parents:
diff changeset
1053 }
jurzua
parents:
diff changeset
1054
jurzua
parents:
diff changeset
1055 public String getCurrentIdMsg() {
jurzua
parents:
diff changeset
1056 return currentIdMsg;
jurzua
parents:
diff changeset
1057 }
jurzua
parents:
diff changeset
1058
jurzua
parents:
diff changeset
1059 public void setCurrentIdMsg(String currentIdMsg) {
jurzua
parents:
diff changeset
1060 this.currentIdMsg = currentIdMsg;
jurzua
parents:
diff changeset
1061 }
jurzua
parents:
diff changeset
1062
jurzua
parents:
diff changeset
1063 public String getDefObjectClass() {
jurzua
parents:
diff changeset
1064 return defObjectClass;
jurzua
parents:
diff changeset
1065 }
jurzua
parents:
diff changeset
1066
jurzua
parents:
diff changeset
1067 public void setDefObjectClass(String defObjectClass) {
jurzua
parents:
diff changeset
1068 this.defObjectClass = defObjectClass;
jurzua
parents:
diff changeset
1069 }
jurzua
parents:
diff changeset
1070 }