Beispiel #1
0
  protected Object createStringObject(int JPFRef, MJIEnv env, FeatureExpr ctx)
      throws ConversionException {
    DynamicElementInfo str = (DynamicElementInfo) env.getHeap().get(JPFRef);
    if (!str.getClassInfo().isStringClassInfo()) {
      throw new ConversionException();
    }

    FieldInfo fi = str.getFieldInfo("value");
    int fieldValueRef = str.getFields().getReferenceValue(fi.getStorageOffset()).getValue();

    // this is String.value which is of type of char[]
    Object value = this.getJVMObj(fieldValueRef, env, ctx);
    // In case that value is of the type One
    Object JVMObj;
    if (value instanceof Conditional)
      JVMObj = new String((char[]) ((Conditional<?>) value).simplify(ctx).getValue());
    else {
      System.out.println("Warning from JPF2JVMConverter.java L244, JVMObj is not One");
      JVMObj = new String((char[]) value);
    }
    ConverterBase.objMapJPF2JVM.put(JPFRef, JVMObj);
    return JVMObj;
  }