|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.mdr.persistence.jdbcimpl; import org.netbeans.mdr.persistence.*; import java.util.*; /** * JdbcSet is a read-only Set backed by queries. * * @author John V. Sichi * @version $Id: JdbcSet.java,v 1.1 2004/02/04 06:38:13 mmatula Exp $ */ class JdbcSet extends AbstractSet { private final JdbcStorage storage; private final Storage.EntryType entryType; private final LazyPreparedStatement sqlIterator; private final LazyPreparedStatement sqlSize; private final LazyPreparedStatement sqlContains; JdbcSet( JdbcStorage storage, Storage.EntryType entryType, LazyPreparedStatement sqlIterator, LazyPreparedStatement sqlSize, LazyPreparedStatement sqlContains) { this.storage = storage; this.entryType = entryType; this.sqlIterator = sqlIterator; this.sqlSize = sqlSize; this.sqlContains = sqlContains; } // implement AbstractSet public Iterator iterator() { try { return storage.getResultSetIterator(sqlIterator,null,entryType); } catch (StorageException ex) { throw new RuntimeStorageException(ex); } } // override AbstractSet public boolean contains(Object obj) { try { int n = storage.getSingletonInt( sqlContains,new Object[]{obj}); return n > 0; } catch (StorageException ex) { throw new RuntimeStorageException(ex); } } // implement AbstractSet public int size() { try { if (sqlSize != null) { return storage.getSingletonInt(sqlSize,null); } else { // this could be used to compensate for a DBMS without // COUNT(DISTINCT) return storage.getResultSetCount(sqlIterator,null); } } catch (StorageException ex) { throw new RuntimeStorageException(ex); } } } // End JdbcSet.java |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
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.