taskqueryutil.java

来自「Java的框架」· Java 代码 · 共 145 行

JAVA
145
字号
package mcaps.apps.prrm.task.dao.util;

import mcaps.apps.prrm.task.model.Category;
import mcaps.apps.prrm.task.model.Priority;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;

/**
 * This method returns the whereClause string and array of parameter 
 * types based on the road defect parameter in the form of object array.
 * 
 * @param defect the road defect in which the where clause string and
 * the parameter values are derived from
 * @return the object array that contains the where clause string and
 * parameter types array.
 */
public class TaskQueryUtil {

	/**
	 * This method returns the whereClause string and array of parameter 
	 * types based on the road defect parameter in the form of object array.
	 * 
	 * @param defect the road defect in which the where clause string and
	 * the parameter values are derived from
	 * @return the object array that contains the where clause string and
	 * parameter types array.
	 */
	public static Object[] getWhereClauseAndParameterTypes(Task task){
		StringBuffer sb = new StringBuffer();
		int fieldCount = 0;
		int[] fieldTypes = new int[10];
		
		if(task.getId() != null){
			sb.append(TaskField.FIELDS[TaskField.ID])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.ID];
		}
		if(task.getCategory().toString() != ""){
			sb.append(TaskField.FIELDS[TaskField.CATEGORY])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.CATEGORY];
		}
		if(task.getPriority().toString() != ""){
			sb.append(TaskField.FIELDS[TaskField.PRIORITY])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.PRIORITY];
		}
		if(task.getStatus().toString() != ""){
			sb.append(TaskField.FIELDS[TaskField.STATUS])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.STATUS];
		}
		if(task.getRemarks() != null){
			sb.append(TaskField.FIELDS[TaskField.REMARKS])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.REMARKS];
		}
		if(task.getAssignedUserId() != null){
			sb.append(TaskField.FIELDS[TaskField.ASSIGNEDUSERID])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.ASSIGNEDUSERID];
		}
		if(task.getRoadDefectId() != null){
			sb.append(TaskField.FIELDS[TaskField.ROADDEFECTID])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.ROADDEFECTID];
		}
		if(task.getDueDate() != null){
			sb.append(TaskField.FIELDS[TaskField.DUEDATE])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.DUEDATE];
		}
		if(task.getCreationTime() != null){
			sb.append(TaskField.FIELDS[TaskField.CREATIONTIME ])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.CREATIONTIME];
		}
		if(task.getLastModifiedTime() != null){
			sb.append(TaskField.FIELDS[TaskField.LASTMODIFIEDTIME])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = TaskField.FIELDTYPES[TaskField.LASTMODIFIEDTIME];
		}

		System.out.println(sb.toString());
		sb.delete(sb.length()-5,sb.length());
		System.out.println(sb.toString());

		System.out.println("getWhereClauseAndParameterTypes fieldCount : " + fieldCount);
		int[] paramTypes = new int[fieldCount];
		System.arraycopy(fieldTypes, 0, 
											paramTypes, 0, 
											fieldCount);
		
		Object[] obj = new Object[]{sb.toString(),paramTypes};
		return obj;
	}
	
	public static Object[] getParameters(Task task){
		int fieldCount = 0;
		Object[] params = new Object[10];
		
		if(task.getId() != null){
			params[fieldCount++] = task.getId();
		}
		if(!task.getCategory().equals(Category.NULL)){
			System.out.println(task.getCategory().toString() + " " + !task.getCategory().equals(Category.NULL));
			params[fieldCount++] = task.getCategory();
		}
		if(!task.getPriority().equals(Priority.NULL)){
			System.out.println(task.getPriority().toString() + " " + !task.getPriority().equals(Priority.NULL));
			params[fieldCount++] = task.getPriority();
		}
		if(!task.getStatus().equals(Status.NULL)){
			System.out.println(task.getStatus().toString() + " " + !task.getStatus().equals(Status.NULL));
			params[fieldCount++] = task.getStatus();
		}
		if(task.getRemarks() != null){
			params[fieldCount++] = task.getRemarks();
		}
		if(task.getAssignedUserId() != null){
			params[fieldCount++] = task.getAssignedUserId();
		}
		if(task.getRoadDefectId() != null){
			params[fieldCount++] = task.getRoadDefectId();
		}
		if(task.getCreationTime() != null){
			params[fieldCount++] = task.getCreationTime();
		}
		if(task.getDueDate() != null){
			params[fieldCount++] = task.getDueDate();
		}
		if(task.getLastModifiedTime() != null){
			params[fieldCount++] = task.getLastModifiedTime();
		}
		
		System.out.println("getParameters fieldCount : " + fieldCount);
		Object[] targetParams = new Object[fieldCount];
		System.arraycopy(params, 0, 
											targetParams, 0, 
											fieldCount);
		
		return targetParams;		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?