Class ResolvedTopicIndex
- java.lang.Object
-
- software.amazon.smithy.mqtt.traits.ResolvedTopicIndex
-
- All Implemented Interfaces:
KnowledgeIndex
public final class ResolvedTopicIndex extends java.lang.Object implements KnowledgeIndex
Computes all of the MQTTTopicBinding
s 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 Summary
Constructors Constructor Description ResolvedTopicIndex(Model model)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<TopicBinding<? extends Trait>>
getOperationBindings(ToShapeId operation)
Get all of the MQTT topic bindings of a specific operation.java.util.Optional<TopicBinding<PublishTrait>>
getPublishBinding(ToShapeId operation)
Gets the MQTT publish binding of an operation.java.util.Optional<EventStreamInfo>
getSubcribeEventStreamInfo(ToShapeId operation)
Get subscribe event stream info.java.util.Optional<TopicBinding<SubscribeTrait>>
getSubscribeBinding(ToShapeId operation)
Gets the MQTT subscribe binding of an operation.static ResolvedTopicIndex
of(Model model)
java.util.stream.Stream<TopicBinding<? extends Trait>>
topicBindings()
Gets all resolved MQTT topic bindings in the model.
-
-
-
Constructor Detail
-
ResolvedTopicIndex
public ResolvedTopicIndex(Model model)
-
-
Method Detail
-
of
public static ResolvedTopicIndex of(Model model)
-
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.
-
-