AbstractCommonShapeFileReader implements Iterable<E>, AutoCloseable { public ESRIBounds getBoundsFromHeader() { try { readHeader(); } catch (IOException exception) { return null; } return new ESRIBounds( this.minx, this.maxx, this.miny, this.maxy, this.minz, this.maxz, this.minm, this.maxm); } AbstractCommonShapeFileReader(ReadableByteChannel inputStream);  AbstractCommonShapeFileReader(InputStream inputStream); @SuppressWarnings("resource")  AbstractCommonShapeFileReader(File file);  AbstractCommonShapeFileReader(URL file); @Pure Progression getTaskProgression(); void setTaskProgression(Progression progressBar); int getFileSize(); ShapeElementType getShapeElementType(); int getFileReadingPosition(); ESRIBounds getBoundsFromHeader(); @SuppressWarnings({"checkstyle:cyclomaticcomplexity", "checkstyle:npathcomplexity"}) final void readHeader(); void disableSeek(); @Pure boolean isSeekEnabled(); abstract void seek(int recordIndex); E read(); @Override void close(); @Override Iterator<E> iterator(); Iterator<E> iterator(boolean disableSeek); Iterator<EE> iterator(Class<EE> type); Iterator<EE> iterator(Class<EE> type, boolean disableSeek);  }
@Test public void testGetBoundsFromHeader() throws Exception { ESRIBounds bounds = this.reader.getBoundsFromHeader(); assertNotNull(bounds); assertEpsilonEquals(936456.700, bounds.getMinX()); assertEpsilonEquals(2300653.700, bounds.getMinY()); assertEpsilonEquals(0., bounds.getMinZ()); assertEpsilonEquals(0., bounds.getMinM()); assertEpsilonEquals(941093.900, bounds.getMaxX()); assertEpsilonEquals(2308847.400, bounds.getMaxY()); assertEpsilonEquals(0., bounds.getMaxZ()); assertEpsilonEquals(0., bounds.getMaxM()); }