コード例 #1
0
ファイル: AbstractRecord.java プロジェクト: rahultongia/jOOQ
  private final <T> void setValue(int index, Field<T> field, T value) {
    Value<T> val = getValue0(index);
    UniqueKey<?> key = getPrimaryKey();

    // Normal fields' changed flag is always set to true
    if (key == null || !key.getFields().contains(field)) {
      val.setValue(value);
    }

    // The primary key's changed flag might've been set previously
    else if (val.isChanged()) {
      val.setValue(value);
    }

    // [#2764] Users may override updatability of primary key values
    else if (updatablePrimaryKeys(settings(this))) {
      val.setValue(value);
    }

    // [#2698] If the primary key has not yet been set
    else if (val.getOriginal() == null) {
      val.setValue(value);
    }

    // [#979] If the primary key is being changed, all other fields' flags
    // need to be set to true for in case this record is stored again, an
    // INSERT statement will thus be issued
    else {
      val.setValue(value, true);

      if (val.isChanged()) {
        changed(true);
      }
    }
  }
コード例 #2
0
 protected CommandEvaluator<Criterion, Object> compileIdentifierToValueCMP(
     IdentifierToValueCMP node) {
   Identifier id = node.getIdentifier();
   if (id instanceof Field) {
     String name = id.getName();
     Value value = node.getValue();
     if (INSTANCE_ID_FIELD.equals(name)) {
       value.setValue(Long.valueOf((String) value.getValue()));
     } else if (INSTANCE_STARTED_FIELD.equals(name) || INSTANCE_LAST_ACTIVE_FIELD.equals(name)) {
       try {
         value.setValue(ISO8601DateParser.parse((String) value.getValue()));
       } catch (ParseException ex) {
         throw new RuntimeException(ex);
       }
     }
   }
   if (node instanceof Equality) {
     return compileEqual((Equality) node);
   } else if (node instanceof Less) {
     return compileLess((Less) node);
   } else if (node instanceof Greater) {
     return compileGreater((Greater) node);
   } else if (node instanceof GE) {
     return compileGE((GE) node);
   } else if (node instanceof LE) {
     return compileLE((LE) node);
   } else if (node instanceof Like) {
     return compileLike((Like) node);
   } else {
     throw new IllegalArgumentException("Unsupported node " + node.getClass());
   }
 }
コード例 #3
0
ファイル: Engine.java プロジェクト: jdjamsa/sonar-experiments
 /**
  * additive ::= multiplicative ADD multiplicative additive ::= multiplicative SUB multiplicative
  */
 private Value additive() {
   Value res = mulpiplicative();
   while (token.getType() == TokenType.ADD || token.getType() == TokenType.SUB) {
     if (token.getType() == TokenType.ADD) {
       res.setValue(res.getValue() + mulpiplicative().getValue());
     } else if (token.getType() == TokenType.SUB) {
       res.setValue(res.getValue() - mulpiplicative().getValue());
     }
   }
   return res;
 }
コード例 #4
0
ファイル: Engine.java プロジェクト: jdjamsa/sonar-experiments
 /** multiplicative ::= unary MUL unary multiplicative ::= unary DIV unary */
 private Value mulpiplicative() {
   Value res = unary();
   while (token.getType() == TokenType.MUL || token.getType() == TokenType.DIV) {
     if (token.getType() == TokenType.MUL) {
       res.setValue(res.getValue() * unary().getValue());
     } else if (token.getType() == TokenType.DIV) {
       res.setValue(res.getValue() / unary().getValue());
     }
   }
   return res;
 }
コード例 #5
0
  public static OsgiManifest read(List<String> lines) {

    // parse lines
    OsgiManifest manifest = new OsgiManifest();
    for (int i = 0; i < lines.size(); i++) {
      String line = lines.get(i);
      for (int j = i + 1; j < lines.size() && lines.get(j).startsWith(" "); j++, i++) {
        line = line + lines.get(j);
      }
      int index = line.indexOf(':');
      if (index > 0) {
        String attributeName = line.substring(0, index).trim();
        List<String> valueTokens = tokenize(line.substring(index + 1), ',');
        Attribute values = manifest.getAttribute(attributeName);
        for (String valueToken : valueTokens) {
          if (valueToken.trim().isEmpty()) continue;
          Value value = new Value();
          values.add(value);
          List<String> annotationTokens = tokenize(valueToken, ';');
          value.setValue(annotationTokens.get(0));
          for (int k = 1; k < annotationTokens.size(); k++) {
            String annotationToken = annotationTokens.get(k);
            index = annotationToken.indexOf('=');
            if (index > 0) {
              value.setAnnotation(
                  annotationToken.substring(0, index), annotationToken.substring(index + 1));
            }
          }
        }
      }
    }
    return manifest;
  }
