View Javadoc
1   /*
2    * Copyright (C) 2009, Google Inc.
3    * Copyright (C) 2008, Marek Zawirski <marek.zawirski@gmail.com>
4    * Copyright (C) 2007, Robin Rosenberg <robin.rosenberg@dewire.com>
5    * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> and others
6    *
7    * This program and the accompanying materials are made available under the
8    * terms of the Eclipse Distribution License v. 1.0 which is available at
9    * https://www.eclipse.org/org/documents/edl-v10.php.
10   *
11   * SPDX-License-Identifier: BSD-3-Clause
12   */
13  
14  package org.eclipse.jgit.transport;
15  
16  import java.util.ArrayList;
17  import java.util.Collection;
18  import java.util.Collections;
19  import java.util.HashMap;
20  import java.util.List;
21  import java.util.Map;
22  
23  /**
24   * Final status after a successful fetch from a remote repository.
25   *
26   * @see Transport#fetch(org.eclipse.jgit.lib.ProgressMonitor, Collection)
27   */
28  public class FetchResult extends OperationResult {
29  	private final List<FetchHeadRecord> forMerge;
30  
31  	private final Map<String, FetchResult> submodules;
32  
33  	FetchResult() {
34  		forMerge = new ArrayList<>();
35  		submodules = new HashMap<>();
36  	}
37  
38  	void add(FetchHeadRecord r) {
39  		if (!r.notForMerge)
40  			forMerge.add(r);
41  	}
42  
43  	/**
44  	 * Add fetch results for a submodule.
45  	 *
46  	 * @param path
47  	 *            the submodule path
48  	 * @param result
49  	 *            the fetch result
50  	 * @since 4.7
51  	 */
52  	public void addSubmodule(String path, FetchResult result) {
53  		submodules.put(path, result);
54  	}
55  
56  	/**
57  	 * Get fetch results for submodules.
58  	 *
59  	 * @return Fetch results for submodules as a map of submodule paths to fetch
60  	 *         results.
61  	 * @since 4.7
62  	 */
63  	public Map<String, FetchResult> submoduleResults() {
64  		return Collections.unmodifiableMap(submodules);
65  	}
66  }