roaddefectqueryutil.java

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

JAVA
164
字号
package mcaps.apps.prrm.roaddefect.dao.util;

import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.model.RoadDefectSeverity;
import mcaps.apps.prrm.roaddefect.model.RoadDefectStatus;
import mcaps.apps.prrm.roaddefect.model.RoadDefectType;

/**
 * This class is a supporting class for RoadDefectQuery to
 * construct whereClause, parameter types and parameter values based 
 * on the RoadDefect object parameter. 
 * 
 * @author jov
 * @date Sep 23, 2005
 * @version 1.0.1.0
 */
public class RoadDefectQueryUtil {


	/**
	 * 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(RoadDefect defect){
		StringBuffer sb = new StringBuffer();
		int fieldCount = 0;
		int[] fieldTypes = new int[10];
		
		if(defect.getId() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.ID])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.ID];
		}
		if(defect.getDefectType().toString() != ""){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.DEFECTTYPE])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.DEFECTTYPE];
		}
		if(defect.getDefectDetail() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.DEFECTDETAIL])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.DEFECTDETAIL];
		}
		if(defect.getRoad() != null){
			if(defect.getRoad().getId()!=null){
				sb.append(RoadDefectField.FIELDS[RoadDefectField.ROADID])
				.append("=?").append(" AND ");
				fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.ROADID];
			}
		}
		if(defect.getLocation() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.LOCATION])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.LOCATION];
		}
		if(defect.getSeverity().toString() != ""){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.SEVERITY])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.SEVERITY];
		}
		if(defect.getStatus().toString() != ""){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.STATUS])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.STATUS];
		}
		if(defect.getContact() != null) {
			if(defect.getContact().getId()!=null){
				sb.append(RoadDefectField.FIELDS[RoadDefectField.CONTACTID])
					.append("=?").append(" AND ");
				fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.CONTACTID];
			}
		}
		if(defect.getCreationTime() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.CREATIONTIME])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.CREATIONTIME];
		}
		if(defect.getClosedDate() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.CLOSEDDATE])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.CLOSEDDATE];
		}
		if(defect.getLastModifiedTime() != null){
			sb.append(RoadDefectField.FIELDS[RoadDefectField.LASTMODIFIEDTIME])
				.append("=?").append(" AND ");
			fieldTypes[fieldCount++] = RoadDefectField.FIELDTYPES[RoadDefectField.LASTMODIFIEDTIME];
		}
		
		sb.delete(sb.length()-5,sb.length());

		int[] paramTypes = new int[fieldCount];
		System.arraycopy(fieldTypes, 0, 
											paramTypes, 0, 
											fieldCount);
		
		Object[] obj = new Object[]{sb.toString(),paramTypes};
		return obj;
	}
	
	/**
	 * This method return the parameter values based on the 
	 * road defect parameter.
	 * 
	 * @param defect the road defect object in which the parameters
	 * are derived from 
	 * @return the object array that contains all the parameter values
	 * which are the road defect properties.
	 */
	public static Object[] getParameters(RoadDefect defect){
		int fieldCount = 0;
		Object[] params = new Object[10];
		
		if(defect.getId() != null){
			params[fieldCount++] = defect.getId();
		}
		if(!defect.getDefectType().equals(RoadDefectType.NULL)){
			params[fieldCount++] = defect.getDefectType();
		}
		if(defect.getDefectDetail() != null){
			params[fieldCount++] = defect.getDefectDetail();
		}
		if(defect.getRoad() != null){
			if(defect.getRoad().getId()!=null){
				params[fieldCount++] = defect.getRoad().getId();
			}
		}
		if(defect.getLocation() != null){
			params[fieldCount++] = defect.getLocation();
		}
		if(!defect.getSeverity().equals(RoadDefectSeverity.NULL)){
			params[fieldCount++] = defect.getSeverity();
		}
		if(!defect.getStatus().equals(RoadDefectStatus.NULL)){
			params[fieldCount++] = defect.getStatus();
		}
		if(defect.getContact() != null) {
			if(defect.getContact().getId()!=null){
				params[fieldCount++] = defect.getContact().getId();
			}
		}
		if(defect.getCreationTime() != null){
			params[fieldCount++] = defect.getCreationTime();
		}
		if(defect.getClosedDate() != null){
			params[fieldCount++] = defect.getClosedDate();
		}
		if(defect.getLastModifiedTime() != null){
			params[fieldCount++] = defect.getLastModifiedTime();
		}
		
		Object[] targetParams = new Object[fieldCount];
		System.arraycopy(params, 0, 
											targetParams, 0, 
											fieldCount);
		
		return targetParams;		
	}
}

⌨️ 快捷键说明

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