code: public static <P extends Enum<P>> PointF optPointF(final JSONObject json, P e, boolean emptyForNull) {
          PointF p = optPointF(json, e);
          if (p == null && emptyForNull) {
              p = new PointF();
          }
          return p;
      }
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}. If the value does not exist by that enum, and
  {@code emptyForNull} is {@code true}, returns a default constructed {@code Point}. Otherwise,
  returns {@code null}.
  
  @param json         {@code JSONObject} to get data from
  @param e            {@link Enum} labeling the data to get
  @param emptyForNull {@code True} to return a default constructed {@code Point} if there is no
  mapped data, {@code false} to return {@code null} in that case
  @return A {@code Point} if the mapping exists or {@code emptyForNull} is {@code true};
  {@code null} otherwise