/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* 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:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.api.git.params;
import org.eclipse.che.api.git.shared.CheckoutRequest;
import java.util.ArrayList;
import java.util.List;
/**
* Arguments holder for {@link org.eclipse.che.api.git.GitConnection#checkout(CheckoutParams)}.
*
* @author Igor Vinokur
*/
public class CheckoutParams {
private List<String> filesToCheckout;
private String name;
private String startPoint;
private String trackBranch;
private boolean isCreateNew;
private boolean noTrack;
private CheckoutParams() {
}
/**
* Create new {@link CheckoutParams} instance.
*
* @param name
* name of the branch to checkout
*/
public static CheckoutParams create(String name) {
return new CheckoutParams().withName(name);
}
/** @see CheckoutRequest#getName() */
public String getName() {
return name;
}
/** @see CheckoutRequest#withName(String) */
public CheckoutParams withName(String name) {
this.name = name;
return this;
}
/** @see CheckoutRequest#getStartPoint() */
public String getStartPoint() {
return startPoint;
}
/** @see CheckoutRequest#withStartPoint(String) */
public CheckoutParams withStartPoint(String startPoint) {
this.startPoint = startPoint;
return this;
}
/** @see CheckoutRequest#isCreateNew() */
public boolean isCreateNew() {
return isCreateNew;
}
/** @see CheckoutRequest#withCreateNew(boolean) */
public CheckoutParams withCreateNew(boolean isCreateNew) {
this.isCreateNew = isCreateNew;
return this;
}
/** @see CheckoutRequest#getTrackBranch() */
public String getTrackBranch() {
return trackBranch;
}
/** @see CheckoutRequest#withTrackBranch(String) */
public CheckoutParams withTrackBranch(String trackBranch) {
this.trackBranch = trackBranch;
return this;
}
/** @see CheckoutRequest#getFiles() */
public List<String> getFiles() {
return filesToCheckout == null ? new ArrayList<>() : filesToCheckout;
}
/** @see CheckoutRequest#withFiles(List) */
public CheckoutParams withFiles(List<String> filesToCheckout) {
this.filesToCheckout = filesToCheckout;
return this;
}
/** @see CheckoutRequest#isNoTrack() */
public boolean isNoTrack() {
return noTrack;
}
/** @see CheckoutRequest#withNoTrack(boolean) */
public CheckoutParams withNoTrack(boolean noTrack) {
this.noTrack = noTrack;
return this;
}
}