/** * Same as above in another words: Routine tasks must have a frequence defined. Frequency can be * Time based or Meter based Routine task is meter based if one (only one) of getFreqDays or * getFreqMonths are set Routine task is Time based if getRunHoursThreshInc is defined. All * conditions are eclusive. No mixing is allowed * * @param vo * @throws BusinessException */ public static void validateTaskType(Task vo) throws BusinessException { if (EqualsUtils.areEqual( Integer.valueOf(TaskTypeRef.getIdByCode(TaskTypeRef.ROUTINE_MAINT)), vo.getTaskTypeId())) { // first check if Meter based if (vo.getRunHoursThreshInc() != null) { // Meter based if (vo.getFrequencyId() != null || vo.getFreqMonths() != null || vo.getFreqDays() != null) throw new BusinessException( "Meter based frequency is not compatible with Time based settings!"); } else { // Frequency based if (vo.getFrequencyId() == null && vo.getFreqMonths() == null && vo.getFreqDays() == null) throw new BusinessException("Routine Tasks must have frequency!"); } } else { if (vo.getFrequencyId() != null || vo.getRunHoursThreshInc() != null || vo.getFreqDays() != null || vo.getFreqDays() != null) throw new BusinessException("Non Routine Tasks may not have frequency!"); } }