Mercurial > hg4j
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); |