/*******************************************************************************
* 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 java.util.ArrayList;
import java.util.List;
/**
* Arguments holder for {@link org.eclipse.che.api.git.GitConnection#log(LogParams)}.
*
* @author Igor Vinokur
*/
public class LogParams {
private List<String> fileFilter;
private String revisionRangeSince;
private String revisionRangeUntil;
private String filePath;
private int skip;
private int maxCount;
private LogParams() {
skip = -1;
maxCount = -1;
}
/**
* Create new {@link LogParams} instance with default parameters.
*/
public static LogParams create() {
return new LogParams();
}
/** Returns the revision range since. */
public String getRevisionRangeSince() {
return revisionRangeSince;
}
/** Set revision range since. */
public void setRevisionRangeSince(String revisionRangeSince) {
this.revisionRangeSince = revisionRangeSince;
}
/**
* Create a {@link LogParams} object based on a given revision range since.
*
* @param revisionRangeSince
* revision range since
*/
public LogParams withRevisionRangeSince(String revisionRangeSince) {
this.revisionRangeSince = revisionRangeSince;
return this;
}
/** Returns the revision range until. */
public String getRevisionRangeUntil() {
return revisionRangeUntil;
}
/** Set revision range until. */
public void setRevisionRangeUntil(String revisionRangeUntil) {
this.revisionRangeUntil = revisionRangeUntil;
}
/**
* Create a {@link LogParams} object based on a given revision range until.
*
* @param revisionRangeUntil
* revision range until
*/
public LogParams withRevisionRangeUntil(String revisionRangeUntil) {
this.revisionRangeUntil = revisionRangeUntil;
return this;
}
/** Returns the integer value of the number of commits that will be skipped when calling log command. */
public int getSkip() {
return skip;
}
/** Set the integer value of the number of commits that will be skipped when calling log command. */
public void setSkip(int skip) {
this.skip = skip;
}
/**
* Create a {@link LogParams} object based on a given integer value of the number of commits that
* will be skipped when calling log command
*
* @param skip
* integer value of the number of commits that will be skipped when calling log command
*/
public LogParams withSkip(int skip) {
this.skip = skip;
return this;
}
/** Returns the integer value of the number of commits that will be returned when calling log command. */
public int getMaxCount() {
return maxCount;
}
/** Set the integer value of the number of commits that will be returned when calling log command. */
public void setMaxCount(int maxCount) {
this.maxCount = maxCount;
}
/**
* Create a {@link LogParams} object based on a given integer value of the number of commits that
* will be returned when calling log command
*
* @param maxCount
* integer value of the number of commits that will be returned when calling log command
*/
public LogParams withMaxCount(int maxCount) {
this.maxCount = maxCount;
return this;
}
/** Returns the file/folder path used when calling the log command. */
public String getFilePath() {
return filePath;
}
/** Set the file/folder path used when calling the log command. */
public void setFilePath(String filePath) {
this.filePath = filePath;
}
/**
* Create a {@link LogParams} object based on a given file/folder path used when calling the log command
*
* @param filePath
* file/folder path used when calling the log command
*/
public LogParams withFilePath(String filePath) {
this.filePath = filePath;
return this;
}
/** Returns the Filter revisions list by range of files. */
public List<String> getFileFilter() {
return fileFilter == null ? new ArrayList<>() : fileFilter;
}
/** Set range of files. */
public void setFileFilter(List<String> fileFilter) {
this.fileFilter = fileFilter;
}
/**
* Create a {@link LogParams} object based on a given range of files
*
* @param fileFilter
* range of files
*/
public LogParams withFileFilter(List<String> fileFilter) {
this.fileFilter = fileFilter;
return this;
}
}