code: public static Geometry rotate(Geometry geom, double theta, double x0, double y0) {
          if (geom != null) {
              return AffineTransformation.rotationInstance(theta, x0, y0).transform(geom);
          } else {
              return null;
          }
      }
docs: Rotates a geometry by a given angle (in radians) about the specified
  point at (x0, y0).
  
  @param geom  Geometry
  @param theta Angle
  @param x0    x-coordinate of point about which to rotate
  @param y0    y-coordinate of point about which to rotate
  @return The geometry rotated by theta about (x0, y0)