comparison src/org/tmatesoft/hg/repo/HgBundle.java @ 358:fc8bc2f1edbe v0.7.0

Clean internal classes from public API
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 06 Dec 2011 20:02:48 +0100
parents dfb8405d996f
children 994b5813a925
comparison
equal deleted inserted replaced
357:dfb8405d996f 358:fc8bc2f1edbe
27 import org.tmatesoft.hg.internal.ByteArrayChannel; 27 import org.tmatesoft.hg.internal.ByteArrayChannel;
28 import org.tmatesoft.hg.internal.ByteArrayDataAccess; 28 import org.tmatesoft.hg.internal.ByteArrayDataAccess;
29 import org.tmatesoft.hg.internal.DataAccess; 29 import org.tmatesoft.hg.internal.DataAccess;
30 import org.tmatesoft.hg.internal.DataAccessProvider; 30 import org.tmatesoft.hg.internal.DataAccessProvider;
31 import org.tmatesoft.hg.internal.DigestHelper; 31 import org.tmatesoft.hg.internal.DigestHelper;
32 import org.tmatesoft.hg.internal.Experimental;
32 import org.tmatesoft.hg.internal.InflaterDataAccess; 33 import org.tmatesoft.hg.internal.InflaterDataAccess;
33 import org.tmatesoft.hg.internal.Patch; 34 import org.tmatesoft.hg.internal.Patch;
34 import org.tmatesoft.hg.repo.HgChangelog.RawChangeset; 35 import org.tmatesoft.hg.repo.HgChangelog.RawChangeset;
35 import org.tmatesoft.hg.util.CancelledException; 36 import org.tmatesoft.hg.util.CancelledException;
36 37
356 da.skip(len - 4); // sizeof(int) 357 da.skip(len - 4); // sizeof(int)
357 len = da.isEmpty() ? 0 : da.readInt(); 358 len = da.isEmpty() ? 0 : da.readInt();
358 } 359 }
359 } 360 }
360 361
361 // FIXME GroupElement exposes some internal API!!! (DataAccess) 362 @Experimental(reason="Cumbersome API, rawData and apply with byte[] perhaps need replacement with ByteChannel/ByteBuffer, and better Exceptions. Perhaps, shall split into interface and impl")
362 public static class GroupElement { 363 public static class GroupElement {
363 private final byte[] header; // byte[80] takes 120 bytes, 4 Nodeids - 192 364 private final byte[] header; // byte[80] takes 120 bytes, 4 Nodeids - 192
364 private final DataAccess dataAccess; 365 private final DataAccess dataAccess;
365 private Patch patches; 366 private Patch patches;
366 367
368 assert fourNodeids != null && fourNodeids.length == 80; 369 assert fourNodeids != null && fourNodeids.length == 80;
369 header = fourNodeids; 370 header = fourNodeids;
370 dataAccess = rawDataAccess; 371 dataAccess = rawDataAccess;
371 } 372 }
372 373
373 // non-null 374 /**
375 * <b>node</b> field of the group element
376 * @return node revision, never <code>null</code>
377 */
374 public Nodeid node() { 378 public Nodeid node() {
375 return Nodeid.fromBinary(header, 0); 379 return Nodeid.fromBinary(header, 0);
376 } 380 }
377 381
378 // non-null 382 /**
383 * <b>p1</b> <i>(parent 1)</i> field of the group element
384 * @return revision of parent 1, never <code>null</code>
385 */
379 public Nodeid firstParent() { 386 public Nodeid firstParent() {
380 return Nodeid.fromBinary(header, 20); 387 return Nodeid.fromBinary(header, 20);
381 } 388 }
382 389
383 // non-null 390 /**
391 * <b>p2</b> <i>(parent 2)</i> field of the group element
392 * @return revision of parent 2, never <code>null</code>
393 */
384 public Nodeid secondParent() { 394 public Nodeid secondParent() {
385 return Nodeid.fromBinary(header, 40); 395 return Nodeid.fromBinary(header, 40);
386 } 396 }
387 397
388 // non-null 398 /**
389 public Nodeid cset() { // cs seems to be changeset 399 * <b>cs</b> <i>(changeset link)</i> field of the group element
400 * @return changeset revision, never <code>null</code>
401 */
402 public Nodeid cset() {
390 return Nodeid.fromBinary(header, 60); 403 return Nodeid.fromBinary(header, 60);
391 } 404 }
392 405
393 public DataAccess rawData() { 406 public byte[] rawDataByteArray() throws IOException { // XXX IOException or HgInvalidFileException?
407 return rawData().byteArray();
408 }
409
410 public byte[] apply(byte[] baseContent) throws IOException {
411 return apply(new ByteArrayDataAccess(baseContent));
412 }
413
414 /*package-local*/ DataAccess rawData() {
394 return dataAccess; 415 return dataAccess;
395 } 416 }
396 417
397 /*package-local*/ Patch patch() throws IOException { 418 /*package-local*/ Patch patch() throws IOException {
398 if (patches == null) { 419 if (patches == null) {
401 patches.read(dataAccess); 422 patches.read(dataAccess);
402 } 423 }
403 return patches; 424 return patches;
404 } 425 }
405 426
406 public byte[] apply(DataAccess baseContent) throws IOException { 427 /*package-local*/ byte[] apply(DataAccess baseContent) throws IOException {
407 return patch().apply(baseContent, -1); 428 return patch().apply(baseContent, -1);
408 } 429 }
409 430
410 public String toString() { 431 public String toString() {
411 int patchCount; 432 int patchCount;