/** * @param MessageHandlerId $messageHandlerId * @param string $handlerName * @param NodeName $processingNodeName * @param HandlerType $handlerType * @param DataDirection $dataDirection * @param ProcessingTypes $processingTypes * @param ProcessingMetadata $processingMetadata * @param string $metadataRiotTag * @param string $icon * @param string $iconType * @param Prototype $preferredProcessingType * @param ProcessingId $processingId * @param array $additionalData * @return MessageHandlerWasInstalled */ public static function record(MessageHandlerId $messageHandlerId, $handlerName, NodeName $processingNodeName, HandlerType $handlerType, DataDirection $dataDirection, ProcessingTypes $processingTypes, ProcessingMetadata $processingMetadata, $metadataRiotTag, $icon, $iconType, Prototype $preferredProcessingType = null, ProcessingId $processingId = null, array $additionalData = []) { $event = self::occur($messageHandlerId->toString(), ['name' => $handlerName, 'processing_node_name' => $processingNodeName->toString(), 'handler_type' => $handlerType->toString(), 'data_direction' => $dataDirection->toString(), 'supported_processing_types' => $processingTypes->toArray(), 'processing_metadata' => $processingMetadata->toArray(), 'metadata_riot_tag' => $metadataRiotTag, 'icon' => $icon, 'icon_type' => $iconType, 'preferred_processing_type' => $preferredProcessingType ? $preferredProcessingType->of() : null, 'processing_id' => $processingId ? $processingId->toString() : null, 'additional_data' => $additionalData]); $event->messageHandlerId = $messageHandlerId; $event->processingNodeName = $processingNodeName; $event->handlerType = $handlerType; $event->dataDirection = $dataDirection; $event->supportedProcessingTypes = $processingTypes; $event->processingMetadata = $processingMetadata; $event->preferredProcessingType = $preferredProcessingType; $event->processingId = $processingId; return $event; }
/** * @param Message $message * @return bool */ public function canHandleMessage(Message $message) { $this->lastValidationError = null; if (!$this->canHandleMessageType($message->messageType())) { $this->lastValidationError = sprintf("Message type %s is not supported.", $message->messageType()); return false; } if ($message->processingMetadata()->shouldCollectionBeSplitIntoChunks()) { if (!$this->processingMetadata->canHandleChunks()) { $this->lastValidationError = "Unable to handle chunks."; return false; } } if (!$this->supportedProcessingTypes->isSupported($message->processingType())) { $this->lastValidationError = sprintf("Processing type %s is not supported. Supported types are: %s", $message->processingType()->of(), implode(", ", $this->supportedProcessingTypes->toArray()['processing_types'])); return false; } return true; }