Ejemplo n.º 1
0
  public void validate(ProcessResult response) {
    if (StringUtils.isBlank(xid)) response.addContextualMessage("xid", "validate.required");
    else if (StringValidation.isLengthGreaterThan(xid, 50))
      response.addMessage("xid", new TranslatableMessage("validate.notLongerThan", 50));
    else if (!new DataPointDao().isXidUnique(xid, id))
      response.addContextualMessage("xid", "validate.xidUsed");

    if (StringUtils.isBlank(name)) response.addContextualMessage("name", "validate.required");

    if (!LOGGING_TYPE_CODES.isValidId(loggingType))
      response.addContextualMessage("loggingType", "validate.invalidValue");
    if (loggingType == DataPointVO.LoggingTypes.ON_CHANGE
        && pointLocator.getDataTypeId() == DataTypes.NUMERIC) {
      if (tolerance < 0) response.addContextualMessage("tolerance", "validate.cannotBeNegative");
    }

    if (!Common.TIME_PERIOD_CODES.isValidId(intervalLoggingPeriodType))
      response.addContextualMessage("intervalLoggingPeriodType", "validate.invalidValue");
    if (intervalLoggingPeriod <= 0)
      response.addContextualMessage("intervalLoggingPeriod", "validate.greaterThanZero");
    if (!INTERVAL_LOGGING_TYPE_CODES.isValidId(intervalLoggingType))
      response.addContextualMessage("intervalLoggingType", "validate.invalidValue");

    if (purgeOverride) {
      if (!Common.TIME_PERIOD_CODES.isValidId(purgeType))
        response.addContextualMessage("purgeType", "validate.invalidValue");
      if (purgePeriod <= 0)
        response.addContextualMessage("purgePeriod", "validate.greaterThanZero");
    }

    if (textRenderer == null) response.addContextualMessage("textRenderer", "validate.required");

    if (defaultCacheSize < 0)
      response.addContextualMessage("defaultCacheSize", "validate.cannotBeNegative");

    if (discardExtremeValues && discardHighLimit <= discardLowLimit)
      response.addContextualMessage("discardHighLimit", "validate.greaterThanDiscardLow");

    if (!StringUtils.isBlank(chartColour)) {
      try {
        ColorUtils.toColor(chartColour);
      } catch (InvalidArgumentException e) {
        response.addContextualMessage("chartColour", "validate.invalidValue");
      }
    }

    pointLocator.validate(response, this);

    // Check text renderer type
    if (textRenderer != null && !textRenderer.getDef().supports(pointLocator.getDataTypeId()))
      response.addGenericMessage("validate.text.incompatible");

    // Check chart renderer type
    if (chartRenderer != null && !chartRenderer.getDef().supports(pointLocator.getDataTypeId()))
      response.addGenericMessage("validate.chart.incompatible");

    // Check the plot type
    if (!PLOT_TYPE_CODES.isValidId(plotType))
      response.addContextualMessage("plotType", "validate.invalidValue");
    if (plotType != PlotTypes.STEP && pointLocator.getDataTypeId() != DataTypes.NUMERIC)
      response.addContextualMessage("plotType", "validate.invalidValue");
  }