All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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