Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ package dev.bpmcrafters.processengineapi.impl.task
*
* @since 0.0.1
*/
fun Map<String, Any>.filterBySubscription(subscription: TaskSubscriptionHandle): Map<String, Any> =
fun Map<String, Any?>.filterBySubscription(subscription: TaskSubscriptionHandle): Map<String, Any?> =
if (subscription.payloadDescription != null) {
if (subscription.payloadDescription.isEmpty()) {
mapOf()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package dev.bpmcrafters.processengineapi
import java.util.function.Supplier

/**
* Supplier for the payload.
* Supplier for the payload of commands to the engine
* Used to for instance define process-variables when starting processes.
* @since 0.0.1
*/
fun interface PayloadSupplier : Supplier<Map<String, Any>>
fun interface PayloadSupplier : Supplier<Map<String, Any?>>
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ data class CorrelateMessageCmd(
* @param payload payload to use.
* @param correlation correlation to use.
*/
constructor(messageName: String, payload: Map<String, Any>, correlation: Correlation, restrictions: Map<String, String>) :
constructor(messageName: String, payload: Map<String, Any?>, correlation: Correlation, restrictions: Map<String, String>) :
this(
messageName = messageName,
payloadSupplier = PayloadSupplier { payload },
Expand All @@ -44,7 +44,7 @@ data class CorrelateMessageCmd(
* @param payload payload to use.
* @param correlation correlation to use.
*/
constructor(messageName: String, payload: Map<String, Any>, correlation: Correlation) :
constructor(messageName: String, payload: Map<String, Any?>, correlation: Correlation) :
this(
messageName = messageName,
payloadSupplier = PayloadSupplier { payload },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ data class SendSignalCmd(
* @param restrictions restrictions.
* @param payload payload to use.
*/
constructor(signalName: String, restrictions: Map<String, String>, payload: Map<String, Any>) : this(signalName, PayloadSupplier { payload }, restrictions )
constructor(signalName: String, restrictions: Map<String, String>, payload: Map<String, Any?>) : this(signalName, PayloadSupplier { payload }, restrictions )
/**
* Constructs a signal command by signal name, restrictions and no payload.
* @param signalName signal name.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ data class DecisionByRefEvaluationCommand(
* @param payload payload to use.
* @param restrictions restrictions for the message.
*/
constructor(decisionRef: String, payload: Map<String, Any>, restrictions: Map<String, String>) : this(
constructor(decisionRef: String, payload: Map<String, Any?>, restrictions: Map<String, String>) : this(
decisionRef = decisionRef,
payloadSupplier = PayloadSupplier { payload },
restrictionSupplier = { restrictions }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ data class StartProcessByDefinitionCmd(
* @param payload payload to use.
* @param restrictions restrictions for the message.
*/
constructor(definitionKey: String, payload: Map<String, Any>, restrictions: Map<String, String>) : this(
constructor(definitionKey: String, payload: Map<String, Any?>, restrictions: Map<String, String>) : this(
definitionKey = definitionKey,
payloadSupplier = PayloadSupplier { payload },
restrictions = restrictions
Expand All @@ -36,7 +36,7 @@ data class StartProcessByDefinitionCmd(
* @param definitionKey process definition key.
* @param payload payload to use.
*/
constructor(definitionKey: String, payload: Map<String, Any>) : this(
constructor(definitionKey: String, payload: Map<String, Any?>) : this(
definitionKey = definitionKey,
payloadSupplier = PayloadSupplier { payload } ,
restrictions = mapOf()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ data class StartProcessByMessageCmd(
* @param payload payload to use.
* @param restrictions restrictions for the message.
*/
constructor(messageName: String, payload: Map<String, Any>, restrictions: Map<String, String>) : this(
constructor(messageName: String, payload: Map<String, Any?>, restrictions: Map<String, String>) : this(
messageName = messageName,
payloadSupplier = PayloadSupplier { payload },
restrictions = restrictions
Expand All @@ -36,7 +36,7 @@ data class StartProcessByMessageCmd(
* @param messageName message name.
* @param payload payload to use.
*/
constructor(messageName: String, payload: Map<String, Any>) : this(
constructor(messageName: String, payload: Map<String, Any?>) : this(
messageName = messageName,
payloadSupplier = PayloadSupplier { payload },
restrictions = mapOf()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ abstract class ChangePayloadModifyTaskCmd(
* @param taskId id of the task to modify.
* @param payload payload to use.
*/
constructor(taskId: String, payload: Map<String, Any>) : this(
constructor(taskId: String, payload: Map<String, Any?>) : this(
taskId = taskId,
payloadSupplier = PayloadSupplier { payload },
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ open class CompleteTaskByErrorCmd(
* @param errorMessage Optional details.
* @param payload payload to use.
*/
constructor(taskId: String, errorCode: String, errorMessage: String?, payload: Map<String, Any>) : this(
constructor(taskId: String, errorCode: String, errorMessage: String?, payload: Map<String, Any?>) : this(
taskId = taskId,
errorCode = errorCode,
errorMessage = errorMessage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ open class CompleteTaskCmd(
* @param taskId id of the task to complete.
* @param payload payload to use.
*/
constructor(taskId: String, payload: Map<String, Any>) : this(taskId, PayloadSupplier { payload } )
constructor(taskId: String, payload: Map<String, Any?>) : this(taskId, PayloadSupplier { payload } )

/**
* Creates the complete command for a given task id without payload.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import java.util.function.BiConsumer
* @since 0.0.1
*/
@JvmDefaultWithoutCompatibility
fun interface TaskHandler : BiConsumer<TaskInformation, Map<String, Any>> {
fun interface TaskHandler : BiConsumer<TaskInformation, Map<String, Any?>> {

fun process(parameters: Pair<TaskInformation, Map<String, Any>>): Pair<TaskInformation, Map<String, Any>> {
fun process(parameters: Pair<TaskInformation, Map<String, Any?>>): Pair<TaskInformation, Map<String, Any?>> {
accept(parameters.first, parameters.second)
return parameters
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class TaskModification(private val taskId: String) {
* @param payload new payload.
* @return builder instance.
*/
fun updatePayload(payload: Map<String, Any>) = this.apply {
fun updatePayload(payload: Map<String, Any?>) = this.apply {
commands += UpdatePayloadTaskCmd(taskId, payload)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ interface AssignmentDetector {
* @param newTaskInformation new task information and payload.
* @return true, if assignment change is detected. Defaults to `false`.
*/
fun hasChangedAssignment(oldTaskInformation: Pair<TaskInformation, Map<String, Any>>, newTaskInformation: Pair<TaskInformation, Map<String, Any>>): Boolean = false
fun hasChangedAssignment(oldTaskInformation: Pair<TaskInformation, Map<String, Any?>>, newTaskInformation: Pair<TaskInformation, Map<String, Any?>>): Boolean = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class CompositeTaskHandler(
return CompositeTaskHandler(handlers.plus(handler).toMutableList())
}

override fun accept(taskInformation: TaskInformation, payload: Map<String, Any>) {
override fun accept(taskInformation: TaskInformation, payload: Map<String, Any?>) {
handlers.fold( Pair(taskInformation, payload)) { params, handler -> handler.process(params) }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class UserTaskSupport(
) : TaskHandler, TaskTerminationHandler {

private lateinit var subscription: TaskSubscription
private val payload: ConcurrentHashMap<String, Map<String, Any>> = ConcurrentHashMap()
private val payload: ConcurrentHashMap<String, Map<String, Any?>> = ConcurrentHashMap()
private val information: ConcurrentHashMap<String, TaskInformation> = ConcurrentHashMap()
private val compositeTaskHandler: CompositeTaskHandler = CompositeTaskHandler().withHandler(this)
private val compositeTaskTerminationHandler: CompositeTaskTerminationHandler = CompositeTaskTerminationHandler().withHandler(this)
Expand All @@ -35,7 +35,7 @@ class UserTaskSupport(
* @throws IllegalArgumentException if no task with given id is found.
*/
@Throws(IllegalArgumentException::class)
fun getPayload(taskId: String): Map<String, Any> {
fun getPayload(taskId: String): Map<String, Any?> {
return requireNotNull(payload[taskId]) { "Could not find any variables for task $taskId." }
}

Expand Down Expand Up @@ -146,7 +146,7 @@ class UserTaskSupport(
* @param taskInformation task information.
* @param taskPayload payload of the task.
*/
fun onTaskDelivery(taskInformation: TaskInformation, taskPayload: Map<String, Any>) = compositeTaskHandler.process(taskInformation to taskPayload)
fun onTaskDelivery(taskInformation: TaskInformation, taskPayload: Map<String, Any?>) = compositeTaskHandler.process(taskInformation to taskPayload)


/**
Expand All @@ -159,7 +159,7 @@ class UserTaskSupport(
/**
* Implement assignment detection.
*/
override fun process(parameters: Pair<TaskInformation, Map<String, Any>>): Pair<TaskInformation, Map<String, Any>> {
override fun process(parameters: Pair<TaskInformation, Map<String, Any?>>): Pair<TaskInformation, Map<String, Any?>> {
val taskInformation = parameters.first
val taskPayload = parameters.second
// first modify the reason based on the assignment detector decision
Expand All @@ -186,7 +186,7 @@ class UserTaskSupport(
* @param taskInformation task information.
* @param taskPayload payload of the task.
*/
override fun accept(taskInformation: TaskInformation, taskPayload: Map<String, Any>) {
override fun accept(taskInformation: TaskInformation, taskPayload: Map<String, Any?>) {
information[taskInformation.taskId] = taskInformation
payload[taskInformation.taskId] = taskPayload
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import java.util.*
internal class UserTaskSupportTest {

private val support = UserTaskSupport(assignmentDetector = object: AssignmentDetector {
override fun hasChangedAssignment(oldTaskInformation: Pair<TaskInformation, Map<String, Any>>, newTaskInformation: Pair<TaskInformation, Map<String, Any>>): Boolean {
override fun hasChangedAssignment(oldTaskInformation: Pair<TaskInformation, Map<String, Any?>>, newTaskInformation: Pair<TaskInformation, Map<String, Any?>>): Boolean {
return oldTaskInformation.first.meta["custom-assignment-field"] != newTaskInformation.first.meta["custom-assignment-field"]
}
})
Expand Down