in src/main/java/com/awslabs/iot/helpers/implementations/BasicGreengrassV1Helper.java [677:701]
public <T extends GreengrassResponse> T getSingleGreengrassV1Result(String versionArn, String prefix, Class<? extends GreengrassRequest> greengrassRequest, Class<T> greengrassResponse) {
if (versionArn == null) {
// If no version ARN is available then we need to exit early
return null;
}
AwsRequest.Builder builder = reflectionHelper.getNewRequestBuilder(greengrassRequest);
builder = setDefinitionId(builder, prefix, greengrassV1IdExtractor.extractId(versionArn));
builder = setDefinitionVersionId(builder, prefix, greengrassV1IdExtractor.extractVersionId(versionArn));
AwsRequest request = builder.build();
Option<Method> clientMethodReturningResultOption = reflectionHelper.getMethodWithParameterAndReturnType(greengrassClient.getClass(), greengrassRequest, greengrassResponse);
if (clientMethodReturningResultOption.isEmpty()) {
throw new UnsupportedOperationException("Failed to find a method returning the expected response type, this should never happen.");
}
Method clientMethodReturningResult = clientMethodReturningResultOption.get();
// callMethod throws an exception if the definition does not exist
return (T) Try.of(() -> callMethod(greengrassClient, clientMethodReturningResult, request))
.getOrNull();
}