alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*
 * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/BeanRepository.java,v 1.4 2004/02/23 06:22:36 billbarker Exp $
 * $Revision: 1.4 $
 * $Date: 2004/02/23 06:22:36 $
 *
 *
 *  Copyright 1999-2004 The Apache Software Foundation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package org.apache.jasper.compiler;


import java.beans.Beans;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import org.apache.jasper.JasperException;

/**
 * Holds instances of {session, application, page}-scoped beans 
 *
 * @author Mandar Raje
 */
public class BeanRepository {

    Vector sessionBeans;
    Vector pageBeans;
    Vector appBeans;
    Vector requestBeans;
    Hashtable beanTypes;
    ClassLoader loader;
    
    public BeanRepository (ClassLoader loader) {
	sessionBeans = new Vector(11);
	pageBeans    = new Vector(11);
	appBeans = new Vector(11);
	requestBeans    = new Vector(11);
	beanTypes    = new Hashtable ();
	this.loader = loader;
    }
    
    public boolean checkSessionBean (String s) {
	return sessionBeans.contains (s);
    }
    
    public void addSessionBean (String s, String type) throws JasperException {
	sessionBeans.addElement (s);
	putBeanType (s, type);
    }
    
    public boolean hasSessionBeans () {
	return !sessionBeans.isEmpty ();
    }
    
    public Enumeration getSessionBeans () {
	return sessionBeans.elements ();
    }
    
    public boolean checkApplicationBean (String s) {
	return appBeans.contains (s);
    }
    
    public void addApplicationBean (String s, String type) throws JasperException 
    {
	appBeans.addElement (s);
	putBeanType (s, type);
    }
    
    public boolean hasApplicationBeans () {
	return !appBeans.isEmpty ();
    }
    
    public Enumeration getApplicationBeans () {
	return appBeans.elements ();
    }
    
    public boolean checkRequestBean (String s) {
	return requestBeans.contains (s);
    }
    
    public void addRequestBean (String s, String type) throws JasperException {
	requestBeans.addElement (s);
	putBeanType (s, type);
    }
    
    public boolean hasRequestBeans () {
	return !requestBeans.isEmpty ();
    }
    
    public Enumeration getRequestBeans () {
	return requestBeans.elements ();
    }
    
    public boolean checkPageBean (String s) {
	return pageBeans.contains (s);
    }
    
    public void addPageBean (String s, String type) throws JasperException {
	pageBeans.addElement (s);
	putBeanType (s, type);
    }
    
    public boolean hasPageBeans () {
	return !pageBeans.isEmpty ();
    }
    
    public Enumeration getPageBeans () {
	return pageBeans.elements ();
    }

    public boolean ClassFound (String clsname)
    throws ClassNotFoundException {
	Class cls = null;
	//try {
	    cls = loader.loadClass(clsname) ;
	    //} catch (ClassNotFoundException ex) {
	    //return false;
	    //}
	return !(cls == null);	
    }
    
    public Class getBeanType (String bean) throws JasperException {
	Class cls = null;
	try {
	    cls = loader.loadClass((String)beanTypes.get(bean)) ;
	} catch (ClassNotFoundException ex) {
	    throw new JasperException (ex);
	}
	return cls;
    }
  
    public void putBeanType (String bean, String type) throws JasperException {
	try {
	    beanTypes.put (bean, type);
	} catch (Exception ex) {
	    throw new JasperException (ex);
	}
    }
    
    //public void putBeanType (String bean, Class type) {
    //beanTypes.put (bean, type);
    //}
    
    public void removeBeanType (String bean) {
	beanTypes.remove (bean);
    }
    
    // Not sure if this is the correct way.
    // After pageContext is finalised this will change.
    public boolean checkVariable (String bean) {
	return (checkPageBean(bean) || checkSessionBean(bean) ||
		checkRequestBean(bean) || checkApplicationBean(bean));
    }

    // Ideally this method should belong to the utils.
    public Class getClass (String clsname)
	throws ClassNotFoundException {
	    Class cls = null;
	    if (clsname != null) {
		cls =  loader.loadClass (clsname);
	    }
	    return cls;
    }

    public boolean beanFound (String beanName)
	throws ClassNotFoundException {
	    try {
		Beans.instantiate (loader, beanName);
		return true;
	    } catch (java.io.IOException ex) {
		// Ignore it for the time being.
		return false;
	    }
    }
}




... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.