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