public <T> Resources<Resource<T>> getResources(URI uri, Class<T> entityType) { ObjectNode node; try { node = restTemplate.getForObject(uri, ObjectNode.class); } catch (HttpClientErrorException exception) { if (exception.getStatusCode() == HttpStatus.NOT_FOUND) { return Resources.wrap(Collections.<T>emptyList()); } throw exception; } JavaType innerType = objectMapper.getTypeFactory().constructParametricType(Resource.class, entityType); JavaType targetType = objectMapper.getTypeFactory().constructParametricType(Resources.class, innerType); return objectMapper.convertValue(node, targetType); }
public <T> Resources<Resource<T>> getResources(URI uri, Class<T> entityType) { ObjectNode node; try { node = restTemplate.getForObject(uri, ObjectNode.class); } catch (HttpClientErrorException exception) { if (exception.getStatusCode() == HttpStatus.NOT_FOUND) { return Resources.wrap(Collections.<T>emptyList()); } throw exception; } JavaType innerType = objectMapper.getTypeFactory().constructParametricType(Resource.class, entityType); JavaType targetType = objectMapper.getTypeFactory().constructParametricType(Resources.class, innerType); return objectMapper.convertValue(node, targetType); }