
org.sourcelab.github.client.request.UserReposOptionsBuilder Maven / Gradle / Ivy
The newest version!
package org.sourcelab.github.client.request;
import org.sourcelab.github.client.objects.Affiliations;
import org.sourcelab.github.client.objects.RepositoryType;
import java.time.ZonedDateTime;
import java.util.HashSet;
import java.util.Set;
public final class UserReposOptionsBuilder {
private Set affiliation = new HashSet<>();
private Set type = new HashSet<>();
private UserReposFilterCriteria.Sort sort = null;
private SortDirection direction = null;
private PageOptions pageOptions = new PageOptions();
private ZonedDateTime since = null;
private ZonedDateTime before = null;
public UserReposOptionsBuilder() {
}
public UserReposOptionsBuilder withAffiliations(final Set affiliations) {
this.affiliation.addAll(affiliations);
return this;
}
public UserReposOptionsBuilder withAffiliation(final Affiliations affiliation) {
this.affiliation.add(affiliation);
return this;
}
public UserReposOptionsBuilder withTypes(final Set type) {
this.type.addAll(type);
return this;
}
public UserReposOptionsBuilder withType(final RepositoryType type) {
this.type.add(type);
return this;
}
public UserReposOptionsBuilder withSort(final UserReposFilterCriteria.Sort sort) {
this.sort = sort;
return this;
}
public UserReposOptionsBuilder withDirection(final SortDirection direction) {
this.direction = direction;
return this;
}
public UserReposOptionsBuilder withPageOptions(final PageOptions pageOptions) {
this.pageOptions = pageOptions;
return this;
}
public UserReposOptionsBuilder withSince(final ZonedDateTime since) {
this.since = since;
return this;
}
public UserReposOptionsBuilder withBefore(final ZonedDateTime before) {
this.before = before;
return this;
}
public UserReposFilterCriteria build() {
return new UserReposFilterCriteria(affiliation, type, sort, direction, pageOptions, since, before);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy