public TDFTile readTile(TDFDataset ds, int tileNumber) { try { if (tileNumber >= ds.tilePositions.length) { // TODO - return empty tile return null; } long position = ds.tilePositions[tileNumber]; if (position < 0) { // Indicates empty tile // TODO -- return an empty tile? return null; } int nBytes = ds.tileSizes[tileNumber]; byte[] buffer = readBytes(position, nBytes); if (compressed) { buffer = CompressionUtils.decompress(buffer); } return TileFactory.createTile(buffer, trackNames.length); } catch (IOException ex) { String tileName = ds.getName() + "[" + tileNumber + "]"; log.error("Error reading data tile: " + tileName, ex); throw new RuntimeException("System error occured while reading tile: " + tileName); } }
public TDFTile readTile(TDFDataset ds, int tileNumber) { try { if (tileNumber >= ds.tilePositions.length) { // TODO - return empty tile return null; } long position = ds.tilePositions[tileNumber]; if (position < 0) { // Indicates empty tile // TODO -- return an empty tile? return null; } int nBytes = ds.tileSizes[tileNumber]; //fis.seek(position); //byte[] buffer = new byte[nBytes]; //readFully(buffer); byte[] buffer = readBytes(position, nBytes); if (compressed) { buffer = compressionUtils.decompress(buffer); } return TileFactory.createTile(buffer, trackNames.length); } catch (IOException ex) { String tileName = ds.getName() + "[" + tileNumber + "]"; log.error("Error reading data tile: " + tileName, ex); throw new RuntimeException("System error occured while reading tile: " + tileName); } }