/*
* Copyright (c) 2004-2013 Tada AB and other contributors, as listed below.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the The BSD 3-Clause License
* which accompanies this distribution, and is available at
* http://opensource.org/licenses/BSD-3-Clause
*
* Contributors:
* Tada AB
*/
package org.postgresql.pljava.example;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.postgresql.pljava.ResultSetHandle;
/**
* Uses the {@code ResultSetHandle} interface to implement two functions,
* {@link #listNonSupers listNonSupers} and {@link #listSupers listSupers},
* returning the corresponding subsets of rows from {@code pg_user}.
*/
public class Users implements ResultSetHandle {
public static ResultSetHandle listNonSupers() {
return new Users("usesuper = false");
}
public static ResultSetHandle listSupers() {
return new Users("usesuper = true");
}
private final String m_filter;
private Statement m_statement;
public Users(String filter) {
m_filter = filter;
}
@Override
public void close() throws SQLException {
m_statement.close();
}
@Override
public ResultSet getResultSet() throws SQLException {
m_statement = DriverManager.getConnection("jdbc:default:connection")
.createStatement();
return m_statement.executeQuery("SELECT * FROM pg_user WHERE "
+ m_filter);
}
}