Package railo.runtime.type.scope

Source Code of railo.runtime.type.scope.ApplicationImpl

package railo.runtime.type.scope;

import java.util.Map;

import railo.runtime.PageContext;
import railo.runtime.engine.ThreadLocalPageContext;
import railo.runtime.functions.system.GetApplicationSettings;
import railo.runtime.listener.ApplicationContext;
import railo.runtime.type.Collection;
import railo.runtime.type.KeyImpl;



/**
* Session Scope
*/
public final class ApplicationImpl extends ScopeSupport implements Application,SharedScope {

  private static final long serialVersionUID = 700830188207594563L;
 
  private static final Collection.Key APPLICATION_NAME = KeyImpl.intern("applicationname");
  private long lastAccess;
  private long timeSpan;
  private long created;
 
  /**
   * default constructor of the session scope
   */
  public ApplicationImpl() {
    super(true,"application",SCOPE_APPLICATION);
    created = System.currentTimeMillis();
  }

  @Override
  public long getLastAccess() {
    return lastAccess;
  }

  @Override
  public long getTimeSpan() {
      return timeSpan;
  }

  @Override
  public void touchBeforeRequest(PageContext pc){
      ApplicationContext appContext = pc.getApplicationContext();
      setEL(APPLICATION_NAME,appContext.getName());
      timeSpan=appContext.getApplicationTimeout().getMillis();
    lastAccess=System.currentTimeMillis();
  }

  public void touchAfterRequest(PageContext pc) {
    // do nothing
  }

    @Override
    public boolean isExpired() {
        return (lastAccess+timeSpan)<System.currentTimeMillis();
    }

  /**
   * @param lastAccess the lastAccess to set
   */
  public void setLastAccess(long lastAccess) {
    this.lastAccess = lastAccess;
  }

  @Override
  public void touch() {
    lastAccess=System.currentTimeMillis();
  }
 
  /**
   * undocumented Feature in ACF
   * @return
   */
  public Map getApplicationSettings(){
    return GetApplicationSettings.call(ThreadLocalPageContext.get());
  }

  @Override
  public long getCreated() {
    return created;
  }
}
TOP

Related Classes of railo.runtime.type.scope.ApplicationImpl

TOP
Copyright © 2018 www.massapi.com. 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.