/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: DatabaseScheduler.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.scheduler.schedulermanagers; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.database.DbQueryManager; import com.uwyn.rife.scheduler.Scheduler; import com.uwyn.rife.scheduler.SchedulerFactory; import com.uwyn.rife.scheduler.exceptions.SchedulerException; import com.uwyn.rife.scheduler.exceptions.SchedulerManagerException; import com.uwyn.rife.scheduler.schedulermanagers.exceptions.InstallSchedulerErrorException; import com.uwyn.rife.scheduler.schedulermanagers.exceptions.RemoveSchedulerErrorException; import com.uwyn.rife.scheduler.taskmanagers.DatabaseTasks; import com.uwyn.rife.scheduler.taskmanagers.DatabaseTasksFactory; import com.uwyn.rife.scheduler.taskoptionmanagers.DatabaseTaskoptions; import com.uwyn.rife.scheduler.taskoptionmanagers.DatabaseTaskoptionsFactory; public abstract class DatabaseScheduler extends DbQueryManager implements SchedulerFactory { protected DatabaseScheduler(Datasource datasource) { super(datasource); } public Scheduler getScheduler() { return new Scheduler(DatabaseTasksFactory.getInstance(getDatasource()), DatabaseTaskoptionsFactory.getInstance(getDatasource())); } public abstract boolean install() throws SchedulerManagerException; public abstract boolean remove() throws SchedulerManagerException; protected boolean _install() throws SchedulerManagerException { try { DatabaseTasks tasks_manager = DatabaseTasksFactory.getInstance(getDatasource()); DatabaseTaskoptions taskoptions_manager = DatabaseTaskoptionsFactory.getInstance(getDatasource()); tasks_manager.install(); taskoptions_manager.install(); } catch (SchedulerException e) { throw new InstallSchedulerErrorException(e); } return true; } protected boolean _remove() throws SchedulerManagerException { try { DatabaseTasks tasks_manager = DatabaseTasksFactory.getInstance(getDatasource()); DatabaseTaskoptions taskoptions_manager = DatabaseTaskoptionsFactory.getInstance(getDatasource()); taskoptions_manager.remove(); tasks_manager.remove(); } catch (SchedulerException e) { throw new RemoveSchedulerErrorException(e); } return true; } }