Class ResolvedTopicIndex

  • All Implemented Interfaces:
    KnowledgeIndex

    public final class ResolvedTopicIndex
    extends java.lang.Object
    implements KnowledgeIndex
    Computes all of the MQTT TopicBindings in a model.

    This index is useful for things like finding the payload of an MQTT topic on an operation and grabbing the event stream information of a subscribe operation.

     
     ResolvedTopicIndex resolvedIndex = ResolvedTopicIndex.of(model);
     TopicBinding<PublishTrait> binding = resolvedIndex.getPublishBinding(myOperation).get();
    
     assert(binding.getTopic() instanceOf Topic);
     assert(binding.getMqttTrait() instanceOf PublishTrait);
     System.out.println(binding.getPayloadShape());
     
     
    See Also:
    TopicBinding
    • Constructor Detail

      • ResolvedTopicIndex

        public ResolvedTopicIndex​(Model model)
    • Method Detail

      • getOperationBindings

        public java.util.List<TopicBinding<? extends Trait>> getOperationBindings​(ToShapeId operation)
        Get all of the MQTT topic bindings of a specific operation.
        Parameters:
        operation - Operation that has MQTT bindings.
        Returns:
        Returns the found MQTT bindings.
      • topicBindings

        public java.util.stream.Stream<TopicBinding<? extends Trait>> topicBindings()
        Gets all resolved MQTT topic bindings in the model.
        Returns:
        Returns the stream of MQTT topic bindings in the model.
      • getPublishBinding

        public java.util.Optional<TopicBinding<PublishTrait>> getPublishBinding​(ToShapeId operation)
        Gets the MQTT publish binding of an operation.
        Parameters:
        operation - Operation that has MQTT bindings.
        Returns:
        Returns the optionally found MQTT publish bindings.
      • getSubscribeBinding

        public java.util.Optional<TopicBinding<SubscribeTrait>> getSubscribeBinding​(ToShapeId operation)
        Gets the MQTT subscribe binding of an operation.
        Parameters:
        operation - Operation that has MQTT bindings.
        Returns:
        Returns the optionally found MQTT subscribe bindings.
      • getSubcribeEventStreamInfo

        public java.util.Optional<EventStreamInfo> getSubcribeEventStreamInfo​(ToShapeId operation)
        Get subscribe event stream info.

        This information describes if the event stream contains a single event, multiple events, and if there are any initial-request or response members.

        Parameters:
        operation - Operation to get the event stream info o.
        Returns:
        Returns the optionally found event stream info.