1
|
1 package de.mpiwg.itgroup.ismi.entry.utils;
|
|
2
|
|
3 import java.util.ArrayList;
|
|
4 import java.util.List;
|
|
5
|
|
6 import org.mpi.openmind.cache.WrapperService;
|
|
7 import org.mpi.openmind.repository.bo.Entity;
|
|
8 import org.mpi.openmind.repository.bo.Relation;
|
|
9
|
|
10 public class PrivacityUtils {
|
|
11
|
|
12
|
|
13 public static List<Entity> changePrivacity4Person(Entity person, Boolean isPublic, WrapperService wrapper){
|
|
14 List<Entity> saveList = new ArrayList<Entity>();
|
|
15
|
|
16 if(person.isLightweight()){
|
|
17 person = wrapper.getEntityContent(person);
|
|
18 }
|
|
19
|
|
20 boolean privacity = false;
|
|
21 if(isPublic == null){
|
|
22 privacity = !person.getIsPublic();
|
|
23 }else{
|
|
24 privacity = isPublic;
|
|
25 }
|
|
26
|
|
27 person.setIsPublic(privacity);
|
|
28 saveList.add(person);
|
|
29
|
|
30 List<Relation> relList = null;
|
|
31 //loading relations
|
|
32 if(privacity){
|
|
33 relList = new ArrayList<Relation>(person.getSourceRelations());
|
|
34 for (Relation rel : relList) {
|
|
35 String relName = rel.getOwnValue();
|
|
36 if (relName.equals("was_born_in") ||
|
|
37 relName.equals("lived_in") ||
|
|
38 relName.equals("was_student_of") ||
|
|
39 relName.equals("has_role") ||
|
|
40 relName.equals("died_in")) {
|
|
41 Entity target = wrapper.getEntityById(rel.getTargetId());
|
|
42 //target = wrapper.getEntityContent(target);
|
|
43 target.setIsPublic(privacity);
|
|
44 saveList.add(target);
|
|
45 }
|
|
46 }
|
|
47 }
|
|
48
|
|
49 relList = new ArrayList<Relation>(person.getTargetRelations());
|
|
50 for (Relation rel : relList) {
|
|
51 String relName = rel.getOwnValue();
|
|
52 //title were be not included into this list
|
|
53 if (relName.equals("is_alias_name_of") || relName.equals("is_prime_alias_name_of")) {
|
|
54 Entity source = wrapper.getEntityById(rel.getSourceId());
|
|
55 //source = wrapper.getEntityContent(source);
|
|
56 source.setIsPublic(privacity);
|
|
57 saveList.add(source);
|
|
58 }
|
|
59 }
|
|
60
|
|
61 return saveList;
|
|
62 }
|
|
63
|
|
64 public static List<Entity> changePrivacity4Title(Entity title, Boolean isPublic, WrapperService wrapper){
|
|
65 List<Entity> saveList = new ArrayList<Entity>();
|
|
66
|
|
67 /*
|
|
68 if(title.isLightweight()){
|
|
69 title = wrapper.getEntityContent(title);
|
|
70 }*/
|
|
71
|
|
72 boolean privacity = false;
|
|
73 if(isPublic == null){
|
|
74 privacity = !title.getIsPublic();
|
|
75 }else{
|
|
76 privacity = isPublic;
|
|
77 }
|
|
78
|
|
79 title.setIsPublic(privacity);
|
|
80 saveList.add(title);
|
|
81
|
|
82 if(privacity){
|
|
83 for(Entity ent : wrapper.getTargetsForSourceRelation(title, "has_subject", "SUBJECT", 1)){
|
|
84 //if(ent.isLightweight())
|
|
85 // ent = wrapper.getEntityContent(ent);
|
|
86 ent.setIsPublic(privacity);
|
|
87 saveList.add(ent);
|
|
88 }
|
|
89
|
|
90 for(Entity ent : wrapper.getTargetsForSourceRelation(title, "was_created_in", "PLACE", 1)){
|
|
91 //if(ent.isLightweight())
|
|
92 // ent = wrapper.getEntityContent(ent);
|
|
93 ent.setIsPublic(privacity);
|
|
94 saveList.add(ent);
|
|
95 }
|
|
96 }
|
|
97
|
|
98 for(Entity ent : wrapper.getSourcesForTargetRelation(title, "is_alias_title_of", "ALIAS", -1)){
|
|
99 //if(ent.isLightweight())
|
|
100 // ent = wrapper.getEntityContent(ent);
|
|
101 ent.setIsPublic(privacity);
|
|
102 saveList.add(ent);
|
|
103 }
|
|
104
|
|
105 return saveList;
|
|
106 }
|
|
107
|
|
108
|
|
109 /**
|
|
110 * 437080
|
|
111 * al-Taḏkiraẗ fī ʿilm al-hayʾaẗ
|
|
112 * BIT(1)
|
|
113 * create:
|
|
114 * ALTER TABLE `openmind`.`node` ADD COLUMN `public` BIT(1) AFTER `possible_value`;
|
|
115 * modify:
|
|
116 * ALTER TABLE `openmind`.`node` MODIFY COLUMN `public` BIT(1) NOT NULL DEFAULT false;
|
|
117 * @param witness
|
|
118 * @param isPublic
|
|
119 * @param wrapper
|
|
120 * @return
|
|
121 */
|
|
122 public static List<Entity> changePrivacity4Witness(Entity witness, Boolean isPublic, WrapperService wrapper){
|
|
123 List<Entity> saveList = new ArrayList<Entity>();
|
|
124 /*
|
|
125 if(witness.isLightweight()){
|
|
126 witness = wrapper.getEntityContent(witness);
|
|
127 }
|
|
128 */
|
|
129 boolean privacity = false;
|
|
130 if(isPublic == null){
|
|
131 privacity = !witness.getIsPublic();
|
|
132 }else{
|
|
133 privacity = isPublic;
|
|
134 }
|
|
135
|
|
136 witness.setIsPublic(privacity);
|
|
137 saveList.add(witness);
|
|
138
|
|
139 //changing references
|
|
140 List<Entity> refEntities = wrapper.getSourcesForTargetRelation(witness.getId(), "is_reference_of", "REFERENCE", -1);
|
|
141 for(Entity ref : refEntities){
|
|
142 if(ref.isLightweight()){
|
|
143 ref = wrapper.getEntityContent(ref);
|
|
144 }
|
|
145 ref.setIsPublic(privacity);
|
|
146 saveList.add(ref);
|
|
147 }
|
|
148
|
|
149 //only if the witness is done public, the related entities will be changed.
|
|
150 if(privacity){
|
|
151 List<Entity> list =
|
|
152 wrapper.getTargetsForSourceRelation(witness.getId(),"is_part_of", "CODEX", 1);
|
|
153 if (list.size() > 0) {
|
|
154 Entity codex = list.get(0);
|
|
155 codex.setIsPublic(privacity);
|
|
156 saveList.add(codex);
|
|
157
|
|
158 list = wrapper.getTargetsForSourceRelation(codex.getId(), "is_part_of", "COLLECTION", 1);
|
|
159 if (list.size() > 0) {
|
|
160 Entity collection = list.get(0);
|
|
161 collection.setIsPublic(privacity);
|
|
162 saveList.add(collection);
|
|
163
|
|
164 list = wrapper.getTargetsForSourceRelation(collection.getId(), "is_part_of", "REPOSITORY", 1);
|
|
165 if (list.size() > 0) {
|
|
166 Entity repository = list.get(0);
|
|
167 repository.setIsPublic(privacity);
|
|
168 saveList.add(repository);
|
|
169
|
|
170 list = wrapper.getTargetsForSourceRelation(repository.getId(), "is_in", "PLACE", 1);
|
|
171 if(list.size() > 0){
|
|
172 Entity city = list.get(0);
|
|
173 city.setIsPublic(privacity);
|
|
174 saveList.add(city);
|
|
175
|
|
176 list = wrapper.getTargetsForSourceRelation(city.getId(), "is_part_of", "PLACE", 1);
|
|
177 if(list.size() > 0){
|
|
178 Entity country = list.get(0);
|
|
179 country.setIsPublic(privacity);
|
|
180 saveList.add(country);
|
|
181 }
|
|
182 }
|
|
183 }
|
|
184 }
|
|
185 }
|
|
186 }
|
|
187
|
|
188 return saveList;
|
|
189 }
|
|
190
|
|
191 }
|