/*
* This file is part of LibrePlan
*
* Copyright (C) 2013 St. Antoniusziekenhuis
*
* This program 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, either version 3 of the License, or
* (at your option) any later version.
*
* 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/>.
*/
package org.libreplan.business.common.daos;
import java.util.List;
import org.libreplan.business.common.entities.JobSchedulerConfiguration;
/**
* Contract for {@link JobSchedulerConfigurationDAO}
*
* @author Miciele Ghiorghis <m.ghiorghis@antoniusziekenhuis.nl>
*/
public interface IJobSchedulerConfigurationDAO extends IGenericDAO<JobSchedulerConfiguration, Long> {
/**
* Returns all {@link JobSchedulerConfiguration}
*/
List<JobSchedulerConfiguration> getAll();
/**
* Searches and returns {@link JobSchedulerConfiguration} for the given
* <code>connectorName</code>
*
* @param connectorName
* the name of the connector
*/
List<JobSchedulerConfiguration> findByConnectorName(String connectorName);
/**
* Searches and returns {@link JobSchedulerConfiguration} for the given
* <code>jobGroup</code> and <code>jobName</code>
*
* @param jobGroup
* @param jobName
*/
JobSchedulerConfiguration findByJobGroupAndJobName(String jobGroup, String jobName);
/**
* Returns true if there exists other @{link JobSchedulerConfiguration} with
* the same <code>{@link JobSchedulerConfiguration#getJobGroup()}</code> and
* <code>{@link JobSchedulerConfiguration#getJobName()</code>
*
* @param jobSchedulerConfiguration
* the <code>{@link JobSchedulerConfiguration}</code>
*/
boolean existsByJobGroupAndJobNameAnotherTransaction(JobSchedulerConfiguration jobSchedulerConfiguration);
/**
* Returns unique {@link JobSchedulerConfiguration} for the specified
* <code>JobGroup</code> and <code>JobName</code>
*
* @param jobGroup
* the jobGroup
* @param jobName
* the jobName
*/
JobSchedulerConfiguration findUniqueByJobGroupAndJobNameAnotherTransaction(String jobGroup, String jobName);
}