View Javadoc
1   /*
2    * Copyright (C) 2015, Kaloyan Raev <kaloyan.r@zend.com> 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  package org.eclipse.jgit.api;
11  
12  import java.net.URISyntaxException;
13  import java.util.List;
14  
15  import org.eclipse.jgit.api.errors.GitAPIException;
16  import org.eclipse.jgit.api.errors.JGitInternalException;
17  import org.eclipse.jgit.lib.Repository;
18  import org.eclipse.jgit.transport.RemoteConfig;
19  
20  /**
21   * Used to obtain the list of remotes.
22   *
23   * This class has setters for all supported options and arguments of this
24   * command and a {@link #call()} method to finally execute the command.
25   *
26   * @see <a href=
27   *      "http://www.kernel.org/pub/software/scm/git/docs/git-remote.html" > Git
28   *      documentation about Remote</a>
29   * @since 4.2
30   */
31  public class RemoteListCommand extends GitCommand<List<RemoteConfig>> {
32  
33  	/**
34  	 * <p>
35  	 * Constructor for RemoteListCommand.
36  	 * </p>
37  	 *
38  	 * @param repo
39  	 *            the {@link org.eclipse.jgit.lib.Repository}
40  	 */
41  	protected RemoteListCommand(Repository repo) {
42  		super(repo);
43  	}
44  
45  	/**
46  	 * {@inheritDoc}
47  	 * <p>
48  	 * Executes the {@code remote} command with all the options and parameters
49  	 * collected by the setter methods of this class.
50  	 */
51  	@Override
52  	public List<RemoteConfig> call() throws GitAPIException {
53  		checkCallable();
54  
55  		try {
56  			return RemoteConfig.getAllRemoteConfigs(repo.getConfig());
57  		} catch (URISyntaxException e) {
58  			throw new JGitInternalException(e.getMessage(), e);
59  		}
60  	}
61  
62  }