annotate src/main/java/de/mpiwg/itgroup/ismi/event/beans/CopyEvent.java @ 112:59f26a5ef2b3

AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
author casties
date Tue, 13 Dec 2016 19:04:45 +0100
parents 22a18bfc66b0
children 8e3f1f81acfb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.event.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
jurzua
parents:
diff changeset
6 import javax.faces.event.ActionEvent;
jurzua
parents:
diff changeset
7 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
8
jurzua
parents:
diff changeset
9 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
10 import org.mpi.openmind.repository.bo.Node;
jurzua
parents:
diff changeset
11 import org.mpi.openmind.repository.bo.Relation;
jurzua
parents:
diff changeset
12
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
13 import de.mpiwg.itgroup.ismi.auxObjects.AliasListenerObject;
1
jurzua
parents:
diff changeset
14 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
jurzua
parents:
diff changeset
15 import de.mpiwg.itgroup.ismi.auxObjects.lo.EventTextLO;
jurzua
parents:
diff changeset
16 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
jurzua
parents:
diff changeset
17
jurzua
parents:
diff changeset
18 public class CopyEvent extends AbstractEvent implements Serializable{
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 /**
jurzua
parents:
diff changeset
21 *
jurzua
parents:
diff changeset
22 */
jurzua
parents:
diff changeset
23 private static final long serialVersionUID = 1545705063133894571L;
jurzua
parents:
diff changeset
24
jurzua
parents:
diff changeset
25 public static String OC = "COPY_EVENT";
jurzua
parents:
diff changeset
26
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
27 private ListenerObject personCopiedForLo;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
28 private ListenerObject personCopyingTextLo;
1
jurzua
parents:
diff changeset
29
jurzua
parents:
diff changeset
30 private Calendar date;
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 @Override
jurzua
parents:
diff changeset
33 public void setEvent(Entity ev){
jurzua
parents:
diff changeset
34 reset();
jurzua
parents:
diff changeset
35 event = ev;
jurzua
parents:
diff changeset
36 if(event != null && event.isPersistent()){
jurzua
parents:
diff changeset
37 if(event.isLightweight()){
jurzua
parents:
diff changeset
38 event = getWrapper().getEntityContent(event);
jurzua
parents:
diff changeset
39 }
jurzua
parents:
diff changeset
40
jurzua
parents:
diff changeset
41 this.loadAttributes(this.event);
jurzua
parents:
diff changeset
42 this.date = updateCalendar(this.event.getAttributeByName("date"));
jurzua
parents:
diff changeset
43
jurzua
parents:
diff changeset
44 for (Relation rel : event.getSourceRelations()) {
jurzua
parents:
diff changeset
45 Entity target = null;
jurzua
parents:
diff changeset
46 if (rel.getOwnValue().equals(was_copied_for)) {
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 1
diff changeset
47 //EVENT was_copied_for PERSON
1
jurzua
parents:
diff changeset
48 target = getTargetRelation(rel);
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 95
diff changeset
49 personCopiedForLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
50 }else if (rel.getOwnValue().equals(has_person_copying_text)) {
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 1
diff changeset
51 //EVENT has_person_copying_text PERSON
1
jurzua
parents:
diff changeset
52 target = getTargetRelation(rel);
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 95
diff changeset
53 personCopyingTextLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
54 } else if (rel.getOwnValue().equals(was_copied_in)) {
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
55 // EVENT was_copied_in PLACE
1
jurzua
parents:
diff changeset
56 target = getTargetRelation(rel);
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
57 placeLo.setEntityAndAttributeIfEmpty(target);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
58 } else if (rel.getOwnValue().equals(was_copied_in_as)) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
59 // EVENT was_copied_in_as ALIAS
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
60 target = getTargetRelation(rel);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
61 placeLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
62 } else if (rel.getOwnValue().equals(is_a_copy_of)) {
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
63 // EVENT is_a_copy_of WITNESS
1
jurzua
parents:
diff changeset
64 this.witness = getTargetRelation(rel);
jurzua
parents:
diff changeset
65 if(witness != null && witness.isPersistent()){
jurzua
parents:
diff changeset
66 witnessId = witness.getId();
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
67 // WITNESS is_exemplar_of TEXT
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
68 this.textLo.setEntityAndAttribute(getTextOfWitness(witness));
1
jurzua
parents:
diff changeset
69 refreshWitnesses(textLo.entity);
jurzua
parents:
diff changeset
70 }
jurzua
parents:
diff changeset
71 }
jurzua
parents:
diff changeset
72 }
jurzua
parents:
diff changeset
73 }
jurzua
parents:
diff changeset
74 }
jurzua
parents:
diff changeset
75
jurzua
parents:
diff changeset
76 @Override
jurzua
parents:
diff changeset
77 public void reset(){
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
78 super.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
79 this.defObjectClass = OC;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
80
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
81 if (textLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
82 textLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
83 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
84 textLo = new EventTextLO(TEXT, full_title_translit, this);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
85 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
86
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
87 if (personCopiedForLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
88 personCopiedForLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
89 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
90 personCopiedForLo = new ListenerObject(PERSON, name_translit);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
91 }
1
jurzua
parents:
diff changeset
92
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
93 if (personCopyingTextLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
94 personCopyingTextLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
95 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
96 personCopyingTextLo = new ListenerObject(PERSON, name_translit);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
97 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
98
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
99 if (placeLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
100 placeLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
101 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
102 placeLo = new AliasListenerObject(PLACE, name, is_alias_name_of);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
103 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
104
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
105 this.date = new Calendar();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
106 this.witnessList = new ArrayList<SelectItem>();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
107 }
1
jurzua
parents:
diff changeset
108
jurzua
parents:
diff changeset
109 /*
jurzua
parents:
diff changeset
110 public void listenerChangePersonCopyingText(ValueChangeEvent event) {
jurzua
parents:
diff changeset
111 this.personCopyingText = changeListener(event, personCopyingText, PERSON, name_translit);
jurzua
parents:
diff changeset
112 }
jurzua
parents:
diff changeset
113
jurzua
parents:
diff changeset
114 public void listenerChangePersonCopiedFor(ValueChangeEvent event) {
jurzua
parents:
diff changeset
115 this.personCopiedFor = changeListener(event, personCopiedFor, PERSON, name_translit);
jurzua
parents:
diff changeset
116 }
jurzua
parents:
diff changeset
117
jurzua
parents:
diff changeset
118 public void listenerChangePlace(ValueChangeEvent event) {
jurzua
parents:
diff changeset
119 this.place = changeListener(event, place, PLACE, name);
jurzua
parents:
diff changeset
120 }
jurzua
parents:
diff changeset
121
jurzua
parents:
diff changeset
122 public void listenerChangeRepository(ValueChangeEvent event) {
jurzua
parents:
diff changeset
123 this.repository = changeListener(event, repository, REPOSITORY, name);
jurzua
parents:
diff changeset
124 }*/
jurzua
parents:
diff changeset
125
jurzua
parents:
diff changeset
126 public void listenerSave(ActionEvent event) {
jurzua
parents:
diff changeset
127 this.save();
jurzua
parents:
diff changeset
128 }
jurzua
parents:
diff changeset
129
jurzua
parents:
diff changeset
130 @Override
jurzua
parents:
diff changeset
131 public String save(){
jurzua
parents:
diff changeset
132 super.save();
jurzua
parents:
diff changeset
133 if(!checkConsistency()){
jurzua
parents:
diff changeset
134 addGeneralMsg("Either the Witness, the Person or the Place is empty.");
jurzua
parents:
diff changeset
135 addGeneralMsg("The event could not be saved.");
jurzua
parents:
diff changeset
136 return null;
jurzua
parents:
diff changeset
137 }
jurzua
parents:
diff changeset
138
jurzua
parents:
diff changeset
139 try{
jurzua
parents:
diff changeset
140 getAttributes().put("date", this.date.toJSONString());
jurzua
parents:
diff changeset
141 event = updateEntityAttributes(event);
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 // EVENT -> was_copied_for -> PERSON
jurzua
parents:
diff changeset
144 event.replaceSourceRelation(personCopiedForLo.entity, PERSON, was_copied_for);
jurzua
parents:
diff changeset
145
jurzua
parents:
diff changeset
146 // EVENT -> has_person_copying_text -> PERSON
jurzua
parents:
diff changeset
147 event.replaceSourceRelation(personCopyingTextLo.entity, PERSON, has_person_copying_text);
jurzua
parents:
diff changeset
148
jurzua
parents:
diff changeset
149 // EVENT -> was_copied_in -> PLACE
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
150 replaceAliasSourceRelation(event, placeLo, PLACE, was_copied_in, was_copied_in_as);
1
jurzua
parents:
diff changeset
151
jurzua
parents:
diff changeset
152 // EVENT -> is_a_copy_of -> WITNESS
jurzua
parents:
diff changeset
153 if(witness.isLightweight()){
jurzua
parents:
diff changeset
154 this.witness = getWrapper().getEntityByIdWithContent(witness.getId());
jurzua
parents:
diff changeset
155 }
jurzua
parents:
diff changeset
156 event.replaceSourceRelation(witness, WITNESS, is_a_copy_of);
jurzua
parents:
diff changeset
157
jurzua
parents:
diff changeset
158 getWrapper().saveEntity(event, getSessionUserName());
jurzua
parents:
diff changeset
159
jurzua
parents:
diff changeset
160 printSuccessSavingEntity();
jurzua
parents:
diff changeset
161
jurzua
parents:
diff changeset
162 }catch (Exception e) {
jurzua
parents:
diff changeset
163 addGeneralMsg(e.getMessage());
jurzua
parents:
diff changeset
164 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
165 }
jurzua
parents:
diff changeset
166 saveEnd();
jurzua
parents:
diff changeset
167 return null;
jurzua
parents:
diff changeset
168 }
jurzua
parents:
diff changeset
169
jurzua
parents:
diff changeset
170 public boolean checkConsistency(){
jurzua
parents:
diff changeset
171 if(this.witness == null ||
jurzua
parents:
diff changeset
172 this.textLo.entity == null ||
jurzua
parents:
diff changeset
173 this.personCopiedForLo.entity == null ||
jurzua
parents:
diff changeset
174 this.personCopyingTextLo.entity == null){
jurzua
parents:
diff changeset
175 return false;
jurzua
parents:
diff changeset
176 }
jurzua
parents:
diff changeset
177 return true;
jurzua
parents:
diff changeset
178 }
jurzua
parents:
diff changeset
179
jurzua
parents:
diff changeset
180 public CopyEvent(Entity event) {
jurzua
parents:
diff changeset
181 super(event);
jurzua
parents:
diff changeset
182 }
jurzua
parents:
diff changeset
183
jurzua
parents:
diff changeset
184 public CopyEvent(){
jurzua
parents:
diff changeset
185 super(new Entity(Node.TYPE_ABOX, OC, false));
jurzua
parents:
diff changeset
186 }
jurzua
parents:
diff changeset
187
jurzua
parents:
diff changeset
188 public ListenerObject getPersonCopiedForLo() {
jurzua
parents:
diff changeset
189 return personCopiedForLo;
jurzua
parents:
diff changeset
190 }
jurzua
parents:
diff changeset
191
jurzua
parents:
diff changeset
192 public void setPersonCopiedForLo(ListenerObject personCopiedForLo) {
jurzua
parents:
diff changeset
193 this.personCopiedForLo = personCopiedForLo;
jurzua
parents:
diff changeset
194 }
jurzua
parents:
diff changeset
195
jurzua
parents:
diff changeset
196 public ListenerObject getPersonCopyingTextLo() {
jurzua
parents:
diff changeset
197 return personCopyingTextLo;
jurzua
parents:
diff changeset
198 }
jurzua
parents:
diff changeset
199
jurzua
parents:
diff changeset
200 public void setPersonCopyingTextLo(ListenerObject personCopyingTextLo) {
jurzua
parents:
diff changeset
201 this.personCopyingTextLo = personCopyingTextLo;
jurzua
parents:
diff changeset
202 }
jurzua
parents:
diff changeset
203
jurzua
parents:
diff changeset
204 public Calendar getDate() {
jurzua
parents:
diff changeset
205 return date;
jurzua
parents:
diff changeset
206 }
jurzua
parents:
diff changeset
207
jurzua
parents:
diff changeset
208 public void setDate(Calendar date) {
jurzua
parents:
diff changeset
209 this.date = date;
jurzua
parents:
diff changeset
210 }
jurzua
parents:
diff changeset
211 }