/**
         * Returns an object with properties that correspond to the fetched row and
         * moves the internal data pointer ahead.
         *
         * @param env the PHP executing environment
         * @return an object representing the current fetched row
         */
        protected Value fetchObject(Env env, string className, Value[] args)
        {
            if (_rs == null)
            {
                return(NullValue.NULL);
            }

            try {
                if (_rs.next())
                {
                    _isValid = true;

                    Value result;

                    if (className != null)
                    {
                        QuercusClass cls = env.findClass(className);

                        if (args == null)
                        {
                            args = Value.NULL_ARGS;
                        }

                        result = cls.callNew(env, args);
                    }
                    else
                    {
                        result = env.createObject();
                    }

                    ResultSetMetaData md = getMetaData();

                    int count = md.getColumnCount();

                    for (int i = 0; i < count; i++)
                    {
                        string name  = getColumnLabel(md, i + 1);
                        Value  value = getColumnValue(env, i + 1);

                        result.putField(env, name, value);
                    }

                    return(result);
                }
                else
                {
                    return(NullValue.NULL);
                }
            } catch (SQLException e) {
                log.log(Level.FINE, e.ToString(), e);
                return(NullValue.NULL);
            }
        }
Ejemplo n.º 2
0
        /**
         * Evaluates the expression.
         *
         * @param env the calling environment.
         *
         * @return the expression value.
         */
        public Value eval(Env env)
        {
            Value [] args = new Value[_args.length];

            for (int i = 0; i < args.length; i++)
            {
                args[i] = _args[i].evalArg(env, true);
            }

            env.pushCall(this, NullValue.NULL, args);

            try {
                QuercusClass cl = env.getCallingClass();

                env.checkTimeout();

                return(cl.callNew(env, args));
            } finally {
                env.popCall();
            }
        }
Ejemplo n.º 3
0
        public WrappedStream(Env env,
                             QuercusClass qClass,
                             StringValue path,
                             StringValue mode,
                             LongValue options)
        {
            _env = env;

            _lineReader = new LineReader(env);

            _wrapper = qClass.callNew(env, Value.NULL_ARGS);

            if (env.isUnicodeSemantics())
            {
                _wrapper.callMethod(env, STREAM_OPEN_U,
                                    path, mode, options, NullValue.NULL);
            }
            else
            {
                _wrapper.callMethod(env, STREAM_OPEN,
                                    path, mode, options, NullValue.NULL);
            }
        }
Ejemplo n.º 4
0
        /**
         * Evaluates the expression.
         *
         * @param env the calling environment.
         *
         * @return the expression value.
         */
        public Value eval(Env env)
        {
            string       name = _name.evalString(env).intern();
            QuercusClass cl   = env.findAbstractClass(name);

            _fullArgs = _args;

            Value [] args = new Value[_args.length];

            for (int i = 0; i < args.length; i++)
            {
                args[i] = _args[i].eval(env);
            }

            env.pushCall(this, NullValue.NULL, args);

            try {
                env.checkTimeout();

                return(cl.callNew(env, args));
            } finally {
                env.popCall();
            }
        }
 public WrappedDirectory(Env env, QuercusClass qClass)
     : base()
 {
     _wrapper = qClass.callNew(env, Value.NULL_ARGS);
 }