package com.pinapelz.query; import com.pinapelz.vtuber.Language; import com.pinapelz.vtuber.Order; import com.pinapelz.vtuber.Organization; import com.pinapelz.vtuber.Sort; import java.util.List; /** * Query builder for getting a list of Channels matching the given parameters * * @author pinapelz * @version $Id: $Id */ public class ChannelQueryBuilder { private Integer limit; private Integer offset; private String type; private String lang; private String order; private String org; private String sort; /** *

Getter for the field limit.

* * @return a {@link java.lang.Integer} object. */ public Integer getLimit() { return limit; } /** *

Setter for the field limit.

* * @param limit a {@link java.lang.Integer} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setLimit(Integer limit) { this.limit = limit; return this; } /** *

Getter for the field offset.

* * @return a {@link java.lang.Integer} object. */ public Integer getOffset() { return offset; } /** *

Setter for the field offset.

* * @param offset a {@link java.lang.Integer} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setOffset(Integer offset) { this.offset = offset; return this; } /** *

Getter for the field type.

* * @return a {@link java.lang.String} object. */ public String getType() { return type; } /** *

Setter for the field type.

* * @param type a {@link java.lang.String} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setType(String type) { this.type = type; return this; } /** *

Getter for the field lang.

* * @return a {@link java.lang.String} object. */ public String getLang() { return lang; } /** *

Setter for the field lang.

* * @param lang a {@link java.lang.String} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder 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.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setLang(Language lang) { this.lang = lang.toString(); return this; } /** *

Setter for the field lang.

* * @param language a {@link java.util.List} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setLang(List language) { String[] languages = new String[language.size()]; for (int i = 0; i < language.size(); i++) { languages[i] = language.get(i).toString(); } this.lang = String.join(",", languages); return this; } /** *

Getter for the field order.

* * @return a {@link java.lang.String} object. */ public String getOrder() { return order; } /** *

Setter for the field order.

* * @param order a {@link java.lang.String} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setOrder(String order) { this.order = order; return this; } /** *

Setter for the field order.

* * @param order a {@link com.pinapelz.vtuber.Order} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setOrder(Order order){ this.order = order.toString(); return this; } /** *

Getter for the field org.

* * @return a {@link java.lang.String} object. */ public String getOrg() { return org; } /** *

Setter for the field org.

* * @param org a {@link java.lang.String} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setOrg(String org) { this.org = org; return this; } /** *

Setter for the field org.

* * @param org a {@link com.pinapelz.vtuber.Organization} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setOrg(Organization org) { this.org = org.toString(); return this; } /** *

Getter for the field sort.

* * @return a {@link java.lang.String} object. */ public String getSort() { return sort; } /** *

Setter for the field sort.

* * @param sort a {@link java.lang.String} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setSort(String sort) { this.sort = sort; return this; } /** *

Setter for the field sort.

* * @param sort a {@link com.pinapelz.vtuber.Sort} object. * @return a {@link com.pinapelz.query.ChannelQueryBuilder} object. */ public ChannelQueryBuilder setSort(Sort sort){ this.sort = sort.toString(); return this; } }