protected void validateHole(BaseLineStringBuilder shell,BaseLineStringBuilder hole){
  HashSet exterior=Sets.newHashSet(shell.points);
  HashSet interior=Sets.newHashSet(hole.points);
  exterior.retainAll(interior);
  if (exterior.size() >= 2) {
    throw new InvalidShapeException("Invalid polygon, interior cannot share more than one point with the exterior");
  }
}

protected void validateHole ( BaseLineStringBuilder shell , BaseLineStringBuilder hole ) { HashSet exterior = Sets . newHashSet ( shell . points ) ; HashSet interior = Sets . newHashSet ( hole . points ) ; exterior . retainAll ( interior ) ; if ( exterior . size ( ) >= 2 ) { throw new InvalidShapeException ( "Invalid polygon, interior cannot share more than one point with the exterior" ) ; } }
validates only 1 vertex is tangential ( shared ) between the interior and exterior of a polygon
