Package com.caucho.quercus.env

Examples of com.caucho.quercus.env.Var


  {
    if (cls == null)
      return;
   
    for (String name : cls.getStaticFieldNames()) {
      Var field = cls.getStaticField(env, name);
      array.put(StringValue.create(name), field.toValue());
    }
   
    getStaticFields(env, array, cls.getParent());
  }
View Full Code Here


 
  public Value getStaticPropertyValue(Env env,
                                      String name,
                                      @Optional Value defaultV)
  {
    Var field = _cls.getStaticField(env, name);
   
    if (field == null) {
      if (! defaultV.isDefault())
        return defaultV;
      else
        throw new QuercusLanguageException(
            env.createException("ReflectionException",
                                L.l("Class '{0}' does not have a property named '{1}'", _name, name)));
    }

    return field.toValue();
  }
View Full Code Here

  {
    ArrayValue compactArray = new ArrayValueImpl();

    for (Value variableName : variables) {
      if (variableName.isString()) {
        Var var = env.getRef(variableName.toStringValue(), false);

        if (var != null)
          compactArray.put(variableName, var.toValue());
      }
      else if (variableName instanceof ArrayValue) {
        ArrayValue array = (ArrayValue) variableName;

        ArrayValue innerArray = compact(env, array.valuesToArray());
View Full Code Here

      QuercusClass qClass = qThis.getQuercusClass();
      String className = qClass.getName();
     
      // Var var = qClass.getStaticFieldVar(env, env.createString(staticName));
      // Var var = qClass.getStaticFieldVar(env, staticName);
      Var var = env.getStaticVar(env.createString(className
                                                  + "::" + staticName));
     
      env.setVar(_var.getName(), var);

      if (! var.isset() && _initValue != null)
        var.set(_initValue.eval(env));

    }
    catch (RuntimeException e) {
      rethrow(e, RuntimeException.class);
    }
View Full Code Here

    if (_expr != null) {
      // php/0750
      return _expr.evalVar(env);
    }
    else {
      return new Var();
    }
  }
View Full Code Here

      if (_staticName == null)
        _staticName = env.createStaticName();

      StringValue staticName = _staticName;
     
      Var var = env.getStaticVar(staticName);

      env.setRef(_var.getName(), var);

      if (! var.isset() && _initValue != null)
        var.set(_initValue.eval(env));

    }
    catch (RuntimeException e) {
      rethrow(e, RuntimeException.class);
    }
View Full Code Here

      }
      else {
        // php/0d04
        values[i] = args[i].eval(env);

        Var var = values[i].toVar();

        map.put(arg.getName(), new EnvVarImpl(var));

        values[i] = var.toValue();
      }
    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.evalVar(env).toVar()));
      else {
        map.put(arg.getName(),
                new EnvVarImpl(defaultExpr.eval(env).copy().toVar()));
      }
    }

    Map<StringValue,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(values); // php/0476
    Value oldThis;

    if (isStatic()) {
      // php/0967
      oldThis = env.setThis(env.getCallingClass());
    }
    else
      oldThis = env.getThis();

    try {
      Value value = _statement.execute(env);

      if (value != null)
        return value;
      else if (_info.isReturnsReference())
        return new Var();
      else
        return NullValue.NULL;
      /*
      else if (_isReturnsReference && isRef)
        return value;
View Full Code Here

      else if (arg.isReference()) {
        map.put(arg.getName(), new EnvVarImpl(args[i].toLocalVarDeclAsRef()));
      }
      else {
        // XXX: php/1708, toVar() may be doing another copy()
        Var var = args[i].toLocalVar();

        if (arg.getExpectedClass() != null
            && arg.getDefault() instanceof ParamRequiredExpr) {
          env.checkTypeHint(var,
                            arg.getExpectedClass(),
                            arg.getName().toString(),
                            getName());
        }

        // quercus/0d04
        map.put(arg.getName(), new EnvVarImpl(var));
      }
    }

    for (int i = args.length; i < _args.length; i++) {
      Arg arg = _args[i];

      Expr defaultExpr = arg.getDefault();

      if (defaultExpr == null)
        return env.error("expected default expression");
      else if (arg.isReference())
        map.put(
          arg.getName(), new EnvVarImpl(defaultExpr.evalVar(env).toVar()));
      else {
        map.put(
          arg.getName(), new EnvVarImpl(defaultExpr.eval(env).toLocalVar()));
      }
    }

    Map<StringValue,EnvVar> oldMap = env.pushEnv(map);
    Value []oldArgs = env.setFunctionArgs(args);
    Value oldThis;

    if (_info.isMethod()) {
      oldThis = env.getThis();
    }
    else {
      // php/0967, php/091i
      oldThis = env.setThis(NullThisValue.NULL);
    }

    try {
      Value value = _statement.execute(env);

      if (value == null) {
        if (_isReturnsReference)
          return new Var();
        else
          return NullValue.NULL;
      }
      else if (_isReturnsReference)
        return value;
View Full Code Here

   *
   * @return the expression value.
   */
  public Var evalVar(Env env)
  {
    Var value = getExpr().evalVar(env);

    // php/112d
    return value;
    /*
    if (value instanceof Var)
View Full Code Here

    Value obj = env.getThis();

    if (obj.isNull()) {
      cannotUseThisError(env);
     
      return new Var();
    }
   
    return obj.getThisFieldVar(env, _name);
  }
View Full Code Here

TOP

Related Classes of com.caucho.quercus.env.Var

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.