annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/UnityChecker.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children 71efad4fe975
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
jurzua
parents:
diff changeset
7 public class UnityChecker extends AbstractISMIBean{
jurzua
parents:
diff changeset
8
jurzua
parents:
diff changeset
9 /**
jurzua
parents:
diff changeset
10 *
jurzua
parents:
diff changeset
11 */
jurzua
parents:
diff changeset
12 private static final long serialVersionUID = -5727416233789954800L;
jurzua
parents:
diff changeset
13 private Entity cloneEntity;
jurzua
parents:
diff changeset
14 private String unityCheckerMsg;
jurzua
parents:
diff changeset
15 private boolean renderUnityCheckerDialog;
jurzua
parents:
diff changeset
16
jurzua
parents:
diff changeset
17 @Override
jurzua
parents:
diff changeset
18 public void reset(){
jurzua
parents:
diff changeset
19 super.reset();
jurzua
parents:
diff changeset
20 this.renderUnityCheckerDialog = false;
jurzua
parents:
diff changeset
21 }
jurzua
parents:
diff changeset
22
jurzua
parents:
diff changeset
23 private boolean checkUnity(String unityName, Long id, String objectClass, Entity target, String relationName, String attName){
jurzua
parents:
diff changeset
24 this.cloneEntity = null;
jurzua
parents:
diff changeset
25 unityName = unityName.toLowerCase();
jurzua
parents:
diff changeset
26
jurzua
parents:
diff changeset
27 if(target != null && target.isPersistent()){
jurzua
parents:
diff changeset
28 for (Entity src : getWrapper().getSourcesForTargetRelation(target, relationName, objectClass, -1)) {
jurzua
parents:
diff changeset
29 if(id == null || id.longValue() != src.getId().longValue()){
jurzua
parents:
diff changeset
30 if(StringUtils.isEmpty(attName)){
jurzua
parents:
diff changeset
31 if(unityName.equals(src.getOwnValue().toLowerCase())){
jurzua
parents:
diff changeset
32 this.cloneEntity = src;
jurzua
parents:
diff changeset
33 return false;
jurzua
parents:
diff changeset
34 }
jurzua
parents:
diff changeset
35 }else{
jurzua
parents:
diff changeset
36 Attribute att = getWrapper().getAttributeByName(src.getId(), attName);
jurzua
parents:
diff changeset
37 if(att != null && unityName.equals(att.getValue().toLowerCase())){
jurzua
parents:
diff changeset
38 this.cloneEntity = src;
jurzua
parents:
diff changeset
39 return false;
jurzua
parents:
diff changeset
40 }
jurzua
parents:
diff changeset
41 }
jurzua
parents:
diff changeset
42 }
jurzua
parents:
diff changeset
43 }
jurzua
parents:
diff changeset
44 }
jurzua
parents:
diff changeset
45
jurzua
parents:
diff changeset
46 return true;
jurzua
parents:
diff changeset
47 }
jurzua
parents:
diff changeset
48
jurzua
parents:
diff changeset
49 public String hideUnityCheckerDialog(){
jurzua
parents:
diff changeset
50 this.renderUnityCheckerDialog = false;
jurzua
parents:
diff changeset
51 return PAGE_EDITOR;
jurzua
parents:
diff changeset
52 }
jurzua
parents:
diff changeset
53
jurzua
parents:
diff changeset
54 public void renderUnityCheckerDialog(){
jurzua
parents:
diff changeset
55 if(cloneEntity != null && cloneEntity.isPersistent()){
jurzua
parents:
diff changeset
56 if(cloneEntity.getObjectClass().equals(CODEX)){
jurzua
parents:
diff changeset
57 this.unityCheckerMsg = "There is already an object with the same identifier. ";
jurzua
parents:
diff changeset
58 }else{
jurzua
parents:
diff changeset
59 this.unityCheckerMsg = "There is already an object with the same name. ";
jurzua
parents:
diff changeset
60 }
jurzua
parents:
diff changeset
61
jurzua
parents:
diff changeset
62 this.unityCheckerMsg += "The ID of the " + cloneEntity.getObjectClass().toLowerCase() +
jurzua
parents:
diff changeset
63 " found is " + cloneEntity.getId() + ".";
jurzua
parents:
diff changeset
64
jurzua
parents:
diff changeset
65 this.unityCheckerMsg +=
jurzua
parents:
diff changeset
66 "\nDo you want to load the existing "
jurzua
parents:
diff changeset
67 + cloneEntity.getObjectClass().toLowerCase() + "?";
jurzua
parents:
diff changeset
68 this.renderUnityCheckerDialog = true;
jurzua
parents:
diff changeset
69 }
jurzua
parents:
diff changeset
70 }
jurzua
parents:
diff changeset
71
jurzua
parents:
diff changeset
72 public String loadCloneEntity(){
jurzua
parents:
diff changeset
73 if(cloneEntity != null && cloneEntity.isPersistent()){
jurzua
parents:
diff changeset
74 getSessionBean().editEntity(cloneEntity);
jurzua
parents:
diff changeset
75 }
jurzua
parents:
diff changeset
76 return PAGE_EDITOR;
jurzua
parents:
diff changeset
77 }
jurzua
parents:
diff changeset
78
jurzua
parents:
diff changeset
79 public boolean checkUnityCollection(String collectionName, Long id, Entity repository){
jurzua
parents:
diff changeset
80 return this.checkUnity(collectionName, id, COLLECTION, repository, is_part_of, null);
jurzua
parents:
diff changeset
81 }
jurzua
parents:
diff changeset
82
jurzua
parents:
diff changeset
83 public boolean checkUnityRepository(String repositoryName, Long id, Entity city){
jurzua
parents:
diff changeset
84 return this.checkUnity(repositoryName, id, REPOSITORY, city, is_in, null);
jurzua
parents:
diff changeset
85 }
jurzua
parents:
diff changeset
86
jurzua
parents:
diff changeset
87 public boolean checkUnityCity(String cityName, Long id, Entity country){
jurzua
parents:
diff changeset
88 return this.checkUnity(cityName, id, PLACE, country, is_part_of, null);
jurzua
parents:
diff changeset
89 }
jurzua
parents:
diff changeset
90
jurzua
parents:
diff changeset
91 public boolean checkUnityCodex(String identifier, Long id, Entity collection){
jurzua
parents:
diff changeset
92 return this.checkUnity(identifier, id, CODEX, collection, is_part_of, "identifier");
jurzua
parents:
diff changeset
93 }
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 public Entity getCloneEntity() {
jurzua
parents:
diff changeset
96 return cloneEntity;
jurzua
parents:
diff changeset
97 }
jurzua
parents:
diff changeset
98
jurzua
parents:
diff changeset
99 public void setCloneEntity(Entity cloneEntity) {
jurzua
parents:
diff changeset
100 this.cloneEntity = cloneEntity;
jurzua
parents:
diff changeset
101 }
jurzua
parents:
diff changeset
102 public String getUnityCheckerMsg() {
jurzua
parents:
diff changeset
103 return unityCheckerMsg;
jurzua
parents:
diff changeset
104 }
jurzua
parents:
diff changeset
105
jurzua
parents:
diff changeset
106 public void setUnityCheckerMsg(String unityCheckerMsg) {
jurzua
parents:
diff changeset
107 this.unityCheckerMsg = unityCheckerMsg;
jurzua
parents:
diff changeset
108 }
jurzua
parents:
diff changeset
109 public boolean isRenderUnityCheckerDialog() {
jurzua
parents:
diff changeset
110 return renderUnityCheckerDialog;
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112
jurzua
parents:
diff changeset
113 public void setRenderUnityCheckerDialog(boolean renderUnityCheckerDialog) {
jurzua
parents:
diff changeset
114 this.renderUnityCheckerDialog = renderUnityCheckerDialog;
jurzua
parents:
diff changeset
115 }
jurzua
parents:
diff changeset
116 }