All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bsc.bean.BeanEnumeration Maven / Gradle / Ivy

The newest version!
package org.bsc.bean;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Enumeration;
import java.util.Iterator;

import org.bsc.util.Log;

/**
 * Title:        Bartolomeo Sorrentino Classi
 * Description:
 * Copyright:    Copyright (c) 2001
 * Company:      ITD
 * @author Bartolomeo Sorrentino
 * @version 1.0
 */
public class BeanEnumeration implements Enumeration, Iterable {

  private BeanManager manager;
  private ResultSet rs;


  private class BeanIterator implements java.util.Iterator {

	public boolean hasNext() {
		return hasMoreElements();
	}

	public T next() {
		return nextElement();
	}

	public void remove() {
		throw new UnsupportedOperationException("remove is not support on bean enumeration!");
	}
	  
  }
  
  /**
   *
   */
  protected BeanEnumeration( BeanManager manager, ResultSet rs ) {
    this.manager = manager;
    this.rs = rs;
  }

  /**
   *
   */
  public boolean hasMoreElements() {
    try {
    return rs.next();
    }
    catch (Exception ex) {}

    return false;
  }

  /**
   *
   */
  public T nextElement() {

    try {
    T bean = manager.instantiateBean();
    manager.setBeanProperties(bean,rs);

    return bean;
    }
    catch( Exception ex ) {
      throw new java.lang.Error(ex.getMessage());
    }

  }

  /**
   * 
   */
  public Iterator iterator() {
	return new BeanIterator();
  }

  /**
   * close recordset
   */
  public void close() throws java.sql.SQLException {
    rs.close();
  }

 
  public static  void close( Enumeration enums ) {
      
      if( enums instanceof BeanEnumeration ) {
            try {
                ((BeanEnumeration)enums).close();
            } catch (SQLException ex) {
                Log.warn( "error occurred on BeanEnumeration close", ex );
            }
      } 
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy