Package org.eclipse.egit.ui.internal.provisional.wizards

Source Code of org.eclipse.egit.ui.internal.provisional.wizards.GitRepositoryInfo$PushInfo

/*******************************************************************************
* Copyright (c) 2012 SAP AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Stefan Lay (SAP AG) - initial implementation
*******************************************************************************/
package org.eclipse.egit.ui.internal.provisional.wizards;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.egit.core.securestorage.UserPasswordCredentials;

/**
* <p>
* <strong>EXPERIMENTAL</strong>. This class or interface has been added as part
* of a work in progress. There is no guarantee that this API will work or that
* it will remain the same. Please do not use this API without consulting with
* the egit team.
* </p>
*
* Encapsulates info of a git repository
*/
public class GitRepositoryInfo {

  private final String cloneUri;
  private UserPasswordCredentials credentials;
  private boolean shouldSaveCredentialsInSecureStore;
  private String repositoryName;
  private final List<String> fetchRefSpecs = new ArrayList<String>();

  /**
   * Describes settings for git push
   */
  public static class PushInfo {

    private String pushRefSpec;
    private String pushUri;

    /**
     * @param pushRefSpec
     * @param pushUri
     */
    public PushInfo(String pushRefSpec, String pushUri) {
      this.pushRefSpec = pushRefSpec;
      this.pushUri = pushUri;
    }

    /**
     * @return the push ref spec
     */
    public String getPushRefSpec() {
      return pushRefSpec;
    }

    /**
     * @return the push URI
     */
    public String getPushUri() {
      return pushUri;
    }
  }

  private List<PushInfo> pushInfos = new ArrayList<PushInfo>();

  /** */
  public static class RepositoryConfigProperty {

    private String section;
    private String subsection;
    private String name;
    private String value;

    /**
     * @param section the config section
     * @param subsection the config sub section
     * @param name the name of the config parameter
     * @param value the value of the config parameter
     */
    public RepositoryConfigProperty(String section, String subsection, String name, String value) {
      this.section = section;
      this.subsection = subsection;
      this.name = name;
      this.value = value;
    }

    /**
     * @return the config section
     */
    public String getSection() {
      return section;
    }

    /**
     * @return the config sub section
     */
    public String getSubsection() {
      return subsection;
    }

    /**
     * @return the name of the config parameter
     */
    public String getName() {
      return name;
    }

    /**
     * @return the value of the config parameter
     */
    public String getValue() {
      return value;
    }
  }

  private final List<RepositoryConfigProperty> repositoryConfigProperties = new ArrayList<RepositoryConfigProperty>();


  /**
   * @param cloneUri
   *            the URI where the repository can be cloned from
   */
  public GitRepositoryInfo(String cloneUri) {
    this.cloneUri = cloneUri;
  }

  /**
   * @return the URI where the repository can be cloned from
   */
  public String getCloneUri() {
    return cloneUri;
  }

  /**
   * @param user
   * @param password
   */
  public void setCredentials(String user, String password) {
    credentials = new UserPasswordCredentials(user, password);
  }

  /**
   * @return the credentials needed to log in
   */
  public UserPasswordCredentials getCredentials() {
    return credentials;
  }

  /**
   * @param shouldSaveCredentialsInSecureStore
   *            whether the credentials should be saved after successful clone
   */
  public void setShouldSaveCredentialsInSecureStore(
      boolean shouldSaveCredentialsInSecureStore) {
    this.shouldSaveCredentialsInSecureStore = shouldSaveCredentialsInSecureStore;
  }

  /**
   * @return whether the credentials should be saved after successful clone
   */
  public boolean shouldSaveCredentialsInSecureStore() {
    return shouldSaveCredentialsInSecureStore;
  }

  /**
   * @param repositoryName
   *            the name of the git repository
   */
  public void setRepositoryName(String repositoryName) {
    this.repositoryName = repositoryName;
  }

  /**
   * @return the name of the git repository
   */
  public String getRepositoryName() {
    return repositoryName;
  }

  /**
   * Adds a fetch specification to the cloned repository
   * @param fetchRefSpec the fetch ref spec which will be added
   */
  public void addFetchRefSpec(String fetchRefSpec) {
    this.fetchRefSpecs.add(fetchRefSpec);
  }

  /**
   * @return the fetch ref specs
   */
  public List<String> getFetchRefSpecs() {
    return fetchRefSpecs;
  }

  /**
   * Adds a push information to the cloned repository
   * @param pushRefSpec the push ref spec which will be added
   * @param pushUri the push uri which will be added
   */
  public void addPushInfo(String pushRefSpec, String pushUri) {
    this.pushInfos.add(new PushInfo(pushRefSpec, pushUri));
  }

  /**
   * @return the push information
   */
  public List<PushInfo> getPushInfos() {
    return pushInfos;
  }

  /**
   * Add an entry in the configuration of the cloned repository
   *
   * @param section
   * @param subsection
   * @param name
   * @param value
   */
  public void addRepositoryConfigProperty(String section, String subsection, String name, String value) {
    repositoryConfigProperties.add(new RepositoryConfigProperty(section, subsection, name, value));
  }

  /**
   * @return the repository config property entries
   */
  public List<RepositoryConfigProperty> getRepositoryConfigProperties() {
    return repositoryConfigProperties;
  }

}
TOP

Related Classes of org.eclipse.egit.ui.internal.provisional.wizards.GitRepositoryInfo$PushInfo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.