コード例 #1
0
  public Status validateMeter(Meter meter) {
    String meterName;
    Status returnStatus = null;

    if (null != meter) {
      meterName = meter.getMeterName();
      if (!FRMUtil.isNameValid(meterName)) {
        logger.error("Meter Name is invalid %s" + meterName);
        returnStatus = new Status(StatusCode.BADREQUEST, "Meter Name is invalid");
        return returnStatus;
      }

      for (int i = 0; i < meter.getMeterBandHeaders().getMeterBandHeader().size(); i++) {
        if (null != meter.getFlags() && !meter.getFlags().isMeterBurst()) {
          if (0 < meter.getMeterBandHeaders().getMeterBandHeader().get(i).getBurstSize()) {
            logger.error("Burst size should only be associated when Burst FLAG is set");
            returnStatus =
                new Status(
                    StatusCode.BADREQUEST,
                    "Burst size should only be associated when Burst FLAG is set");
            break;
          }
        }
      }

      if (null != returnStatus && !returnStatus.isSuccess()) {
        return returnStatus;
      } else if (null != meter.getMeterBandHeaders()) {
        BandType setBandType = null;
        DscpRemark dscpRemark = null;
        for (int i = 0; i < meter.getMeterBandHeaders().getMeterBandHeader().size(); i++) {
          setBandType = meter.getMeterBandHeaders().getMeterBandHeader().get(i).getBandType();
          if (setBandType instanceof DscpRemark) {
            dscpRemark = (DscpRemark) setBandType;
            if (0 > dscpRemark.getRate()) {}

          } else if (setBandType instanceof Drop) {
            if (0 < dscpRemark.getPercLevel()) {
              logger.error("Number of drop Precedence level");
            }
          } else if (setBandType instanceof Experimenter) {

          }
        }
      }
    }
    return new Status(StatusCode.SUCCESS);
  }