@SuppressWarnings("unchecked")
 protected <T extends ESEntity> T buildEntityFromGetResponse(
     Class<T> entityClass, MultiGetItemResponse item) {
   GetResponse response = item.getResponse();
   if (!response.isExists())
     throw new DaoException(
         String.format(
             "Entity %s does not exist in %s/%s",
             response.getId(), response.getIndex(), response.getType()));
   if (entityClass == null) throw new IllegalArgumentException("Provided Entity class is null");
   else if (entityClass.equals(ESNode.class))
     return (T) ESNode.Builder.buildFromGetReponse(response);
   else if (entityClass.equals(ESWay.class))
     return (T) ESWay.Builder.buildFromGetReponse(response);
   else throw new IllegalArgumentException(entityClass.getSimpleName() + " is not a known Entity");
 }
 protected void saveAllNodes(List<Node> nodes) {
   BulkRequestBuilder bulkRequest = client.prepareBulk();
   for (Node node : nodes) {
     try {
       ESNode esNode = ESNode.Builder.buildFromEntity(node);
       bulkRequest.add(
           client
               .prepareIndex(
                   indexName, esNode.getEntityType().getIndiceName(), esNode.getIdString())
               .setSource(esNode.toJson()));
     } catch (Exception exception) {
       LOG.warning(
           String.format(
               "Unable to add Entity %s to bulk request, cause: %s",
               node.getId(), exception.getMessage()));
     }
   }
   executeBulkRequest(bulkRequest);
 }