/**
   * This function returns the RoleClass for given attName
   *
   * @param attName
   * @return RoleClass
   */
  public static Class getRoleClass(String attName) {
    Iterator itr = mappings.iterator();

    while (itr.hasNext()) {
      ClassRelationshipData crd = (ClassRelationshipData) itr.next();
      if (crd.getRoleAttribute().indexOf(attName) != -1) {
        return Utility.getClassObject(crd.getRelatedClassName());
      }
    }
    return null;
  }
  /**
   * 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;
  }