1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.core.atna;
17
18 import lombok.AllArgsConstructor;
19 import lombok.Getter;
20 import lombok.NoArgsConstructor;
21 import lombok.Setter;
22 import org.apache.commons.lang3.StringUtils;
23 import org.openehealth.ipf.commons.audit.codes.EventOutcomeIndicator;
24 import org.openehealth.ipf.commons.audit.types.ActiveParticipantRoleId;
25 import org.openehealth.ipf.commons.audit.utils.AuditUtils;
26
27 import java.io.Serializable;
28 import java.util.ArrayList;
29 import java.util.Arrays;
30 import java.util.Collection;
31 import java.util.List;
32
33
34
35
36
37
38 public abstract class AuditDataset implements Serializable {
39
40 @NoArgsConstructor
41 public static class HumanUser {
42
43 @Getter @Setter private String id;
44
45
46 @Getter @Setter private String name;
47
48
49 @Getter private final List<ActiveParticipantRoleId> roles = new ArrayList<>();
50
51 public HumanUser(String id, String name, Collection<ActiveParticipantRoleId> roles) {
52 this.id = id;
53 this.name = name;
54 this.roles.addAll(roles);
55 }
56
57 public boolean isEmpty() {
58 return StringUtils.isAllBlank(id, name);
59 }
60 }
61
62
63
64
65
66 @Getter
67 private final boolean serverSide;
68
69
70
71
72 @Getter
73 @Setter
74 private EventOutcomeIndicator eventOutcomeIndicator;
75
76
77
78
79 @Getter
80 @Setter
81 private String eventOutcomeDescription;
82
83
84
85
86 @Getter
87 @Setter
88 String sourceUserName;
89
90
91
92
93
94
95 public AuditDataset(boolean serverSide) {
96 this.serverSide = serverSide;
97 }
98
99 @Override
100 public String toString() {
101 return "AuditDataset{" +
102 "serverSide=" + serverSide +
103 ", eventOutcomeIndicator=" + eventOutcomeIndicator +
104 ", eventOutcomeDescription='" + eventOutcomeDescription + '\'' +
105 ", sourceUserName='" + sourceUserName + '\'' +
106 '}';
107 }
108
109
110
111
112 public abstract String getSourceUserId();
113
114
115
116
117 public abstract String getDestinationUserId();
118
119
120
121
122
123
124 public abstract String getLocalAddress();
125
126
127
128
129 public abstract String getRemoteAddress();
130
131
132
133
134 public abstract List<HumanUser> getHumanUsers();
135
136
137
138
139 public boolean isSourceUserIsRequestor() {
140 return getHumanUsers().isEmpty();
141 }
142
143
144
145
146 public boolean isDestinationUserIsRequestor() {
147 return false;
148 }
149 }