annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/UnityChecker.java @ 211:631864bfec2e

add methods for lost misattributions and misidentifications.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Fri, 04 Oct 2019 17:42:27 +0200
parents 71efad4fe975
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.entry.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
4 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
5 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
6
106
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
7 /**
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
8 * Class to check uniqueness of Entities.
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
9 *
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
10 * @author jurzua
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
11 *
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
12 */
1
jurzua
parents:
diff changeset
13 public class UnityChecker extends AbstractISMIBean{
jurzua
parents:
diff changeset
14
jurzua
parents:
diff changeset
15 private static final long serialVersionUID = -5727416233789954800L;
jurzua
parents:
diff changeset
16 private Entity cloneEntity;
jurzua
parents:
diff changeset
17 private String unityCheckerMsg;
jurzua
parents:
diff changeset
18 private boolean renderUnityCheckerDialog;
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 @Override
jurzua
parents:
diff changeset
21 public void reset(){
jurzua
parents:
diff changeset
22 super.reset();
jurzua
parents:
diff changeset
23 this.renderUnityCheckerDialog = false;
jurzua
parents:
diff changeset
24 }
jurzua
parents:
diff changeset
25
106
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
26 /**
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
27 * Return if the name for an entity is unique.
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
28 *
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
29 * @param unityName
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
30 * @param id
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
31 * @param objectClass
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
32 * @param target
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
33 * @param relationName
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
34 * @param attName
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
35 * @return
71efad4fe975 small cleanups.
casties
parents: 1
diff changeset
36 */
1
jurzua
parents:
diff changeset
37 private boolean checkUnity(String unityName, Long id, String objectClass, Entity target, String relationName, String attName){
jurzua
parents:
diff changeset
38 this.cloneEntity = null;
jurzua
parents:
diff changeset
39 unityName = unityName.toLowerCase();
jurzua
parents:
diff changeset
40
jurzua
parents:
diff changeset
41 if(target != null && target.isPersistent()){
jurzua
parents:
diff changeset
42 for (Entity src : getWrapper().getSourcesForTargetRelation(target, relationName, objectClass, -1)) {
jurzua
parents:
diff changeset
43 if(id == null || id.longValue() != src.getId().longValue()){
jurzua
parents:
diff changeset
44 if(StringUtils.isEmpty(attName)){
jurzua
parents:
diff changeset
45 if(unityName.equals(src.getOwnValue().toLowerCase())){
jurzua
parents:
diff changeset
46 this.cloneEntity = src;
jurzua
parents:
diff changeset
47 return false;
jurzua
parents:
diff changeset
48 }
jurzua
parents:
diff changeset
49 }else{
jurzua
parents:
diff changeset
50 Attribute att = getWrapper().getAttributeByName(src.getId(), attName);
jurzua
parents:
diff changeset
51 if(att != null && unityName.equals(att.getValue().toLowerCase())){
jurzua
parents:
diff changeset
52 this.cloneEntity = src;
jurzua
parents:
diff changeset
53 return false;
jurzua
parents:
diff changeset
54 }
jurzua
parents:
diff changeset
55 }
jurzua
parents:
diff changeset
56 }
jurzua
parents:
diff changeset
57 }
jurzua
parents:
diff changeset
58 }
jurzua
parents:
diff changeset
59
jurzua
parents:
diff changeset
60 return true;
jurzua
parents:
diff changeset
61 }
jurzua
parents:
diff changeset
62
jurzua
parents:
diff changeset
63 public String hideUnityCheckerDialog(){
jurzua
parents:
diff changeset
64 this.renderUnityCheckerDialog = false;
jurzua
parents:
diff changeset
65 return PAGE_EDITOR;
jurzua
parents:
diff changeset
66 }
jurzua
parents:
diff changeset
67
jurzua
parents:
diff changeset
68 public void renderUnityCheckerDialog(){
jurzua
parents:
diff changeset
69 if(cloneEntity != null && cloneEntity.isPersistent()){
jurzua
parents:
diff changeset
70 if(cloneEntity.getObjectClass().equals(CODEX)){
jurzua
parents:
diff changeset
71 this.unityCheckerMsg = "There is already an object with the same identifier. ";
jurzua
parents:
diff changeset
72 }else{
jurzua
parents:
diff changeset
73 this.unityCheckerMsg = "There is already an object with the same name. ";
jurzua
parents:
diff changeset
74 }
jurzua
parents:
diff changeset
75
jurzua
parents:
diff changeset
76 this.unityCheckerMsg += "The ID of the " + cloneEntity.getObjectClass().toLowerCase() +
jurzua
parents:
diff changeset
77 " found is " + cloneEntity.getId() + ".";
jurzua
parents:
diff changeset
78
jurzua
parents:
diff changeset
79 this.unityCheckerMsg +=
jurzua
parents:
diff changeset
80 "\nDo you want to load the existing "
jurzua
parents:
diff changeset
81 + cloneEntity.getObjectClass().toLowerCase() + "?";
jurzua
parents:
diff changeset
82 this.renderUnityCheckerDialog = true;
jurzua
parents:
diff changeset
83 }
jurzua
parents:
diff changeset
84 }
jurzua
parents:
diff changeset
85
jurzua
parents:
diff changeset
86 public String loadCloneEntity(){
jurzua
parents:
diff changeset
87 if(cloneEntity != null && cloneEntity.isPersistent()){
jurzua
parents:
diff changeset
88 getSessionBean().editEntity(cloneEntity);
jurzua
parents:
diff changeset
89 }
jurzua
parents:
diff changeset
90 return PAGE_EDITOR;
jurzua
parents:
diff changeset
91 }
jurzua
parents:
diff changeset
92
jurzua
parents:
diff changeset
93 public boolean checkUnityCollection(String collectionName, Long id, Entity repository){
jurzua
parents:
diff changeset
94 return this.checkUnity(collectionName, id, COLLECTION, repository, is_part_of, null);
jurzua
parents:
diff changeset
95 }
jurzua
parents:
diff changeset
96
jurzua
parents:
diff changeset
97 public boolean checkUnityRepository(String repositoryName, Long id, Entity city){
jurzua
parents:
diff changeset
98 return this.checkUnity(repositoryName, id, REPOSITORY, city, is_in, null);
jurzua
parents:
diff changeset
99 }
jurzua
parents:
diff changeset
100
jurzua
parents:
diff changeset
101 public boolean checkUnityCity(String cityName, Long id, Entity country){
jurzua
parents:
diff changeset
102 return this.checkUnity(cityName, id, PLACE, country, is_part_of, null);
jurzua
parents:
diff changeset
103 }
jurzua
parents:
diff changeset
104
jurzua
parents:
diff changeset
105 public boolean checkUnityCodex(String identifier, Long id, Entity collection){
jurzua
parents:
diff changeset
106 return this.checkUnity(identifier, id, CODEX, collection, is_part_of, "identifier");
jurzua
parents:
diff changeset
107 }
jurzua
parents:
diff changeset
108
jurzua
parents:
diff changeset
109 public Entity getCloneEntity() {
jurzua
parents:
diff changeset
110 return cloneEntity;
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112
jurzua
parents:
diff changeset
113 public void setCloneEntity(Entity cloneEntity) {
jurzua
parents:
diff changeset
114 this.cloneEntity = cloneEntity;
jurzua
parents:
diff changeset
115 }
jurzua
parents:
diff changeset
116 public String getUnityCheckerMsg() {
jurzua
parents:
diff changeset
117 return unityCheckerMsg;
jurzua
parents:
diff changeset
118 }
jurzua
parents:
diff changeset
119
jurzua
parents:
diff changeset
120 public void setUnityCheckerMsg(String unityCheckerMsg) {
jurzua
parents:
diff changeset
121 this.unityCheckerMsg = unityCheckerMsg;
jurzua
parents:
diff changeset
122 }
jurzua
parents:
diff changeset
123 public boolean isRenderUnityCheckerDialog() {
jurzua
parents:
diff changeset
124 return renderUnityCheckerDialog;
jurzua
parents:
diff changeset
125 }
jurzua
parents:
diff changeset
126
jurzua
parents:
diff changeset
127 public void setRenderUnityCheckerDialog(boolean renderUnityCheckerDialog) {
jurzua
parents:
diff changeset
128 this.renderUnityCheckerDialog = renderUnityCheckerDialog;
jurzua
parents:
diff changeset
129 }
jurzua
parents:
diff changeset
130 }