code: public static <P extends Enum<P>> Point optPoint(final JSONObject json, P e) {
          return optPoint(json, e, null);
      }
docs: Return the value mapped by enum if it exists and is a {@link JSONObject} by mapping "x" and
  "y" members into a {@link Point}.
  
  @param json {@code JSONObject} to get data from
  @param e    {@link Enum} labeling the data to get
  @return An instance of {@code Point} or {@null} if there is no object mapping for {@code e}.