コード例 #1
0
  private void createOperation(
      Model model,
      Instance connectorInstance,
      StringToExpressionConverter converter,
      final String variableToSet,
      final String varValue) {
    Instance operationContainerInstance = connectorInstance.getContainer();
    Instance originalVariable = getOriginalVariable(model, variableToSet);

    // set variable dependency of left operand
    String returnType = Object.class.getName();
    Instance leftOperand = null;
    if (originalVariable != null) {
      returnType = StringToExpressionConverter.getDataReturnType(originalVariable);
      leftOperand =
          StringToExpressionConverter.createExpressionInstanceWithDependency(
              model,
              variableToSet,
              variableToSet,
              returnType,
              ExpressionConstants.VARIABLE_TYPE,
              true,
              originalVariable);
    } else {
      leftOperand =
          StringToExpressionConverter.createExpressionInstance(
              model,
              variableToSet,
              variableToSet,
              returnType,
              ExpressionConstants.VARIABLE_TYPE,
              true);
    }
    Instance rightOperand = converter.parse(varValue, returnType, false);
    Instance operatorInstance = model.newInstance("expression.Operator");
    operatorInstance.set("type", ExpressionConstants.ASSIGNMENT_OPERATOR);
    Instance operationInstance = model.newInstance("expression.Operation");
    operationInstance.set("leftOperand", leftOperand);
    operationInstance.set("rightOperand", rightOperand);
    operationInstance.set("operator", operatorInstance);
    operationContainerInstance.add("operations", operationInstance);
  }