1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
package org.openecomp.sdc.be.auditing.impl;
import org.apache.commons.lang.StringUtils;
import org.javatuples.Pair;
import org.openecomp.sdc.be.auditing.api.AuditEventFactory;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.common.api.Constants;
import java.util.Collections;
import java.util.List;
public abstract class AuditBaseEventFactory implements AuditEventFactory {
//TODO imanzon: Check if requestId and serviceInstanceId fields are required for all tables.
//Currently they are included even if they ahs null value. If they should not appear then
//createTable code should be updated so that they need to be removed from the tables
private AuditingActionEnum action;
public AuditBaseEventFactory(AuditingActionEnum action) {
this.action = action;
}
public AuditingActionEnum getAction() {
return action;
}
public static String buildUserNameExtended(User user) {
if (user == null) {
return null;
}
StringBuilder builder = new StringBuilder();
appendIfNotEmpty(user.getUserId(), builder);
String firstName = replaceNullNameWithEmpty(user.getFirstName());
String lastName = replaceNullNameWithEmpty(user.getLastName());
if (appendIfNotEmpty(firstName, builder)) {
appendIfNotEmpty(lastName, builder, " ");
}
else {
appendIfNotEmpty(lastName, builder);
}
appendIfNotEmpty(user.getEmail(), builder);
appendIfNotEmpty(user.getRole(), builder);
return builder.toString();
}
private static boolean appendIfNotEmpty(String value, StringBuilder builder) {
return appendIfNotEmpty(value, builder, ", ");
}
protected static boolean appendIfNotEmpty(String value, StringBuilder builder, String delimiter) {
if (StringUtils.isEmpty(value)) {
return false;
}
addDelimiterIfNeeded(builder, delimiter);
builder.append(value);
return true;
}
private static void addDelimiterIfNeeded(StringBuilder builder, String delimiter) {
if (builder.length() > 0) {
builder.append(delimiter);
}
}
protected static String buildUserName(User user) {
if (user == null || user.getUserId() == null || user.getUserId().isEmpty()) {
return Constants.EMPTY_STRING;
}
StringBuilder sb = new StringBuilder();
String firstName = replaceNullNameWithEmpty(user.getFirstName());
if (!firstName.isEmpty()) {
sb.append(firstName);
sb.append(" ");
}
String lastName = replaceNullNameWithEmpty(user.getLastName());
if (!lastName.isEmpty()) {
sb.append(lastName);
}
sb.append("(").append(user.getUserId()).append(")");
return sb.toString();
}
public static String buildValue(String value) {
if (value == null) {
return Constants.EMPTY_STRING;
}
return value;
}
protected static String replaceNullNameWithEmpty(String name) {
if (name != null && !name.trim().contains(Constants.NULL_STRING)) {
return name;
}
return Constants.EMPTY_STRING;
}
@Override
//TODO implement in derived classes for ci testing
public List<Pair<String, String>> getQueryParams() {
return Collections.emptyList();
}
@Override
public String getAuditingEsType() {
return this.action.getAuditingEsType();
}
}
|