コード例 #6
0
ファイル: Problem.java プロジェクト: shymek/csp-solver
  public void randomizeValues() {
    int size = values.size();
    Random r = new Random();

    for (Value value : values) {
      int randomValue = r.nextInt(size);
      value.setValue(String.valueOf(randomValue));
    }
  }
コード例 #7
0
 public Value addUnique(String stringValue) {
   for (Value value : this) {
     if (value.getValue().equals(stringValue)) {
       return value;
     }
   }
   Value value = new Value();
   value.setValue(stringValue);
   add(value);
   return value;
 }
コード例 #8
0
ファイル: ArgParser.java プロジェクト: RPI-WCL/pilots
  public static void parse(
      String[] args, HostsPorts input, HostsPorts outputs, Value omega, Value tau)
      throws ParseException {
    Pattern pattern;
    Matcher matcher;

    for (int i = 0; i < args.length; i++) {
      if (args[i].startsWith("-input")) {
        int j = args[i].indexOf('=');
        input.addHostPort(null, Integer.parseInt(args[i].substring(j + 1)));
      } else if (args[i].startsWith("-outputs")) {
        int j = args[i].indexOf('=');
        String str = args[i].substring(j + 1);
        String[] ipaddrs = str.split(",");

        for (int k = 0; k < ipaddrs.length; k++) {
          pattern = Pattern.compile("[0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+");
          matcher = pattern.matcher(ipaddrs[k]);
          if (!matcher.matches()) {
            throw new ParseException("illegal IP Address format found for outputs: ", i);
          }
          int colon = ipaddrs[k].indexOf(':');
          outputs.addHostPort(
              ipaddrs[k].substring(0, colon), Integer.parseInt(ipaddrs[k].substring(colon + 1)));
        }
      } else if (args[i].startsWith("-omega")) {
        int j = args[i].indexOf('=');
        omega.setValue(Integer.parseInt(args[i].substring(j + 1)));
      } else if (args[i].startsWith("-tau")) {
        int j = args[i].indexOf('=');
        tau.setValue(Double.parseDouble(args[i].substring(j + 1)));
      } else {
        throw new ParseException("illegal option found: ", i);
      }
    }
  }
  /**
   * @param name Value name
   * @param value Value
   */
  public void setValue(String name, String value) {

    Value recordValue = null;

    for (Value v : recordValues) {
      if (v.getName().equalsIgnoreCase(name)) {
        recordValue = v;
        break;
      }
    }

    if (recordValue == null) {
      recordValue = new Value();
      recordValue.setName(name);
      recordValues.add(recordValue);
    }

    recordValue.setValue(value);
  }
コード例 #10
0
ファイル: Engine.java プロジェクト: jdjamsa/sonar-experiments
 /**
  * unary ::= NUMBER unary ::= OPEN logicalOr CLOSE unary ::= VARIABLE unary ::= NOT unary unary
  * ::= SUB unary unary ::= ADD unary
  */
 private Value unary() {
   final Value res;
   nextToken();
   if (token.getType() == TokenType.SUB) {
     res = unary();
     return res.setValue(-res.getValue());
   } else if (token.getType() == TokenType.ADD) {
     return unary();
   } else if (token.getType() == TokenType.NOT) {
     res = unary();
     return res.setBooleanValue(!res.getBooleanValue());
   } else if (token.getType() == TokenType.OPEN) {
     res = logicalOr();
     if (token.getType() != TokenType.CLOSE) {
       throw expected(TokenType.CLOSE);
     }
   } else if (token.getType() == TokenType.NUMBER) {
     res = token.getValue();
   } else if (token.getType() == TokenType.VARIABLE) {
     // resolve variable
     res = variables.get(token.getStr());
     if (res == null) {
       throw new IllegalStateException("Unexpected variable name");
     }
   } else {
     throw expected(
         TokenType.SUB,
         TokenType.ADD,
         TokenType.NOT,
         TokenType.OPEN,
         TokenType.NUMBER,
         TokenType.VARIABLE);
   }
   nextToken();
   return res;
 }