comparison src/org/tmatesoft/hg/internal/FilterDataAccess.java @ 158:b413b16d10a5

Integer offsets and file length explictly, rather than casts throughout code. Inflater may benefit from total length hint, but shall calculate it by its own if needed
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 09 Mar 2011 13:16:37 +0100
parents d5268ca7715b
children facfd8518367
comparison
equal deleted inserted replaced
157:d5268ca7715b 158:b413b16d10a5
26 * @author Artem Tikhomirov 26 * @author Artem Tikhomirov
27 * @author TMate Software Ltd. 27 * @author TMate Software Ltd.
28 */ 28 */
29 public class FilterDataAccess extends DataAccess { 29 public class FilterDataAccess extends DataAccess {
30 private final DataAccess dataAccess; 30 private final DataAccess dataAccess;
31 private final long offset; 31 private final int offset;
32 private final int length; 32 private final int length;
33 private int count; 33 private int count;
34 34
35 public FilterDataAccess(DataAccess dataAccess, long offset, int length) { 35 public FilterDataAccess(DataAccess dataAccess, int offset, int length) {
36 this.dataAccess = dataAccess; 36 this.dataAccess = dataAccess;
37 this.offset = offset; 37 this.offset = offset;
38 this.length = length; 38 this.length = length;
39 count = length; 39 count = length;
40 } 40 }
53 public boolean isEmpty() { 53 public boolean isEmpty() {
54 return count <= 0; 54 return count <= 0;
55 } 55 }
56 56
57 @Override 57 @Override
58 public long length() { 58 public int length() {
59 return length; 59 return length;
60 } 60 }
61 61
62 @Override 62 @Override
63 public void seek(long localOffset) throws IOException { 63 public void seek(int localOffset) throws IOException {
64 if (localOffset < 0 || localOffset > length) { 64 if (localOffset < 0 || localOffset > length) {
65 throw new IllegalArgumentException(); 65 throw new IllegalArgumentException();
66 } 66 }
67 dataAccess.seek(offset + localOffset); 67 dataAccess.seek(offset + localOffset);
68 count = (int) (length - localOffset); 68 count = (int) (length - localOffset);