/*
* Copyright (C) 2013 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.shiro.jdbi;
import com.intel.mtwilson.shiro.RequestLogEntry;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
/**
*
* @author jbuhacoff
*/
public class RequestLogEntryMapper implements ResultSetMapper<RequestLogEntry> {
@Override
public RequestLogEntry map(int i, ResultSet rs, StatementContext sc) throws SQLException {
RequestLogEntry requestLogEntry = new RequestLogEntry();
requestLogEntry.setInstance(rs.getString("instance"));
requestLogEntry.setReceived(rs.getTimestamp("received"));
requestLogEntry.setSource(rs.getString("source"));
requestLogEntry.setDigest(rs.getString("digest"));
if( hasColumn(rs, "content") ) {
requestLogEntry.setContent(rs.getString("content"));
}
return requestLogEntry;
}
private boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
ResultSetMetaData meta = rs.getMetaData();
int max = meta.getColumnCount();
boolean found = false;
for(int i=1; i<=max; i++) {
if( meta.getColumnName(i).equals(columnName)) { //
found = true;
break;
}
}
return found;
}
}