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

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