📄 cmsdbaccess.java
字号:
* @return the Task object of the generated task
*
* @throws CmsException if something goes wrong.
*/
public CmsTask createTask(int rootId, int parentId, int tasktype,
int ownerId, int agentId,int roleId, String taskname,
java.sql.Timestamp wakeuptime, java.sql.Timestamp timeout,
int priority)
throws CmsException {
// fetch new task id
int newId = nextId(C_TABLE_TASK);
// create the task id entry in the DB
PreparedStatement statement = null;
Connection con = null;
try {
con = DriverManager.getConnection(m_poolName);
statement = con.prepareStatement(m_cq.get("C_TASK_CREATE"));
statement.setInt(1, newId);
statement.executeUpdate();
} catch( SQLException exc ) {
throw new CmsException(exc.getMessage(), CmsException.C_SQL_ERROR, exc);
} finally {
if(statement != null) {
try {
statement.close();
} catch(SQLException exc) {
// nothing to do here
}
}
if(con != null) {
try {
con.close();
} catch(SQLException exc) {
// nothing to do here
}
}
}
// create the task object, note that this does not user the "task type" table
// because the generic SQL does not work with MySQL 4
CmsTask task = new CmsTask(newId, taskname, C_TASK_STATE_STARTED, tasktype, rootId, parentId, ownerId, roleId, agentId,
agentId, new java.sql.Timestamp(System.currentTimeMillis()), wakeuptime, timeout, null, 0,
"30308", priority, 0, "../taskforms/adhoc.asp", 0, 1);
// write tast
task = writeTask(task);
return task;
}
/**
* Reads a task from the Cms with
* added escaping of Strings since MySQL dosen't support Unicode strings
*
* @param id the id of the task to read
* @return a task object or null if the task is not found
*
* @throws CmsException if something goes wrong
*/
public CmsTask readTask(int id) throws CmsException {
CmsTask task = super.readTask(id);
if (task != null) task.setName(unescape(task.getName()));
return task;
}
/**
* Reads all tasks of a user in a project with
* added escaping of Strings since MySQL dosen't support Unicode strings.
*
* @param project the Project in which the tasks are defined
* @param agent the task agent
* @param owner the task owner .
* @param group the group who has to process the task
* @param tasktype one of C_TASKS_ALL, C_TASKS_OPEN, C_TASKS_DONE, C_TASKS_NEW
* @param orderBy selects filter how to order the tasks
* @param sort select to sort ascending or descending ("ASC" or "DESC")
* @return a vector with the tasks read
*
* @throws CmsException Throws CmsException if something goes wrong.
*/
public Vector readTasks(CmsProject project, CmsUser agent, CmsUser owner, CmsGroup role, int tasktype, String orderBy, String sort)
throws CmsException {
Vector v = super.readTasks(project, agent, owner, role, tasktype, orderBy, sort);
for (int i=0; i<v.size(); i++) {
CmsTask task = (CmsTask)v.elementAt(i);
task.setName(unescape(task.getName()));
v.set(i, task);
}
return v;
}
/**
* Writes a task from the Cms with
* added escaping of Strings since MySQL dosen't support Unicode strings
*
* @param id the id of the task to write
* @return written task object
*
* @throws CmsException if something goes wrong
*/
public CmsTask writeTask(CmsTask task) throws CmsException {
task.setName(escape(task.getName()));
task = super.writeTask(task);
task.setName(unescape(task.getName()));
return task;
}
/**
* Writes a property for a file or folder with
* added escaping of property values as MySQL doesn't support Unicode strings
*
* @param meta The property-name of which the property has to be read.
* @param value The value for the property to be set.
* @param resourceId The id of the resource.
* @param resourceType The Type of the resource.
*
* @throws CmsException Throws CmsException if operation was not succesful
*/
public void writeProperty(String meta, int projectId, String value, CmsResource resource,
int resourceType, boolean addDefinition)
throws CmsException {
super.writeProperty(meta, projectId, escape(value), resource, resourceType, addDefinition);
}
/**
* Added unescaping of property values as MySQL doesn't support Unicode strings
*
* @see com.opencms.file.genericSql.CmsDbAccess#readProperty(String, int, CmsResource, int)
*/
public String readProperty(String meta, int projectId,
CmsResource resource, int resourceType) throws CmsException {
return unescape(super.readProperty(meta, projectId, resource, resourceType));
}
/**
* Added unescaping of property values as MySQL doesn't support Unicode strings
*
* @see com.opencms.file.genericSql.CmsDbAccess#readProperties(int, CmsResource, int)
*/
public HashMap readProperties(int projectId, CmsResource resource, int resourceType) throws CmsException {
HashMap original = super.readProperties(projectId, resource, resourceType);
if (singleByteEncoding()) return original;
HashMap result = new HashMap(original.size());
Iterator keys = original.keySet().iterator();
while (keys.hasNext()) {
Object key = keys.next();
result.put(key, unescape((String)original.get(key)));
}
original.clear();
return result;
}
/**
* Writes new log for a task with
* added escaping of comment as as MySQL doesn't support Unicode strings.
*
* @param taskid The id of the task.
* @param user User who added the Log.
* @param starttime Time when the log is created.
* @param comment Description for the log.
* @param type Type of the log. 0 = Sytem log, 1 = User Log
*
* @throws CmsException if something goes wrong
*/
public void writeTaskLog(int taskId, int userid,
java.sql.Timestamp starttime, String comment, int type)
throws CmsException {
super.writeTaskLog(taskId, userid, starttime, escape(comment), type);
}
/**
* Reads a log for a task with
* added unescaping of comment as as MySQL doesn't support Unicode strings.
*
* @param id The id for the tasklog .
* @return A new TaskLog object
* @throws CmsException Throws CmsException if something goes wrong.
*/
public CmsTaskLog readTaskLog(int id)
throws CmsException {
CmsTaskLog log = super.readTaskLog(id);
log.setComment(unescape(log.getComment()));
return log;
}
/**
* Reads log entries for a task with
* added unescaping of comment as as MySQL doesn't support Unicode strings.
*
* @param taskid The id of the task for the tasklog to read .
* @return A Vector of new TaskLog objects
* @throws CmsException Throws CmsException if something goes wrong.
*/
public Vector readTaskLogs(int taskId) throws CmsException {
Vector v = super.readTaskLogs(taskId);
for (int i=0; i<v.size(); i++) {
CmsTaskLog log = (CmsTaskLog)v.elementAt(i);
log.setComment(unescape(log.getComment()));
v.set(i, log);
}
return v;
}
/**
* Reads log entries for a project with
* added unescaping of comment as as MySQL doesn't support Unicode strings.
*
* @param project The projec for tasklog to read.
* @return A Vector of new TaskLog objects
* @throws CmsException Throws CmsException if something goes wrong.
*/
public Vector readProjectLogs(int projectid) throws CmsException {
Vector v = super.readProjectLogs(projectid);
for (int i=0; i<v.size(); i++) {
CmsTaskLog log = (CmsTaskLog)v.elementAt(i);
log.setComment(unescape(log.getComment()));
v.set(i, log);
}
return v;
}
/**
* Writes a user to the database.
*
* @param user the user to write
* @throws thorws CmsException if something goes wrong.
*/
public void writeUser(CmsUser user)
throws CmsException {
byte[] value=null;
PreparedStatement statement = null;
Connection con = null;
try {
con = DriverManager.getConnection(m_poolName);
// serialize the hashtable
ByteArrayOutputStream bout= new ByteArrayOutputStream();
ObjectOutputStream oout=new ObjectOutputStream(bout);
oout.writeObject(user.getAdditionalInfo());
oout.close();
value=bout.toByteArray();
// write data to database
statement = con.prepareStatement(m_cq.get("C_USERS_WRITE"));
statement.setString(1,user.getDescription());
statement.setString(2,user.getFirstname());
statement.setString(3,user.getLastname());
statement.setString(4,user.getEmail());
statement.setTimestamp(5, new Timestamp(user.getLastlogin()));
statement.setTimestamp(6, new Timestamp(user.getLastUsed()));
statement.setInt(7,user.getFlags());
statement.setBytes(8,value);
statement.setInt(9, user.getDefaultGroupId());
statement.setString(10,user.getAddress());
statement.setString(11,user.getSection());
statement.setInt(12,user.getType());
statement.setInt(13,user.getId());
statement.executeUpdate();
}
catch (SQLException e){
throw new CmsException("["+this.getClass().getName()+"]"+e.getMessage(),CmsException.C_SQL_ERROR, e);
}
catch (IOException e){
throw new CmsException("[CmsAccessUserInfoMySql/addUserInformation(id,object)]:"+CmsException. C_SERIALIZATION, e);
} finally {
// close all db-resources
if(statement != null) {
try {
statement.close();
} catch(SQLException exc) {
// nothing to do here
}
}
if(con != null) {
try {
con.close();
} catch(SQLException exc) {
// nothing to do here
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -