code: public static <T> Optional<T> get(final Map map, final Class<T> clazz, final Object... path) {
          if (path == null || path.length == 0) {
              throw new IllegalArgumentException(PATH_MUST_BE_SPECIFIED);
          }
          if (path.length == 1) {
              return Optional.ofNullable((T) map.get(path[0]));
          }
          final Object[] pathToLastNode = Arrays.copyOfRange(path, 0, path.length - 1);
          final Object lastKey = path[path.length - 1];
          Map<Object, Object> intermediateMap = map;
          for (Object key : pathToLastNode) {
              final Object node = intermediateMap.get(key);
              if (node != null) {
                  final Optional<Map> nodeMapOption = ClassApi.cast(node, Map.class);
                  if (nodeMapOption.isPresent()) {
                      intermediateMap = nodeMapOption.get();
                  } else {
                      throw new IllegalAccessError("Node with key '" + key + "' is not a map!");
                  }
              } else {
                  return Optional.empty();
              }
          }
          return Optional.ofNullable((T) intermediateMap.get(lastKey));
      }
docs: Walks by map's nodes and extracts optional value of type T.
  @param <T> value type
  @param clazz type of value
  @param map subject
  @param path nodes to walk in map
  @return optional value of type T