code: public boolean isValid() {
  		if (isEmpty()) {
  			return true;
  		}
  		if (!exteriorRing.isValid()) {
  			return false;
  		}
  		if (interiorRings != null) {
  			LinearRing ring1;
  			LinearRing ring2;
  			for (int i = 0; i <= interiorRings.length; i++) {
  				if (i == interiorRings.length) {
  					ring1 = exteriorRing;
  				} else {
  					ring1 = interiorRings[i];
  					if (!ring1.isValid()) {
  						return false;
  					}
  				}
  				for (int j = 0; j <= interiorRings.length; j++) {
  					if (i == j) {
  						continue;
  					}
  					if (j == interiorRings.length) {
  						ring2 = exteriorRing;
  					} else {
  						ring2 = interiorRings[j];
  					}
  					if (ring1.intersects(ring2)) {
  						return false;
  					}
  				}
  			}
  		}
  
  		return true;
  	}
docs: Check the exterior ring and all interior rings for validity. Also checks to see if there are no intersections
  between any of the rings (both exterior and interior).