package com.pugh.sockso.music;
import com.pugh.sockso.Utils;
import com.pugh.sockso.db.Database;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
/**
*
* @author Nathan Perrier
*/
public class Genre extends MusicItem {
private static final Logger log = Logger.getLogger(Genre.class);
/**
* @param id
* @param name
*/
public Genre( final int id, final String name ) {
super(MusicItem.GENRE, id, name);
}
/**
* creates a new genre from a result set row
*
* @param rs the result set
* @return Genre
* @throws SQLException
*/
public static Genre createFromResultSet( final ResultSet rs ) throws SQLException {
return new Genre(rs.getInt("id"), rs.getString("name"));
}
/**
* Find all genres, listed alphabetically, with the specified offset and limit
*
* @param db
* @param limit
* @param offset
*
* @throws SQLException
*
* @return
*
*/
public static List<Genre> findAll( final Database db, final int limit, final int offset ) throws SQLException {
PreparedStatement st = null;
ResultSet rs = null;
try {
String sql = " select g.id, g.name " +
" from genres g " +
" order by g.name asc ";
if ( limit != -1 ) {
sql += " limit " +limit+ " " +
" offset " +offset;
}
st = db.prepare( sql );
rs = st.executeQuery();
final List<Genre> genres = new ArrayList<Genre>();
while ( rs.next() ) {
Genre genre = createFromResultSet(rs);
genres.add( genre );
}
return genres;
}
finally {
Utils.close( rs );
Utils.close( st );
}
}
}