docs: @SuppressWarnings("unchecked")
      private <T> T extract(I input) {
          if (attributePath == null) {
              if (input instanceof Map.Entry) {
                  return (T) ((Map.Entry) input).getValue();
              }
          } else if (input instanceof Extractable) {
              return (T) ((Extractable) input).getAttributeValue(attributePath);
          }
          throw new IllegalArgumentException("Can't extract " + attributePath + " from the given input");
      }