1 /*
2 * Copyright (C) 2010, Google Inc. and others
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Distribution License v. 1.0 which is available at
6 * https://www.eclipse.org/org/documents/edl-v10.php.
7 *
8 * SPDX-License-Identifier: BSD-3-Clause
9 */
10
11 package org.eclipse.jgit.diff;
12
13 /**
14 * Wraps a {@link org.eclipse.jgit.diff.Sequence} to assign hash codes to
15 * elements.
16 * <p>
17 * This sequence acts as a proxy for the real sequence, caching element hash
18 * codes so they don't need to be recomputed each time. Sequences of this type
19 * must be used with a {@link org.eclipse.jgit.diff.HashedSequenceComparator}.
20 * <p>
21 * To construct an instance of this type use
22 * {@link org.eclipse.jgit.diff.HashedSequencePair}.
23 *
24 * @param <S>
25 * the base sequence type.
26 */
27 public final class HashedSequence<S extends Sequence> extends Sequence {
28 final S base;
29
30 final int[] hashes;
31
32 HashedSequence(S base, int[] hashes) {
33 this.base = base;
34 this.hashes = hashes;
35 }
36
37 /** {@inheritDoc} */
38 @Override
39 public int size() {
40 return base.size();
41 }
42 }