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; } }