/* * ProActive Parallel Suite(TM): * The Open Source library for parallel and distributed * Workflows & Scheduling, Orchestration, Cloud Automation * and Big Data Analysis on Enterprise Grids & Clouds. * * Copyright (c) 2007 - 2017 ActiveEon * Contact: contact@activeeon.com * * This library is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation: version 3 of * the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * If needed, contact us to obtain a release under GPL Version 2 or 3 * or a different license than the AGPL. */ package org.ow2.proactive.scheduler.core.db; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.ow2.proactive.db.SortParameter; import org.ow2.proactive.scheduler.common.JobSortParameter; import org.ow2.proactive.scheduler.common.job.JobStatus; /** * Utility container to pass multiple parameters for jobs requests. * */ public class DBJobDataParameters { private final int offset; private final int limit; private final String user; private final boolean pending; private final boolean running; private final boolean finished; private final List<SortParameter<JobSortParameter>> sortParameters; private final Set<JobStatus> status; DBJobDataParameters(int offset, int limit, String user, boolean pending, boolean running, boolean finished, List<SortParameter<JobSortParameter>> sortParameters) { this.offset = offset; this.limit = limit; this.user = user; this.pending = pending; this.running = running; this.finished = finished; this.sortParameters = sortParameters; Set<JobStatus> newStatus = new HashSet<JobStatus>(); if (pending) { newStatus.addAll(SchedulerDBManager.PENDING_JOB_STATUSES); } if (running) { newStatus.addAll(SchedulerDBManager.RUNNING_JOB_STATUSES); } if (finished) { newStatus.addAll(SchedulerDBManager.FINISHED_JOB_STATUSES); } this.status = Collections.unmodifiableSet(newStatus); } public int getOffset() { return offset; } public int getLimit() { return limit; } public String getUser() { return user; } public List<SortParameter<JobSortParameter>> getSortParameters() { return sortParameters; } public Set<JobStatus> getStatuses() { return status; } }