annotate src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java @ 134:25bfcc9d757c

effort to re-use more relations when saving entities. new replaceMultipleSourceRelations() and changes to use it. changes for renamed replaceUniqueSourceRelation().
author casties
date Fri, 24 Feb 2017 20:25:33 +0100
parents 28a0c2726466
children 3c585df9f874
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.merge;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
2
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
3 import java.io.File;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
4 import java.io.FileInputStream;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
5 import java.io.InputStreamReader;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
6 import java.io.Reader;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
7 import java.io.Serializable;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
8 import java.util.ArrayList;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
9 import java.util.HashMap;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
10 import java.util.List;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
11 import java.util.Map;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
12
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
13 import javax.faces.event.ActionEvent;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
14 import javax.faces.model.SelectItem;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
15
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
16 import org.apache.commons.lang.StringUtils;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
17 import org.apache.log4j.Logger;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
18 import org.mpi.openmind.repository.bo.Attribute;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
19 import org.mpi.openmind.repository.bo.Entity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
20 import org.mpi.openmind.repository.bo.Node;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
21 import org.mpi.openmind.repository.bo.Relation;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
22 import org.mpi.openmind.repository.utils.CsvNodeListReader;
98
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
23 import org.richfaces.event.FileUploadEvent;
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
24 import org.richfaces.model.UploadedFile;
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
25
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
26 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
27
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
28 public class ImportMerge extends AbstractISMIBean implements Serializable {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
29
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
30 private static Logger logger = Logger.getLogger(ImportMerge.class);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
31
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
32 private static final long serialVersionUID = 1L;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
33
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
34 private String importFilename = "/var/tmp/ismi-import.csv";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
35 private String importFileMsg = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
36
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
37 private List<Node> importNodeList;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
38 private int importNodeIdx;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
39 private int importNodeListLength = 0;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
40 private Node importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
41 private String importNodeMsg;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
42
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
43 public static String FIRST_VALUE = "old value";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
44 public static String SECOND_VALUE = "new value";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
45 public static String IGNORE = "ignore";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
46 public static String TAKE = "take";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
47
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
48 private boolean showAttributeMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
49 private boolean showSrcRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
50 private boolean showTarRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
51
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
52 private boolean entitiesLoaded = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
53
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
54 private Map<String, String> firstAttMap = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
55 private Map<String, String> secondAttMap = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
56
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
57 private Entity firstEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
58 private Entity secondEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
59
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
60 private String firstId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
61 private String secondId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
62
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
63 private Entity entResult;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
64 private List<Attribute> resultAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
65 private List<Relation> resultSrcRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
66 private List<Relation> resultTarRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
67
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
68 private List<String> attLabels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
69 private Map<String, String> selectedAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
70
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
71 Map<Long, String> selectedFirstSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
72 Map<Long, String> selectedSecondSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
73 Map<Long, String> selectedFirstTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
74 Map<Long, String> selectedSecondTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
75
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
76
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
77 public ImportMerge() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
78 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
79
98
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
80 public void uploadListener(FileUploadEvent event) throws Exception {
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
81 UploadedFile item = event.getUploadedFile();
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
82 importFilename = item.getName();
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
83 reset();
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
84 try {
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
85 Reader importReader = new InputStreamReader(item.getInputStream(), "UTF-8");
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
86 importNodeList = CsvNodeListReader.readCsv(importReader);
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
87
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
88 this.importNodeListLength = importNodeList.size();
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
89 this.importFileMsg = "File "+ importFilename + " contains " + importNodeListLength + " Nodes";
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
90 this.importNodeIdx = 0;
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
91 loadImportNode();
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
92
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
93 } catch (Exception e) {
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
94 addErrorMsg("The import file could no be loaded.");
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
95 addErrorMsg("Error: "+e);
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
96 }
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
97 }
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
98
9b02c9af49b0 add file upload to import merge.
casties
parents: 97
diff changeset
99
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
100 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
101 * Action that loads the import file and parses it into the Nodes list.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
102 *
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
103 * @param event
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
104 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
105 public void loadImportFile(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
106 reset();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
107 try {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
108 File importFile = new File(this.importFilename);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
109 if (!importFile.canRead()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
110 this.importFileMsg = "File missing!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
111 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
112 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
113 Reader importReader = new InputStreamReader(new FileInputStream(importFile), "UTF-8");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
114 importNodeList = CsvNodeListReader.readCsv(importReader);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
115
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
116 this.importNodeListLength = importNodeList.size();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
117 this.importFileMsg = importNodeListLength + " Nodes";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
118 this.importNodeIdx = 0;
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
119 loadImportNode();
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
120
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
121 } catch (Exception e) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
122 addErrorMsg("The import file could no be loaded.");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
123 addErrorMsg("Error: "+e);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
124 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
125 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
126
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
127 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
128 * Load the current Node from the import list.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
129 *
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
130 * @param event
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
131 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
132 public void loadImportNode() {
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
133 reset();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
134 try {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
135 importNode = importNodeList.get(importNodeIdx);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
136 importNodeMsg = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
137 firstEntity = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
138 secondEntity = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
139
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
140 if (importNode.getNodeType().equals("ATTRIBUTE")) {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
141 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
142 * Attribute
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
143 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
144 Attribute att = (Attribute) importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
145 String attName = att.getName();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
146 if (attName == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
147 importNodeMsg = "Attribute has no name!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
148 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
149 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
150 Long source_id = att.getSourceId();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
151 if (source_id == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
152 importNodeMsg = "Attribute has no source_id to attach to!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
153 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
154 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
155 Entity systemEnt = getWrapper().getEntityById(source_id);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
156 if (systemEnt != null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
157 if (systemEnt.isLightweight()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
158 systemEnt = getWrapper().getEntityContent(systemEnt);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
159 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
160 Attribute systemAtt = systemEnt.getAttributeByName(attName);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
161 if ((systemAtt != null) && (systemAtt.getOwnValue().equals(att.getOwnValue()))) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
162 importNodeMsg = "Same attribute exists already!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
163 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
164 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
165 // create new Entity with this Attribute
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
166 Entity newEnt = (Entity) systemEnt.clone();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
167 newEnt.addAttribute(att);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
168 this.secondEntity = newEnt;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
169 // compare with old version
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
170 this.firstEntity = systemEnt;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
171 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
172 importNodeMsg = "Entity for Attribute does not exist!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
173 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
174 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
175 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
176 } else if (importNode.getNodeType().equals("ENTITY")) {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
177 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
178 * Entity
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
179 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
180 Entity ent = (Entity) importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
181 Long id = ent.getId();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
182 if (id == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
183 // new Entity
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
184 this.secondEntity = ent;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
185 // what to use to compare?
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
186 this.firstEntity = new Entity();
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
187 this.firstEntity.setLightweight(false);
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
188
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
189 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
190 // entity exists
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
191 Entity systemEnt = getWrapper().getEntityById(id);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
192 if (systemEnt != null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
193 if (systemEnt.isLightweight()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
194 systemEnt = getWrapper().getEntityContent(systemEnt);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
195 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
196 importNodeMsg = "Entity exists (but may be different).";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
197 // TODO: does it make sense to check for equality?
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
198 this.secondEntity = ent;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
199 // compare with old version
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
200 this.firstEntity = systemEnt;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
201 } else {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
202 importNodeMsg = "Entity does not exist!";
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
203 // TODO: try to undelete?
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
204 this.firstEntity = new Entity();
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
205 this.firstEntity.setLightweight(false);
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
206 this.secondEntity = ent;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
207 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
208 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
209 } else if (importNode.getNodeType().equals("RELATION")) {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
210 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
211 * Relation
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
212 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
213 Relation rel = (Relation) importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
214 String relName = rel.getObjectClass();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
215 if (relName == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
216 importNodeMsg = "Relation has no name!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
217 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
218 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
219 Long source_id = rel.getSourceId();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
220 Long target_id = rel.getTargetId();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
221 if (source_id == null) {
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
222 // no source id
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
223 importNodeMsg = "Relation has no source_id!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
224 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
225 } else if (target_id == null) {
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
226 // no target id
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
227 importNodeMsg = "Relation has no target_id!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
228 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
229 } else {
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
230 // get source and target Entities
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
231 Entity sourceEnt = getWrapper().getEntityById(source_id);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
232 Entity targetEnt = getWrapper().getEntityById(target_id);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
233 if (sourceEnt == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
234 importNodeMsg = "Relation source does not exist!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
235 } else if (targetEnt == null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
236 importNodeMsg = "Relation target does not exist!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
237 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
238 if (sourceEnt.isLightweight()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
239 sourceEnt = getWrapper().getEntityContent(sourceEnt);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
240 }
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
241 // get existing Relation
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
242 Relation systemRel = sourceEnt.getSourceRelation(relName, target_id);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
243 if ((systemRel != null) && (systemRel.getObjectClass().equals(rel.getObjectClass()))) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
244 // TODO: also check Relation attributes
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
245 importNodeMsg = "Same Relation exists already!";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
246 return;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
247 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
248 // create new Entity with this Relation
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
249 Entity newEnt = new Entity();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
250 newEnt.setLightweight(false);
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
251 newEnt.addSourceRelation(rel);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
252 this.secondEntity = newEnt;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
253 // compare with old version
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
254 this.firstEntity = sourceEnt;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
255 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
256 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
257 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
258 } catch (Exception e) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
259 addErrorMsg("The import Node could no be loaded.");
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
260 addErrorMsg("Error: "+e);
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
261 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
262 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
263
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
264 public void skipCurrentNode(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
265 importNodeIdx += 1;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
266 if (importNodeIdx >= importNodeList.size()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
267 importNodeIdx = importNodeList.size() - 1;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
268 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
269 if (importNodeIdx < 0) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
270 importNodeIdx = 0;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
271 }
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
272 loadImportNode();
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
273 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
274
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
275 public void loadFirstEntity(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
276 reset();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
277 try {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
278 if (firstEntity != null && secondEntity != null) {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
279 // create list of differences
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
280 deployDifferences();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
281 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
282 if (importNodeMsg != null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
283 addErrorMsg(importNodeMsg);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
284 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
285 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
286 } catch (Exception e) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
287 addErrorMsg("The first entity could no be loaded.");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
288 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
289 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
290
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
291 @Override
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
292 public void reset() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
293 this.attLabels = new ArrayList<String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
294 this.selectedAtts = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
295 this.selectedFirstSrcRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
296 this.selectedSecondSrcRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
297 this.selectedFirstTarRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
298 this.selectedSecondTarRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
299 this.entResult = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
300
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
301 this.entitiesLoaded = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
302 this.showAttributeMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
303 this.showSrcRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
304 this.showTarRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
305 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
306
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
307 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
308 * Create list of differences in attributes and relations for display.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
309 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
310 private void deployDifferences() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
311 this.showAttributeMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
312 this.showSrcRelationMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
313 this.showTarRelationMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
314 this.entitiesLoaded = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
315 if (this.firstEntity != null && this.secondEntity != null) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
316 /*
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
317 if (firstEntity.isLightweight()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
318 this.firstEntity = getWrapper().getEntityContent(this.firstEntity);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
319 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
320 if (secondEntity.isLightweight()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
321 this.secondEntity = getWrapper().getEntityContent(this.secondEntity);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
322 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
323
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
324 this.firstEntity = (Entity) firstEntity.clone();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
325 this.secondEntity = (Entity) secondEntity.clone();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
326 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
327
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
328 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
329 * attributes
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
330 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
331 this.attLabels = new ArrayList<String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
332 this.selectedAtts = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
333 this.firstAttMap = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
334 this.secondAttMap = new HashMap<String, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
335
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
336 for (Attribute att : this.firstEntity.getAttributes()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
337 firstAttMap.put(att.getName(), att.getValue());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
338 if (!attLabels.contains(att.getName())) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
339 attLabels.add(att.getName());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
340 selectedAtts.put(att.getName(), FIRST_VALUE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
341 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
342 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
343
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
344 for (Attribute att : this.secondEntity.getAttributes()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
345 secondAttMap.put(att.getName(), att.getValue());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
346 if (!attLabels.contains(att.getName())) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
347 attLabels.add(att.getName());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
348 selectedAtts.put(att.getName(), FIRST_VALUE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
349 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
350 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
351
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
352 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
353 * source relations
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
354 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
355 this.selectedFirstSrcRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
356 this.selectedSecondSrcRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
357
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
358 for (Relation rel : this.firstEntity.getSourceRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
359 rel.setTarget(getWrapper().getEntityById(rel.getTargetId()));
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
360 selectedFirstSrcRelations.put(rel.getId(), TAKE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
361 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
362
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
363 for (Relation rel : this.secondEntity.getSourceRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
364 rel.setTarget(getWrapper().getEntityById(rel.getTargetId()));
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
365 selectedSecondSrcRelations.put(rel.getId(), TAKE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
366 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
367
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
368 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
369 * target relations
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
370 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
371 this.selectedFirstTarRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
372 this.selectedSecondTarRelations = new HashMap<Long, String>();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
373
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
374 for (Relation rel : this.firstEntity.getTargetRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
375 rel.setSource(getWrapper().getEntityById(rel.getSourceId()));
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
376 selectedFirstTarRelations.put(rel.getId(), TAKE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
377 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
378
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
379 for (Relation rel : this.secondEntity.getTargetRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
380 rel.setSource(getWrapper().getEntityById(rel.getSourceId()));
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
381 selectedSecondTarRelations.put(rel.getId(), TAKE);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
382 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
383
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
384 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
385 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
386
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
387 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
388 * Preview merged Entity as text.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
389 *
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
390 * @param event
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
391 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
392 public void preview(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
393 this.generateResultEntity();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
394 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
395
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
396 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
397 * Execute Merge action from UI.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
398 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
399 public void listenerExecuteMerge() {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
400 this.executeMerge();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
401 getAppBean().getSimpleSearchCache().setMapDirty(true);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
402 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
403
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
404 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
405 * Merge Entities.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
406 *
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
407 * firstEntity is current one. secondEntity is imported.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
408 */
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
409 private void executeMerge() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
410
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
411 logger.info("Starting merge import " + firstEntity.getObjectClass() + " [" + getUserName() + "]"
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
412 + "[firstEntity=" + firstEntity.getId() + ", secondEntity=" + secondEntity.getId() + "]");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
413
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
414 try {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
415 this.generateResultEntity();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
416 if (this.entResult != null) {
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
417 // print to log
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
418 this.printMergeInfo(entResult);
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
419 // save the new Entity
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 108
diff changeset
420 this.getWrapper().saveEntity(this.entResult, getSessionUser().getEmail() + "_merge", null);
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
421 // update generated ownvalues
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
422 this.updateRelatedOW(this.entResult, getSessionUser().getEmail() + "_merge");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
423
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
424 logger.info("Merge import successful " + firstEntity.getObjectClass() + " [" + getUserName() + "]"
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
425 + "[firstEntity=" + firstEntity.getId() + ", secondEntity=" + secondEntity.getId()
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
426 + ", generatedEntity=" + entResult.getId() + "]");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
427
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
428 this.firstEntity = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
429 this.secondEntity = null;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
430
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
431 addGeneralMsg("The imported entity was merged successfully");
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
432 addGeneralMsg("The new entity has the id " + this.entResult.getId());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
433 this.reset();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
434 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
435 } catch (Exception e) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
436 printInternalError(e);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
437 logger.error("[" + getUserName() + "] " + e.getMessage(), e);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
438 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
439 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
440
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
441 private void printMergeInfo(Entity ent) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
442 StringBuilder sb = new StringBuilder("\n\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
443
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
444 sb.append("-----------------------------------------\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
445 sb.append("Merging result [" + getUserName() + "]\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
446 sb.append(ent.toString() + "\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
447 sb.append("Attributes:\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
448 for (Attribute att : ent.getAttributes()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
449 sb.append("\t" + att.toString() + "\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
450 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
451
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
452 sb.append("Src Relations:\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
453 for (Relation src : ent.getSourceRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
454 sb.append("\t" + src.toString() + "\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
455 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
456
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
457 sb.append("Tar Relations:\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
458 for (Relation tar : ent.getTargetRelations()) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
459 sb.append("\t" + tar.toString() + "\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
460 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
461
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
462 sb.append("-----------------------------------------\n");
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
463 logger.info(sb.toString());
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
464 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
465
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
466 /**
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
467 * Generate new Entity taking selected Attributes and Relations from both Entities.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
468 *
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
469 * Uses id from firstEntity, creating a new version of this entity.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
470 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
471 private void generateResultEntity() {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
472 // create new Entity
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
473 this.entResult = new Entity();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
474 this.entResult.setLightweight(false);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
475 // use id from firstEntity
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
476 Long newId = this.firstEntity.getId();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
477 if (newId == null) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
478 // Entity is new -- try imported id
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
479 newId = secondEntity.getId();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
480 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
481 this.entResult.setId(newId);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
482 // use object_class from firstEntity
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
483 String oc = this.firstEntity.getObjectClass();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
484 if (oc == null) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
485 // Entity is new -- try imported object_class
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
486 oc = secondEntity.getObjectClass();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
487 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
488 this.entResult.setObjectClass(oc);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
489
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
490 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
491 * generating attributes
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
492 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
493 try {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
494 for (String attName : this.selectedAtts.keySet()) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
495 String selected = this.selectedAtts.get(attName);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
496 String value = "";
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
497 if (selected.equals(FIRST_VALUE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
498 value = (firstEntity.getAttributeByName(attName) == null) ? ""
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
499 : firstEntity.getAttributeByName(attName).getOwnValue();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
500 } else if (selected.equals(SECOND_VALUE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
501 value = (secondEntity.getAttributeByName(attName) == null) ? ""
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
502 : secondEntity.getAttributeByName(attName).getOwnValue();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
503 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
504 this.entResult.addAttribute(new Attribute(attName, "text", value));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
505 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
506 } catch (Exception e) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
507 logger.error(e);
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
508 addErrorMsg("Please inform support of this exception: " + e.getMessage());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
509 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
510
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
511 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
512 * generating source relations
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
513 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
514 for (Relation rel : firstEntity.getSourceRelations()) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
515 String selectedValue = this.selectedFirstSrcRelations.get(rel.getId());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
516 if (StringUtils.isNotEmpty(selectedValue) && selectedValue.equals(TAKE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
517 if (!this.entResult.containsSourceRelation(rel.getOwnValue(), rel.getTargetId())) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
518 this.entResult.addSourceRelation(generateSrcRelation(rel));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
519 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
520 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
521 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
522
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
523 for (Relation rel : secondEntity.getSourceRelations()) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
524 String selectedValue = this.selectedSecondSrcRelations.get(rel.getId());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
525 if (StringUtils.isNotEmpty(selectedValue) && selectedValue.equals(TAKE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
526 if (!this.entResult.containsSourceRelation(rel.getOwnValue(), rel.getTargetId())) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
527 this.entResult.addSourceRelation(generateSrcRelation(rel));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
528 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
529 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
530 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
531
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
532 /*
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
533 * generating target relations
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
534 */
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
535 for (Relation rel : firstEntity.getTargetRelations()) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
536 String selectedValue = this.selectedFirstTarRelations.get(rel.getId());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
537 if (StringUtils.isNotEmpty(selectedValue) && selectedValue.equals(TAKE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
538 // ensuring that there is no two equals relations.
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
539 if (!this.entResult.containsTargetRelation(rel.getOwnValue(), rel.getSourceId())) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
540 this.entResult.addTargetRelation(generateTarRelation(rel));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
541 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
542 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
543 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
544
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
545 for (Relation rel : secondEntity.getTargetRelations()) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
546 String selectedValue = this.selectedSecondTarRelations.get(rel.getId());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
547 if (StringUtils.isNotEmpty(selectedValue) && selectedValue.equals(TAKE)) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
548 if (!this.entResult.containsTargetRelation(rel.getOwnValue(), rel.getSourceId())) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
549 this.entResult.addTargetRelation(generateTarRelation(rel));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
550 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
551 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
552 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
553 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
554
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
555 private Relation generateSrcRelation(Relation rel) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
556 Relation newRel = new Relation();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
557 newRel.setOwnValue(rel.getOwnValue());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
558 newRel.setTarget(getWrapper().getEntityById(rel.getTargetId()));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
559 return newRel;
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
560 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
561
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
562 private Relation generateTarRelation(Relation rel) {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
563 Relation newRel = new Relation();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
564 newRel.setOwnValue(rel.getOwnValue());
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
565 newRel.setSource(getWrapper().getEntityById(rel.getSourceId()));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
566 return newRel;
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
567 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
568
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
569 public List<SelectItem> getAttSelectItems() {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
570 List<SelectItem> items = new ArrayList<SelectItem>();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
571 items.add(new SelectItem(FIRST_VALUE));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
572 items.add(new SelectItem(SECOND_VALUE));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
573 items.add(new SelectItem(IGNORE));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
574 return items;
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
575 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
576
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
577 public List<SelectItem> getRelSelectItems() {
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
578 List<SelectItem> items = new ArrayList<SelectItem>();
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
579 items.add(new SelectItem(TAKE));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
580 items.add(new SelectItem(IGNORE));
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
581 return items;
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
582 }
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
583
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
584 public void actionShowTarRelationMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
585 this.showTarRelationMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
586 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
587
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
588 public void actionHideTarRelationMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
589 this.showTarRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
590 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
591
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
592 public void actionShowSrcRelationMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
593 this.showSrcRelationMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
594 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
595
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
596 public void actionHideSrcRelationMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
597 this.showSrcRelationMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
598 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
599
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
600 public void actionShowAttributeMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
601 this.showAttributeMapping = true;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
602 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
603
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
604 public void actionHideAttributeMapping(ActionEvent event) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
605 this.showAttributeMapping = false;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
606 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
607
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
608 public Entity getEntResult() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
609 return entResult;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
610 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
611
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
612 public void setEntResult(Entity entResult) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
613 this.entResult = entResult;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
614 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
615
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
616 public List<Attribute> getResultAtts() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
617 return resultAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
618 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
619
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
620 public void setResultAtts(List<Attribute> resultAtts) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
621 this.resultAtts = resultAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
622 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
623
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
624 public List<Relation> getResultSrcRels() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
625 return resultSrcRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
626 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
627
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
628 public void setResultSrcRels(List<Relation> resultSrcRels) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
629 this.resultSrcRels = resultSrcRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
630 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
631
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
632 public List<Relation> getResultTarRels() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
633 return resultTarRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
634 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
635
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
636 public void setResultTarRels(List<Relation> resultTarRels) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
637 this.resultTarRels = resultTarRels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
638 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
639
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
640 public Entity getFirstEntity() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
641 return firstEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
642 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
643
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
644 public void setFirstEntity(Entity firstEntity) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
645 this.firstEntity = firstEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
646 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
647
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
648 public Entity getSecondEntity() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
649 return secondEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
650 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
651
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
652 public void setSecondEntity(Entity secondEntity) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
653 this.secondEntity = secondEntity;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
654 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
655
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
656 public String getFirstId() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
657 return firstId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
658 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
659
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
660 public void setFirstId(String firstId) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
661 this.firstId = firstId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
662 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
663
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
664 public String getSecondId() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
665 return secondId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
666 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
667
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
668 public void setSecondId(String secondId) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
669 this.secondId = secondId;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
670 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
671
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
672 public List<String> getAttLabels() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
673 return attLabels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
674 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
675
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
676 public void setAttLabels(List<String> attLabels) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
677 this.attLabels = attLabels;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
678 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
679
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
680 public Map<String, String> getFirstAttMap() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
681 return firstAttMap;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
682 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
683
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
684 public void setFirstAttMap(Map<String, String> firstAttMap) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
685 this.firstAttMap = firstAttMap;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
686 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
687
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
688 public Map<String, String> getSecondAttMap() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
689 return secondAttMap;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
690 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
691
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
692 public void setSecondAttMap(Map<String, String> secondAttMap) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
693 this.secondAttMap = secondAttMap;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
694 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
695
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
696 public Map<String, String> getSelectedAtts() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
697 return selectedAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
698 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
699
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
700 public void setSelectedAtts(Map<String, String> selectedAtts) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
701 this.selectedAtts = selectedAtts;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
702 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
703
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
704 public boolean isShowAttributeMapping() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
705 return showAttributeMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
706 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
707
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
708 public void setShowAttributeMapping(boolean showAttributeMapping) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
709 this.showAttributeMapping = showAttributeMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
710 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
711
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
712 public boolean isEntitiesLoaded() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
713 return entitiesLoaded;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
714 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
715
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
716 public void setEntitiesLoaded(boolean entitiesLoaded) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
717 this.entitiesLoaded = entitiesLoaded;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
718 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
719
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
720 public Map<Long, String> getSelectedFirstSrcRelations() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
721 return selectedFirstSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
722 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
723
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
724 public void setSelectedFirstSrcRelations(Map<Long, String> selectedFirstSrcRelations) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
725 this.selectedFirstSrcRelations = selectedFirstSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
726 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
727
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
728 public Map<Long, String> getSelectedSecondSrcRelations() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
729 return selectedSecondSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
730 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
731
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
732 public void setSelectedSecondSrcRelations(Map<Long, String> selectedSecondSrcRelations) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
733 this.selectedSecondSrcRelations = selectedSecondSrcRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
734 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
735
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
736 public boolean isShowSrcRelationMapping() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
737 return showSrcRelationMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
738 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
739
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
740 public void setShowSrcRelationMapping(boolean showSrcRelationMapping) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
741 this.showSrcRelationMapping = showSrcRelationMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
742 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
743
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
744 public boolean isShowTarRelationMapping() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
745 return showTarRelationMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
746 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
747
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
748 public void setShowTarRelationMapping(boolean showTarRelationMapping) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
749 this.showTarRelationMapping = showTarRelationMapping;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
750 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
751
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
752 public Map<Long, String> getSelectedFirstTarRelations() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
753 return selectedFirstTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
754 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
755
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
756 public void setSelectedFirstTarRelations(Map<Long, String> selectedFirstTarRelations) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
757 this.selectedFirstTarRelations = selectedFirstTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
758 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
759
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
760 public Map<Long, String> getSelectedSecondTarRelations() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
761 return selectedSecondTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
762 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
763
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
764 public void setSelectedSecondTarRelations(Map<Long, String> selectedSecondTarRelations) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
765 this.selectedSecondTarRelations = selectedSecondTarRelations;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
766 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
767
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
768 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
769 * @return the importFilename
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
770 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
771 public String getImportFilename() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
772 return importFilename;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
773 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
774
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
775 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
776 * @param importFilename
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
777 * the importFilename to set
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
778 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
779 public void setImportFilename(String importFilename) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
780 this.importFilename = importFilename;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
781 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
782
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
783 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
784 * @return the importFileMsg
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
785 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
786 public String getImportFileMsg() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
787 return importFileMsg;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
788 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
789
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
790 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
791 * @param importFileMsg
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
792 * the importFileMsg to set
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
793 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
794 public void setImportFileMsg(String importFileMsg) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
795 this.importFileMsg = importFileMsg;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
796 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
797
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
798 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
799 * @return the importNode
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
800 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
801 public Node getImportNode() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
802 return importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
803 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
804
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
805 public String getImportNodeAsText() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
806 String s = "";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
807 try {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
808 String nt = importNode.getNodeType();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
809 if (nt.equals("ATTRIBUTE")) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
810 Attribute att = (Attribute) importNode;
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
811 s = "ATTRIBUTE " + att.getName() + " [" + att.getSourceObjectClass() + " " + att.getSourceId() + "] = " + att.getOwnValue();
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
812 } else if (nt.equals("ENTITY")) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
813 Entity ent = (Entity) importNode;
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
814 s = "ENTITY " + ent.getObjectClass() + " [" + ent.getId() + "] : " + ent.getOwnValue();
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
815 } else if (nt.equals("RELATION")) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
816 Relation rel = (Relation) importNode;
97
13b313ae1af8 new import-merge works now.
casties
parents: 96
diff changeset
817 s = "RELATION " + rel.getObjectClass() + " [" + rel.getId() + "] : "
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
818 + "source=[" + rel.getSourceObjectClass() + " " + rel.getSourceId() + "] "
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
819 + "target=[" + rel.getTargetObjectClass() + " " + rel.getTargetId() + "]";
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
820 } else {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
821 s = importNode.toString();
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
822 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
823 } catch (Exception e) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
824 logger.error(e);
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
825 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
826 return s;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
827 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
828
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
829 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
830 * @param importNode the importNode to set
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
831 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
832 public void setImportNode(Node importNode) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
833 this.importNode = importNode;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
834 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
835
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
836 /**
108
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
837 * @return the importNodeList
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
838 */
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
839 public List<Node> getImportNodeList() {
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
840 return importNodeList;
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
841 }
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
842
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
843 /**
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
844 * @param importNodeList the importNodeList to set
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
845 */
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
846 public void setImportNodeList(List<Node> importNodeList) {
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
847 this.importNodeList = importNodeList;
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
848 }
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
849
c03527c428f5 fix for EL warnings in importMerge template.
casties
parents: 98
diff changeset
850 /**
96
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
851 * @return the importNodeListLength
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
852 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
853 public int getImportNodeListLength() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
854 return importNodeListLength;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
855 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
856
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
857 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
858 * @return the importNodeIdx
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
859 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
860 public int getImportNodeIdx() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
861 return importNodeIdx;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
862 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
863
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
864 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
865 * @param importNodeIdx the importNodeIdx to set
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
866 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
867 public void setImportNodeIdx(int importNodeIdx) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
868 this.importNodeIdx = importNodeIdx;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
869 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
870
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
871 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
872 * @return the importNodeMsg
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
873 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
874 public String getImportNodeMsg() {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
875 return importNodeMsg;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
876 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
877
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
878 /**
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
879 * @param importNodeMsg the importNodeMsg to set
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
880 */
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
881 public void setImportNodeMsg(String importNodeMsg) {
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
882 this.importNodeMsg = importNodeMsg;
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
883 }
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
884
895bf7494d17 first version of new import-merge.
casties
parents:
diff changeset
885 }