Package anvil.server

Source Code of anvil.server.Context

/*
* $Id: Context.java,v 1.13 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.MalformedURLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import anvil.Log;
import anvil.core.Any;
import anvil.parser.InputSource;
import anvil.parser.URLInputSource;
import anvil.session.Session;
import anvil.session.SessionContainer;

/**
* class Context
*
* @author: Jani Lehtim�ki
*/
public class Context
{

  private Address _address;
  private RequestAdapter _adapter;
  private HttpServletRequest  _request = null;
  private HttpServletResponse _response = null;
  private OutputStream _output = null;
  private Session _session   = null;
  private Citizen _citizen   = null;
  private String  _resource  = null;
  private Log _log;


  public Context(Address address, String resource)
  {
    _address = address;
    _resource = resource;
  }


  void init(RequestAdapter adapter, HttpServletRequest request, HttpServletResponse response)
  {
    _adapter = adapter;
    _request = request;
    _response = response;
    _output = new OutputStreamProxy(_response);
    String session_id = adapter.getSession();
    if (session_id != null) {
      SessionContainer container = _address.getZone().getSessionContainer();
      if (container != null) {
        _session = container.getSession(session_id);
        if (_session != null) {
          String citizen =_session.getCitizen();
          if (citizen != null) {
            Realm realm = _address.getZone().getAuthorization().getRealm();
            if (realm != null) {
              _citizen = realm.getCitizen(citizen);
            }
          }
        }
      }
    }
    _log = _address.getZone().log();
  }
 
  
  void destroy()
  {
    _address = null;
    _request = null;
    _response = null;
    _output = null;
    _session = null;
    _citizen = null;
    _adapter = null;
    _resource = null;
    _log = null;
  }
 

  public Log log()
  {
    return _log;
  }
 

  public OutputStream getOutputStream() throws IOException
  {
    return _output;
  }
 
 
  public Address getAddress()
  {
    return _address;
  }
 

  public Server getServer()
  {
    return _address.getServer();
  }


  public String getHostname()
  {
    return _address.getHostname();
  }
 
 
  public String getPathinfo()
  {
    return _address.getPathinfo();
  }


  public String getOriginalPathinfo()
  {
    return _adapter.getPathinfo();
  }


  public RequestAdapter getAdapter()
  {
    return _adapter;
  }


  public String getResource()
  {
    return _resource;
  }


  public void setResource(String resource)
  {
    _resource = resource;
  }


  public Zone getZone()
  {
    return _address.getZone();
 


  public URL getURL()
  {
    return _address.getURL();
  }


  public HttpServletRequest getRequest()
  {
    return _request;
  }


  public HttpServletResponse getResponse()
  {
    return _response;
  }


  public String getSessionId()
  {
    if (_session != null) {
      return _session.getId();
    } else {
      return _adapter.getSession();
    }
  }
 

  public Session getSession()
  {
    return _session;
  }


  public void setSession(Session session)
  {
    _session = session;
  }


  public void setCitizen(Citizen citizen)
  {
    _citizen = citizen;
    if (_session != null) {
      _session.setCitizen(citizen.getName());
    }
  }
 

  public Citizen getCitizen()
  {
    return _citizen;
  }


  public Session getSession(String session_id)
  {
    SessionContainer container = getZone().getSessionContainer();
    if (container != null) {
      return container.getSession(session_id);
    } else {
      return null;
    }
  }


  public Session createSession()
  {
    SessionContainer container = getZone().getSessionContainer();
    if (container != null) {
      SessionPreferences prefs = getZone().getSessionPreferences();
      return container.createSession(prefs.getLifetime(), prefs.getTimeout());
    } else {
      return null;
    }
  }
 

}
TOP

Related Classes of anvil.server.Context

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.