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.InternalTaskanaEngine;
|
||||||
import pro.taskana.common.internal.security.CurrentUserContext;
|
import pro.taskana.common.internal.security.CurrentUserContext;
|
||||||
import pro.taskana.common.internal.util.CheckedFunction;
|
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.IdGenerator;
|
||||||
import pro.taskana.common.internal.util.Pair;
|
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.ClaimCancelledEvent;
|
||||||
import pro.taskana.spi.history.api.events.task.ClaimedEvent;
|
import pro.taskana.spi.history.api.events.task.ClaimedEvent;
|
||||||
import pro.taskana.spi.history.api.events.task.CompletedEvent;
|
import pro.taskana.spi.history.api.events.task.CompletedEvent;
|
||||||
|
|
@ -886,33 +886,31 @@ public class TaskServiceImpl implements TaskService {
|
||||||
currentClass = currentClass.getSuperclass();
|
currentClass = currentClass.getSuperclass();
|
||||||
}
|
}
|
||||||
|
|
||||||
Predicate<FieldAndValuePairTriplet> areFieldsNotEqual =
|
Predicate<Triplet<Field, Object, Object>> areFieldsNotEqual =
|
||||||
fieldAndValuePairTriplet ->
|
fieldAndValuePairTriplet ->
|
||||||
!Objects.equals(
|
!Objects.equals(
|
||||||
fieldAndValuePairTriplet.getOldValue(), fieldAndValuePairTriplet.getNewValue());
|
fieldAndValuePairTriplet.getMiddle(), fieldAndValuePairTriplet.getRight());
|
||||||
Predicate<FieldAndValuePairTriplet> isFieldNotCustomAttributes =
|
Predicate<Triplet<Field, Object, Object>> isFieldNotCustomAttributes =
|
||||||
fieldAndValuePairTriplet ->
|
fieldAndValuePairTriplet ->
|
||||||
!fieldAndValuePairTriplet.getField().getName().equals("customAttributes");
|
!fieldAndValuePairTriplet.getLeft().getName().equals("customAttributes");
|
||||||
|
|
||||||
List<JSONObject> changedAttributes =
|
List<JSONObject> changedAttributes =
|
||||||
fields.stream()
|
fields.stream()
|
||||||
.peek(field -> field.setAccessible(true))
|
.peek(field -> field.setAccessible(true))
|
||||||
.map(
|
.map(
|
||||||
CheckedFunction.wrap(
|
CheckedFunction.wrap(
|
||||||
field ->
|
field -> new Triplet<>(field, field.get(oldTaskImpl), field.get(newTaskImpl))))
|
||||||
new FieldAndValuePairTriplet(
|
|
||||||
field, field.get(oldTaskImpl), field.get(newTaskImpl))))
|
|
||||||
.filter(areFieldsNotEqual.and(isFieldNotCustomAttributes))
|
.filter(areFieldsNotEqual.and(isFieldNotCustomAttributes))
|
||||||
.map(
|
.map(
|
||||||
fieldAndValuePairTriplet -> {
|
fieldAndValuePairTriplet -> {
|
||||||
JSONObject changedAttribute = new JSONObject();
|
JSONObject changedAttribute = new JSONObject();
|
||||||
changedAttribute.put("fieldName", fieldAndValuePairTriplet.getField().getName());
|
changedAttribute.put("fieldName", fieldAndValuePairTriplet.getLeft().getName());
|
||||||
changedAttribute.put(
|
changedAttribute.put(
|
||||||
"oldValue",
|
"oldValue",
|
||||||
Optional.ofNullable(fieldAndValuePairTriplet.getOldValue()).orElse(""));
|
Optional.ofNullable(fieldAndValuePairTriplet.getMiddle()).orElse(""));
|
||||||
changedAttribute.put(
|
changedAttribute.put(
|
||||||
"newValue",
|
"newValue",
|
||||||
Optional.ofNullable(fieldAndValuePairTriplet.getNewValue()).orElse(""));
|
Optional.ofNullable(fieldAndValuePairTriplet.getRight()).orElse(""));
|
||||||
return changedAttribute;
|
return changedAttribute;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue