Comment from Mustapha Zorgati
This commit is contained in:
parent
7836590311
commit
8442be7903
|
@ -1,40 +0,0 @@
|
|||
package pro.taskana.common.internal.util;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class FieldAndValuePairTriplet {
|
||||
|
||||
private Field field;
|
||||
private Object oldValue;
|
||||
private Object newValue;
|
||||
|
||||
public FieldAndValuePairTriplet(Field field, Object oldValue, Object newValue) {
|
||||
this.field = field;
|
||||
this.oldValue = oldValue;
|
||||
this.newValue = newValue;
|
||||
}
|
||||
|
||||
public Field getField() {
|
||||
return field;
|
||||
}
|
||||
|
||||
public void setField(Field field) {
|
||||
this.field = field;
|
||||
}
|
||||
|
||||
public Object getOldValue() {
|
||||
return oldValue;
|
||||
}
|
||||
|
||||
public void setOldValue(Object oldValue) {
|
||||
this.oldValue = oldValue;
|
||||
}
|
||||
|
||||
public Object getNewValue() {
|
||||
return newValue;
|
||||
}
|
||||
|
||||
public void setNewValue(Object newValue) {
|
||||
this.newValue = newValue;
|
||||
}
|
||||
}
|
|
@ -37,9 +37,9 @@ import pro.taskana.common.internal.CustomPropertySelector;
|
|||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.common.internal.security.CurrentUserContext;
|
||||
import pro.taskana.common.internal.util.CheckedFunction;
|
||||
import pro.taskana.common.internal.util.FieldAndValuePairTriplet;
|
||||
import pro.taskana.common.internal.util.IdGenerator;
|
||||
import pro.taskana.common.internal.util.Pair;
|
||||
import pro.taskana.common.internal.util.Triplet;
|
||||
import pro.taskana.spi.history.api.events.task.ClaimCancelledEvent;
|
||||
import pro.taskana.spi.history.api.events.task.ClaimedEvent;
|
||||
import pro.taskana.spi.history.api.events.task.CompletedEvent;
|
||||
|
@ -886,33 +886,31 @@ public class TaskServiceImpl implements TaskService {
|
|||
currentClass = currentClass.getSuperclass();
|
||||
}
|
||||
|
||||
Predicate<FieldAndValuePairTriplet> areFieldsNotEqual =
|
||||
Predicate<Triplet<Field, Object, Object>> areFieldsNotEqual =
|
||||
fieldAndValuePairTriplet ->
|
||||
!Objects.equals(
|
||||
fieldAndValuePairTriplet.getOldValue(), fieldAndValuePairTriplet.getNewValue());
|
||||
Predicate<FieldAndValuePairTriplet> isFieldNotCustomAttributes =
|
||||
fieldAndValuePairTriplet.getMiddle(), fieldAndValuePairTriplet.getRight());
|
||||
Predicate<Triplet<Field, Object, Object>> isFieldNotCustomAttributes =
|
||||
fieldAndValuePairTriplet ->
|
||||
!fieldAndValuePairTriplet.getField().getName().equals("customAttributes");
|
||||
!fieldAndValuePairTriplet.getLeft().getName().equals("customAttributes");
|
||||
|
||||
List<JSONObject> changedAttributes =
|
||||
fields.stream()
|
||||
.peek(field -> field.setAccessible(true))
|
||||
.map(
|
||||
CheckedFunction.wrap(
|
||||
field ->
|
||||
new FieldAndValuePairTriplet(
|
||||
field, field.get(oldTaskImpl), field.get(newTaskImpl))))
|
||||
field -> new Triplet<>(field, field.get(oldTaskImpl), field.get(newTaskImpl))))
|
||||
.filter(areFieldsNotEqual.and(isFieldNotCustomAttributes))
|
||||
.map(
|
||||
fieldAndValuePairTriplet -> {
|
||||
JSONObject changedAttribute = new JSONObject();
|
||||
changedAttribute.put("fieldName", fieldAndValuePairTriplet.getField().getName());
|
||||
changedAttribute.put("fieldName", fieldAndValuePairTriplet.getLeft().getName());
|
||||
changedAttribute.put(
|
||||
"oldValue",
|
||||
Optional.ofNullable(fieldAndValuePairTriplet.getOldValue()).orElse(""));
|
||||
Optional.ofNullable(fieldAndValuePairTriplet.getMiddle()).orElse(""));
|
||||
changedAttribute.put(
|
||||
"newValue",
|
||||
Optional.ofNullable(fieldAndValuePairTriplet.getNewValue()).orElse(""));
|
||||
Optional.ofNullable(fieldAndValuePairTriplet.getRight()).orElse(""));
|
||||
return changedAttribute;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
|
Loading…
Reference in New Issue