/** * Adds quotes to the value of the attribute whose type is string or date and returns the tables * in path for that object. * * @param simpleConditionsNode The conditio node to be checked. * @return The tables in path for that object. */ private String addSingleQuotes(SimpleConditionsNode simpleConditionsNode) { String columnName = simpleConditionsNode.getCondition().getDataElement().getField(); Logger.out.debug(" columnName:" + columnName); StringTokenizer stringToken = new StringTokenizer(columnName, "."); simpleConditionsNode.getCondition().getDataElement().setTable(stringToken.nextToken()); Logger.out.debug( "tablename:" + simpleConditionsNode.getCondition().getDataElement().getTableAliasName()); simpleConditionsNode.getCondition().getDataElement().setField(stringToken.nextToken()); simpleConditionsNode.getCondition().getDataElement().setFieldType(stringToken.nextToken()); String tableInPath = null; if (stringToken.hasMoreTokens()) { tableInPath = stringToken.nextToken(); } Logger.out.debug("^^^^^^^^^^^Condition:" + simpleConditionsNode.getCondition()); return tableInPath; }
/** * Returns SimpleConditionsNode if the object named aliasName contains the activityStatus data * member, else returns null. * * @param aliasName The alias name of the object. * @param className The fully qualified name of the class in which activity status field is to be * searched. * @return SimpleConditionsNode if the object named aliasName contains the activityStatus data * member, else returns null. */ private SimpleConditionsNode getActivityStatusCondition(String aliasName, String className) throws DAOException, ClassNotFoundException { SimpleConditionsNode activityStatusCondition = null; if (className.equals(Constants.REPORTED_PROBLEM_CLASS_NAME)) { return null; } // Returns the Class object if it is a valid class else returns null. Class classObject = edu.wustl.common.util.Utility.getClassObject(className); if (classObject != null) { Field[] objectFields = classObject.getDeclaredFields(); for (int i = 0; i < objectFields.length; i++) { if (objectFields[i].getName().equals(Constants.ACTIVITY_STATUS)) { activityStatusCondition = new SimpleConditionsNode(); activityStatusCondition.getCondition().getDataElement().setTableName(aliasName); activityStatusCondition .getCondition() .getDataElement() .setField(Constants.ACTIVITY_STATUS_COLUMN); activityStatusCondition.getCondition().getOperator().setOperator("!="); activityStatusCondition.getCondition().setValue(Constants.ACTIVITY_STATUS_DISABLED); activityStatusCondition .getCondition() .getDataElement() .setFieldType(Constants.FIELD_TYPE_VARCHAR); return activityStatusCondition; } } Class superClass = classObject.getSuperclass(); if ((activityStatusCondition == null) && (superClass.getName().equals("edu.wustl.common.domain.AbstractDomainObject") == false)) { String superClassAliasName = getAliasName(superClass); activityStatusCondition = getActivityStatusCondition(superClassAliasName, superClass.getName()); } } return activityStatusCondition; }
/** * Adds single quotes (') for string and date type attributes in the condition collecion and the * returns the Set of objects to which the condition attributes belong. * * @param simpleConditionNodeCollection The condition collection. * @return the Set of objects to which the condition attributes belong. * @throws DAOException */ public List handleStringAndDateConditions( Collection simpleConditionNodeCollection, List fromTables) throws DAOException { // Adding single quotes to strings and date values. Iterator iterator = simpleConditionNodeCollection.iterator(); while (iterator.hasNext()) { SimpleConditionsNode simpleConditionsNode = (SimpleConditionsNode) iterator.next(); // Add all the objects selected in UI to the fromtables Set. addInListIfNotPresent( fromTables, simpleConditionsNode.getCondition().getDataElement().getTableAliasName()); // Adds single quotes to the value of attributes whose type is string or date. String tableInPath = addSingleQuotes(simpleConditionsNode); // Get the tables in path for this field and add it in the fromTables Set. if (tableInPath != null) { addTablesInPathToFromSet(fromTables, tableInPath); } addInListIfNotPresent( fromTables, simpleConditionsNode.getCondition().getDataElement().getTableAliasName()); } return fromTables; }