/* Copyright 1999-2008 Acelet.org. All rights reserved. GPL v2 license */
/** @author Wei Jiang */
package com.acelet.s.scheduler;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import com.acelet.lib.Common;
import com.acelet.lib.Externals;
import com.acelet.lib.Kit;
import com.acelet.lib.LoggingConstants;
import com.acelet.lib.NotSupportedException;
import com.acelet.lib.Phrase;
import com.acelet.lib.SendEmail;
import com.acelet.lib.SuperProperties;
import com.acelet.s.MailServerData;
import com.acelet.s.task.CandidateTask;
import com.acelet.s.task.DoerTalker;
import com.acelet.s.task.Holiday;
import com.acelet.s.task.HolidayRule;
import com.acelet.s.task.Task;
import com.acelet.s.task.TaskProcess;
import com.acelet.s.task.WorkingTask;
public class ApiBase {
static boolean initialized = false;
protected ApiBase() throws Exception {
}
public static int deleteDoerTalker(String name) throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).deleteDoerTalker(name);
} finally {
if (connection != null)
connection.close();
}
}
public static int deleteEntitlement(Connection conn, String role) throws Exception {
return new TaskProcess(conn).deleteEntitlement(role);
}
public static int deleteRole(Connection conn, String name) throws Exception {
return new TaskProcess(conn).deleteRole(name);
}
public static int insertEntitlement(Connection conn, String role, int entitlement)
throws Exception {
return new TaskProcess(conn).insertEntitlement(role, entitlement);
}
public static int insertRole(Connection conn, String name, String role) throws Exception {
return new TaskProcess(conn).insertRole(name, role);
}
public static int insertSchedulerPreference(Connection conn, String key, String value)
throws Exception {
return new TaskProcess(conn).insertSchedulerPreference(key, value);
}
public static Vector selectAllDoerTalkers() throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).selectAllDoerTalkers();
} finally {
if (connection != null)
connection.close();
}
}
public static Vector selectAllEntitlements(Connection conn) throws Exception {
return new TaskProcess(conn).selectAllEntitlements();
}
public static Vector selectAllRoles(Connection conn) throws Exception {
return new TaskProcess(conn).selectAllRoles();
}
public static Properties selectSchedulerPreference() throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).selectSchedulerPreference();
} finally {
if (connection != null)
connection.close();
}
}
public static Properties selectSettings() throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).selectSettings();
} finally {
if (connection != null)
connection.close();
}
}
public static int updateEntitlement(Connection conn, String role, int entitlement)
throws Exception {
return new TaskProcess(conn).updateEntitlement(role, entitlement);
}
public static int updateTask(Task task, long newModifiedAt) throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).updateTask(task, newModifiedAt);
} finally {
if (connection != null)
connection.close();
}
}
public static void updateTasksWithNewHolidays() throws Exception {
Vector tasksVector = new Vector();
Enumeration enumeration = Registry.taskHashtable.elements();
while (enumeration.hasMoreElements()) {
Task task = (Task) enumeration.nextElement();
if (task.getHolidayPolicy() != Task.HOLIDAY_POLICY_SAME)
tasksVector.add(task);
}
for (int i = 0; i < tasksVector.size(); i++) {
Task task = (Task) tasksVector.elementAt(i);
task.reCalculate();
updateTask(task, System.currentTimeMillis());
}
}
public static int updateRole(Connection conn, String name, String role) throws Exception {
return new TaskProcess(conn).updateRole(name, role);
}
public static int updateSchedulerPreference(Properties properties) throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).updateSchedulerPreference(properties);
} finally {
if (connection != null)
connection.close();
}
}
public static int updateSettings(Properties settings) throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new TaskProcess(connection).updateSettings(settings);
} finally {
if (connection != null)
connection.close();
}
}
public static int updateWorkingTaskMarkedAsLost(WorkingTask workingTask) throws Exception {
Connection connection = null;
try {
connection = DirectTaskDatabaseConnection.getNewConnection();
return new
TaskProcess(connection).updateWorkingTaskMarkedAsLost(workingTask);
} finally {
if (connection != null)
connection.close();
}
}
}