env.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 3,016 行 · 第 1/5 页

JAVA
3,016
字号
    _removePaths.add(path);  }  /**   * Returns the request.   */  public HttpServletRequest getRequest()  {    return _request;  }  /**   * Returns the most recently modified time of all of the {@link Path}'s that   * have been used for this Env, or 0 if that cannot be determined.   */  /*  public long getLastModified()  {    long lastModified = 0;    if (_page != null) {      Path pagePath = _page.getSelfPath(this);      if (pagePath != null)        lastModified = pagePath.getLastModified();    }    for (Path includePath : _includeSet) {      long includeLastModified = includePath.getLastModified();      if (lastModified < includeLastModified)        lastModified = includeLastModified;    }    return lastModified;  }  */  /**   * Returns the response.   */  public HttpServletResponse getResponse()  {    return _response;  }  /**   * Sets the session callback.   */  public void setSessionCallback(SessionCallback callback)  {    _sessionCallback = callback;  }  /**   * Gets the session callback.   */  public SessionCallback getSessionCallback()  {    return _sessionCallback;  }  /**   * Returns the session.   */  public SessionArrayValue getSession()  {    return _session;  }  /**   * Returns the Java Http session.   */  public HttpSession getJavaSession()  {    return _javaSession;  }  /**   * Sets the session.   */  public void setSession(SessionArrayValue session)  {    _session = session;    if (session != null) {      Value var = getGlobalVar("_SESSION");            if (! (var instanceof SessionVar)) {	var = new SessionVar();	setGlobalValue("_SESSION", var);      }      var.set(session);      setGlobalValue("HTTP_SESSION_VARS", session);      session.addUse();    }    else {      // php/1k0v      Value v = getGlobalVar("_SESSION");      if (v != null)        v.set(UnsetValue.UNSET);      v = getGlobalVar("HTTP_SESSION_VARS");      if (v != null)        v.set(UnsetValue.UNSET);    }  }  /**   * Returns a new session id.   */  public String generateSessionId()  {    String sessionId =       _quercus.getQuercusSessionManager().createSessionId(this);    if (_javaSession != null)      sessionId = _javaSession.getId().substring(0, 3) + sessionId.substring(3);    return sessionId;  }  /**   * Create the session.   */  public SessionArrayValue createSession(String sessionId, boolean create)  {    long now = Alarm.getCurrentTime();    SessionCallback callback = getSessionCallback();    _javaSession = _request.getSession(true);    if (create && _javaSession.getId().length() >= 3               && sessionId.length() >= 3)      sessionId = _javaSession.getId().substring(0, 3) + sessionId.substring(3);    SessionArrayValue session = _quercus.loadSession(this, sessionId);    if (callback != null) {      StringValue value = callback.read(this, sessionId);      if (value != null && value.length() != 0) {        Value unserialize = VariableModule.unserialize(this, value);        if (unserialize instanceof ArrayValue) {          ArrayValue arrayValue = (ArrayValue) unserialize;          session.reset(now);          session.putAll(arrayValue);        }      }    }    setSession(session);    return session;  }  /**   * Destroy the session.   */  public void destroySession(String sessionId)  {    SessionCallback callback = getSessionCallback();    if (callback != null) {      callback.destroy(this, sessionId);    }    else {      _quercus.destroySession(sessionId);    }    setSession(null);  }  /**   * Returns the logger used for syslog.   */  public Logger getLogger()  {    if (_logger == null)      _logger = Logger.getLogger("quercus.quercus");    return _logger;  }  /**   * Returns the configuration value of an init var.   */  public Value getConfigVar(String name)  {    return getIniDefinition(name).getValue(_quercus);  }  /**   * Returns a map of the ini values that have been explicitly set.   */  public IdentityHashMap<String, Value> getIniMap(boolean create)  {    if (_iniMap == null && create)      _iniMap = new IdentityHashMap<String,Value>();    return _iniMap;  }  /**   * Sets an ini value.   */  public StringValue setIni(String name, Value value)  {    _iniCount++;        StringValue oldValue = getIni(name);    getIniDefinition(name).set(this, value);    return oldValue;  }  /**   * Sets an ini value.   */  public StringValue setIni(String name, String value)  {    _iniCount++;        StringValue oldValue = getIni(name);    getIniDefinition(name).set(this, value);    return oldValue;  }  /**   * Returns an ini value.   */  public StringValue getIni(String name)  {    return getIniDefinition(name).getAsStringValue(this);  }  private IniDefinition getIniDefinition(String name)  {    return _quercus.getIniDefinitions().get(name);  }  /**   * Returns an ini value.   */  public boolean getIniBoolean(String name)  {    return getIniDefinition(name).getAsBoolean(this);  }  /**   * Returns an ini value as a long.   */  public long getIniLong(String name)  {    return getIniDefinition(name).getAsLong(this);  }  /**   * Returns an ini value as a string, null for missing or empty string   */  public String getIniString(String name)  {    return getIniDefinition(name).getAsString(this);  }  /**   * Returns an ini value.   */  public long getIniBytes(String name, long deflt)  {    return getIniDefinition(name).getAsLongBytes(this, deflt);  }  /**   * Returns the ByteToChar converter.   */  public ByteToChar getByteToChar()  {    return ByteToChar.create();  }  /**   * Returns the 'this' value.   */  public Value getThis()  {    return _this;  }  /**   * Sets the 'this' value, returning the old value.   */  public Value setThis(Value value)  {    Value oldThis = _this;    _this = value.toValue();    return oldThis;  }  /**   * Gets a value.   */  public Value getValue(String name)  {    Var var = getRef(name);    if (var != null)      return var.toValue();    else      return NullValue.NULL;  }  /**   * Gets a special value, a special value is used to store and retrieve module   * specific values in the env using a unique name.   */  public Object getSpecialValue(String name)  {    return _specialMap.get(name);  }  /**   * Gets a global   */  public Value getGlobalValue(String name)  {    Var var = getGlobalRef(name);    if (var != null)      return var.toValue();    else      return NullValue.NULL;  }  /**   * Gets a variable   *   * @param name the variable name   * @param var the current value of the variable   */  public final Var getVar(String name, Value value)  {    if (value != null)      return (Var) value;        Var var = _map.get(name);    if (var != null)      return var;    var = getRef(name);    if (var == null) {      var = new Var();      if (_map == _globalMap)        var.setGlobal();      _map.put(name, var);    }    return var;  }  /**   * Gets a variable   *   * @param name the variable name   * @param value the current value of the variable   */  public final Var getGlobalVar(String name, Value value)  {    if (value != null)      return (Var) value;    Var var = _globalMap.get(name);    if (var != null)      return var;    var = getSpecialRef(name);    if (var == null) {      var = new Var();      var.setGlobal();    }        _globalMap.put(name, var);    return var;  }  /**   * Gets a static variable name.   */  public final String createStaticName()  {    return _quercus.createStaticName();  }  /**   * Gets a static variable   *   * @param name the variable name   */  public final Var getStaticVar(String name)  {    Var var = _staticMap.get(name);    if (var == null) {      var = new Var();      var.setGlobal();      _staticMap.put(name, var);    }    return var;  }  /**   * Unsets variable   *   * @param name the variable name   */  public final Var unsetVar(String name)  {    _map.remove(name);    return null;  }  /**   * Gets a variable   *   * @param name the variable name   * @param value the current value of the variable   */  public final Var setVar(String name, Value value)  {    Var var;    if (value instanceof Var) {      var = (Var) value;      if (_map == _globalMap)        var.setGlobal();    }    else      var = new Var(value.toValue());    _map.put(name, var);    return var;  }  /**   * Unsets variable   *   * @param name the variable name   */  public final Var unsetLocalVar(String name)  {    _map.remove(name);    return null;  }  /**   * Unsets variable   *   * @param name the variable name   */  public final Var unsetGlobalVar(String name)  {    Var oldVar = _globalMap.remove(name);    if (oldVar != null)      oldVar.set(UnsetValue.UNSET);    return null;  }  /**   * Gets a local   *   * @param var the current value of the variable   */  public static final Value getLocalVar(Value var)  {    if (var == null)      var = new Var();    return var;  }  /**   * Gets a local value   *   * @param var the current value of the variable   */  public static final Value getLocalValue(Value var)  {    if (var != null)      return var;    else      return NullValue.NULL;  }  /**   * Gets a local   *   * @param var the current value of the variable   */  public static final Value setLocalVar(Value var, Value value)  {    value = value.toValue();    if (var instanceof Var)      var.set(value);    return value;  }  /**   * Gets a value.   */  public Var getRef(String name)  {    Var var = _map.get(name);    if (var == null) {      var = getSpecialRef(name);      if (var != null) {        var.setGlobal();        _globalMap.put(name, var);        var = _map.get(name);      }    }    return var;  }  /**   * Returns the raw global lookup.   */  public Var getGlobalRaw(String name)  {    return _globalMap.get(name);  }    /**   * Gets a global value.   */  public Var getGlobalRef(String name)  {    Var var = _globalMap.get(name);    if (var == null) {      var = getSpecialRef(name);      if (var == null)	var = new Var();            _globalMap.put(name, var);    }    return var;  }  /**   * Gets a value.   */  public Var getSpecialRef(String name)  {    Var var = null;    switch (SPECIAL_VARS.get(name)) {    case _ENV: {      var = new Var();      _globalMap.put(name, var);      var.set(new ArrayValueImpl());      return var;    }    case HTTP_POST_VARS:      if (! Quercus.INI_REGISTER_LONG_ARRAYS.getAsBoolean(this))	return null;    case _POST: {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?