Пример #1
0
  public Rules getRules(int ruleId) {

    PreparedStatement ps = null;
    ResultSet rs = null;
    Rules rules = new Rules();

    try {
      ps = con.prepareStatement(SELECT_RULE_QRY);
      ps.setInt(1, ruleId);
      rs = ps.executeQuery();

      String sourceID = "";
      String ruleString = "";
      String sourceFields = "";
      String ruleName = "";
      int userId = 0;
      if (rs.next()) {
        ruleId = rs.getInt("RuleID");
        ruleName = rs.getString(RULE_NAME);
        sourceID = rs.getString(SOURCE_ID);
        ruleString = rs.getString(RULE_QUERIES);
        sourceFields = rs.getString(SOURCE_FIELDS);
        userId = rs.getInt("user_id");
        LOGGER.debug(ruleString);
      }
      rules.setRuleID(ruleId);
      rules.setRuleName(ruleName);
      rules.setSource(sourceID);
      rules.setUserId(userId);
      rules.setExtractFields(sourceFields);
      //            objectMapper.convertValue(ruleString, Rule.class);
      List<Rule> ruless = new ArrayList<Rule>();

      JsonObject rulesObj = (new JsonParser()).parse(ruleString).getAsJsonObject();

      JsonArray rulesJson = rulesObj.get("rules").getAsJsonArray();
      for (int i = 0; i < rulesJson.size(); i++) {
        JsonObject tempObj = rulesJson.get(i).getAsJsonObject();
        Rule rule = new Rule();
        rule.setRuleOperator(tempObj.get("ruleOperator").getAsString());
        rule.setDataField(tempObj.get("dataField").getAsString());
        rule.setRuleParameters(tempObj.get("ruleParameters").getAsString());
        ruless.add(rule);
      }

      rules.setRules(ruless);
      // rulesObj.get("")
      // {"source":"ds59","rules":[{"ruleOperator":"coordinates","dataField":"loc","ruleParameters":"-120.2,40.1,-118.2,32.4"},{"ruleOperator":">","dataField":"value","ruleParameters":"100"}],"extractFields":"loc,value,timestamp"}
      LOGGER.debug(rules.toString());
    } catch (Exception e) {
      e.printStackTrace();
    } finally {

    }
    return rules;
  }