1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.client.armeria;
17
18 import static com.linecorp.centraldogma.client.armeria.EndpointListCodecUtils.convertToEndpointList;
19 import static com.linecorp.centraldogma.client.armeria.EndpointListCodecUtils.objectMapper;
20
21 import java.io.IOException;
22 import java.util.List;
23
24 import com.fasterxml.jackson.core.type.TypeReference;
25 import com.fasterxml.jackson.databind.JsonNode;
26
27 import com.linecorp.armeria.client.Endpoint;
28
29 final class JsonEndpointListDecoder implements EndpointListDecoder<JsonNode> {
30 @Override
31 public List<Endpoint> decode(JsonNode node) {
32 final List<String> endpoints;
33 try {
34 endpoints = objectMapper.readValue(node.traverse(),
35 new TypeReference<List<String>>() {});
36 } catch (IOException e) {
37 throw new IllegalArgumentException("invalid format: " + node);
38 }
39 return convertToEndpointList(endpoints);
40 }
41 }