package com.pinapelz.query;
import com.pinapelz.vtuber.ExtraData;
import com.pinapelz.vtuber.Language;
import java.util.List;
/**
* Query builder for getting videos by a given channel id
*
* @author pinapelz
* @version $Id: $Id
*/
public class VideosByChannelIDQueryBuilder {
private String channelId;
private String type;
private String include;
private String lang;
private Integer limit;
private Integer offset;
private String paginated;
/**
*
Setter for the field channelId.
*
* @param channelId a {@link java.lang.String} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setChannelId(String channelId) {
this.channelId = channelId;
return this;
}
/**
* Setter for the field type.
*
* @param type a {@link java.lang.String} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setType(String type) {
this.type = type;
return this;
}
/**
* Setter for the field include.
*
* @param include a {@link java.lang.String} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setInclude(String include) {
this.include = include;
return this;
}
/**
* Setter for the field include.
*
* @param include an array of {@link java.lang.String} objects.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setInclude(String[] include) {
this.include = String.join(",", include);
return this;
}
/**
* Setter for the field include.
*
* @param include an array of {@link com.pinapelz.vtuber.ExtraData} objects.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setInclude(ExtraData[] include) {
String[] includeStrings = new String[include.length];
for (int i = 0; i < include.length; i++) {
includeStrings[i] = include[i].toString();
}
this.include = String.join(",", includeStrings);
return this;
}
/**
* Setter for the field include.
*
* @param include a {@link com.pinapelz.vtuber.ExtraData} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setInclude(ExtraData include) {
this.include = include.toString();
return this;
}
/**
* Setter for the field lang.
*
* @param lang a {@link java.lang.String} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setLang(String lang) {
this.lang = lang;
return this;
}
/**
* Setter for the field lang.
*
* @param lang a {@link com.pinapelz.vtuber.Language} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setLang(Language lang) {
this.lang = lang.toString();
return this;
}
/**
* Setter for the field lang.
*
* @param lang a {@link java.util.List} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setLang(List lang){
String[] langStrings = new String[lang.size()];
for (int i = 0; i < lang.size(); i++) {
langStrings[i] = lang.get(i).toString();
}
this.lang = String.join(",", langStrings);
return this;
}
/**
* Setter for the field limit.
*
* @param limit a {@link java.lang.Integer} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setLimit(Integer limit) {
this.limit = limit;
return this;
}
/**
* Setter for the field offset.
*
* @param offset a {@link java.lang.Integer} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setOffset(Integer offset) {
this.offset = offset;
return this;
}
/**
* Setter for the field paginated.
*
* @param paginated a {@link java.lang.String} object.
* @return a {@link com.pinapelz.query.VideosByChannelIDQueryBuilder} object.
*/
public VideosByChannelIDQueryBuilder setPaginated(String paginated) {
this.paginated = paginated;
return this;
}
/**
* Getter for the field channelId.
*
* @return a {@link java.lang.String} object.
*/
public String getChannelId() {
return channelId;
}
/**
* Getter for the field type.
*
* @return a {@link java.lang.String} object.
*/
public String getType() {
return type;
}
/**
* Getter for the field include.
*
* @return a {@link java.lang.String} object.
*/
public String getInclude() {
return include;
}
/**
* Getter for the field lang.
*
* @return a {@link java.lang.String} object.
*/
public String getLang() {
return lang;
}
/**
* Getter for the field limit.
*
* @return a {@link java.lang.Integer} object.
*/
public Integer getLimit() {
return limit;
}
/**
* Getter for the field offset.
*
* @return a {@link java.lang.Integer} object.
*/
public Integer getOffset() {
return offset;
}
/**
* Getter for the field paginated.
*
* @return a {@link java.lang.String} object.
*/
public String getPaginated() {
return paginated;
}
}