/**
This file is automatically generated. Do not modify
*/
package org.kairosdb.datastore.h2.orm;
import java.util.Locale;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.sql.Timestamp;
import org.xml.sax.ContentHandler;
import org.xml.sax.Attributes;
import org.agileclick.genorm.runtime.*;
/**
Counts the data points for a metric query.
*/
public class CountDataPointsForMetricQuery extends org.agileclick.genorm.runtime.SQLQuery
{
private static final Logger s_logger = LoggerFactory.getLogger(CountDataPointsForMetricQuery.class.getName());
public static final String QUERY_NAME = "count_data_points_for_metric";
public static final String QUERY = "select count(0) as dp_count\n from data_point dp\n where\n dp.\"metric_id\" = ?\n and dp.\"timestamp\" >= ?\n and dp.\"timestamp\" <= ?";
private static final int ATTRIBUTE_COUNT = 1;
private static Map<String, Integer> s_attributeIndex;
private static String[] s_attributeNames = {
"dpCount" };
static
{
s_attributeIndex = new HashMap<String, Integer>();
for (int I = 0; I < ATTRIBUTE_COUNT; I++)
s_attributeIndex.put(s_attributeNames[I], I);
}
private boolean m_serializable;
private String m_metricId;
private java.sql.Timestamp m_startTime;
private java.sql.Timestamp m_endTime;
//Deprecated
public CountDataPointsForMetricQuery()
{
super();
}
//---------------------------------------------------------------------------
public CountDataPointsForMetricQuery(String metricId, java.sql.Timestamp startTime, java.sql.Timestamp endTime)
{
super();
m_metricId = metricId;
m_startTime = startTime;
m_endTime = endTime;
}
//---------------------------------------------------------------------------
public String getQueryName() { return (QUERY_NAME); }
//---------------------------------------------------------------------------
public String getQuery() { return (QUERY); }
//---------------------------------------------------------------------------
public void setSerializable(boolean serializable)
{
m_serializable = serializable;
}
//---------------------------------------------------------------------------
public String toString()
{
StringBuilder sb = new StringBuilder();
sb.append(this.getClass().getName());
sb.append(" metricId=").append(String.valueOf(m_metricId));
sb.append(" startTime=").append(String.valueOf(m_startTime));
sb.append(" endTime=").append(String.valueOf(m_endTime));
return (sb.toString());
}
//---------------------------------------------------------------------------
public void serializeQuery(ContentHandler ch, String tagName)
throws org.xml.sax.SAXException
{
boolean prevSerializeState = m_serializable;
m_serializable = true;
ResultSet rs = runQuery();
while (rs.next())
{
CountDataPointsForMetricData rec = rs.getRecord();
ch.startElement("", tagName, tagName, rec);
ch.endElement("", tagName, tagName);
}
rs.close();
m_serializable = prevSerializeState;
}
//---------------------------------------------------------------------------
//Deprecated
public ResultSet runQuery(String metricId, java.sql.Timestamp startTime, java.sql.Timestamp endTime)
{
java.sql.PreparedStatement genorm_statement = null;
try
{
String genorm_query = QUERY;
genorm_statement = org.kairosdb.datastore.h2.orm.GenOrmDataSource.prepareStatement(genorm_query);
genorm_statement.setString(1, metricId);
genorm_statement.setTimestamp(2, startTime);
genorm_statement.setTimestamp(3, endTime);
long genorm_queryTimeStart = 0L;
if (s_logger.isInfo())
{
genorm_queryTimeStart = System.currentTimeMillis();
}
java.sql.ResultSet genorm_resultSet = genorm_statement.executeQuery();
if (genorm_queryTimeStart != 0L)
{
long genorm_quryTime = System.currentTimeMillis() - genorm_queryTimeStart;
s_logger.info(genorm_quryTime);
}
ResultSet genorm_ret = new SQLResultSet(genorm_resultSet, genorm_statement, genorm_query);
return (genorm_ret);
}
catch (java.sql.SQLException sqle)
{
try
{
if (genorm_statement != null)
genorm_statement.close();
}
catch (java.sql.SQLException sqle2) { }
throw new GenOrmException(sqle);
}
}
//---------------------------------------------------------------------------
public ResultSet runQuery()
{
java.sql.PreparedStatement genorm_statement = null;
try
{
String genorm_query = QUERY;
genorm_statement = org.kairosdb.datastore.h2.orm.GenOrmDataSource.prepareStatement(genorm_query);
genorm_statement.setString(1, m_metricId);
genorm_statement.setTimestamp(2, m_startTime);
genorm_statement.setTimestamp(3, m_endTime);
long genorm_queryTimeStart = 0L;
if (s_logger.isInfo())
{
genorm_queryTimeStart = System.currentTimeMillis();
}
java.sql.ResultSet genorm_resultSet = genorm_statement.executeQuery();
if (genorm_queryTimeStart != 0L)
{
long genorm_quryTime = System.currentTimeMillis() - genorm_queryTimeStart;
s_logger.info(genorm_quryTime);
}
ResultSet genorm_ret = new SQLResultSet(genorm_resultSet, genorm_statement, genorm_query);
return (genorm_ret);
}
catch (java.sql.SQLException sqle)
{
try
{
if (genorm_statement != null)
genorm_statement.close();
}
catch (java.sql.SQLException sqle2) { }
throw new GenOrmException(sqle);
}
}
//===========================================================================
//Plugin Classes and Methods
//===========================================================================
public interface ResultSet extends GenOrmQueryResultSet<CountDataPointsForMetricData>
{
public List<CountDataPointsForMetricData> getArrayList(int maxRows);
public List<CountDataPointsForMetricData> getArrayList();
public CountDataPointsForMetricData getRecord();
public CountDataPointsForMetricData getOnlyRecord();
}
//===========================================================================
private class SQLResultSet
implements ResultSet
{
private java.sql.ResultSet m_resultSet;
private java.sql.Statement m_statement;
private String m_query;
private boolean m_onFirstResult;
//------------------------------------------------------------------------
//need to pass in the statement so it can be closed after the result set
protected SQLResultSet(java.sql.ResultSet resultSet, java.sql.Statement statement,
String query)
{
m_resultSet = resultSet;
m_statement = statement;
m_query = query;
m_onFirstResult = false;
}
//------------------------------------------------------------------------
/**
Closes any underlying java.sql.Result set and java.sql.Statement
that was used to create this results set.
*/
public void close()
{
try
{
m_resultSet.close();
m_statement.close();
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
}
//------------------------------------------------------------------------
/**
Returns the reults as an ArrayList of Record objects.
The Result set is closed within this call
*/
public List<CountDataPointsForMetricData> getArrayList(int maxRows)
{
ArrayList<CountDataPointsForMetricData> results = new ArrayList<CountDataPointsForMetricData>();
int count = 0;
try
{
if (m_onFirstResult)
{
count ++;
results.add(new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet));
}
while (m_resultSet.next() && (count < maxRows))
{
count ++;
results.add(new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet));
}
if (m_resultSet.next())
throw new GenOrmException("Bound of "+maxRows+" is too small for query ["+m_query+"]");
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
close();
return (results);
}
//------------------------------------------------------------------------
/**
Returns the reults as an ArrayList of Record objects.
The Result set is closed within this call
*/
public List<CountDataPointsForMetricData> getArrayList()
{
ArrayList<CountDataPointsForMetricData> results = new ArrayList<CountDataPointsForMetricData>();
try
{
if (m_onFirstResult)
results.add(new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet));
while (m_resultSet.next())
results.add(new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet));
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
close();
return (results);
}
//------------------------------------------------------------------------
/**
Returns the underlying java.sql.ResultSet object
*/
public java.sql.ResultSet getResultSet()
{
return (m_resultSet);
}
//------------------------------------------------------------------------
/**
Returns the current record in the result set
*/
public CountDataPointsForMetricData getRecord()
{
CountDataPointsForMetricData ret = null;
try
{
ret = new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet);
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
return (ret);
}
//------------------------------------------------------------------------
/**
This call expects only one record in the result set. If multiple records
are found an excpetion is thrown.
The ResultSet object is automatically closed by this call.
*/
public CountDataPointsForMetricData getOnlyRecord()
{
CountDataPointsForMetricData ret = null;
try
{
if (m_resultSet.next())
ret = new CountDataPointsForMetricData(CountDataPointsForMetricQuery.this, m_resultSet);
if (m_resultSet.next())
throw new GenOrmException("Multiple rows returned in call from CountDataPointsForMetricQuery.ResultSet.getOnlyRecord");
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
close();
return (ret);
}
//------------------------------------------------------------------------
/**
Returns true if there is another record in the result set.
*/
public boolean next()
{
boolean ret = false;
m_onFirstResult = true;
try
{
ret = m_resultSet.next();
}
catch (java.sql.SQLException sqle)
{
throw new GenOrmException(sqle);
}
return (ret);
}
}
//===========================================================================
public class Record implements GenOrmQueryRecord, Attributes
{
protected int m_dpCount;
protected String[] m_attrValues;
protected Record(java.sql.ResultSet rs)
throws java.sql.SQLException
{
m_dpCount = (int)rs.getInt(1);
if (m_serializable)
{
m_attrValues = new String[ATTRIBUTE_COUNT];
m_attrValues[0] = CountDataPointsForMetricQuery.this.m_formatter.toString(s_attributeNames[0], m_dpCount);
}
}
public int getDpCount() { return (m_dpCount); }
//------------------------------------------------------------------------
public String toString()
{
StringBuilder sb = new StringBuilder();
sb.append(" dp_count=\"");
sb.append(m_dpCount);
sb.append("\"");
return (sb.toString().trim());
}
//------------------------------------------------------------------------
/*Attributes*/
public int getIndex(String qName)
{
Integer index = s_attributeIndex.get(qName);
if (index == null)
return (-1);
else
return (index);
}
//------------------------------------------------------------------------
/*Attributes*/
public int getIndex(String uri, String localName)
{
if (uri == null || uri.equals(""))
return (getIndex(localName));
else
return (-1);
}
//------------------------------------------------------------------------
/*Attributes*/
public int getLength() { return (ATTRIBUTE_COUNT); }
//------------------------------------------------------------------------
/*Attributes*/
public String getLocalName(int index)
{
if (index < 0 || index >= ATTRIBUTE_COUNT)
return (null);
else
return (s_attributeNames[index]);
}
//------------------------------------------------------------------------
/*Attributes*/
public String getQName(int index)
{
if (index < 0 || index >= ATTRIBUTE_COUNT)
return (null);
else
return (s_attributeNames[index]);
}
//------------------------------------------------------------------------
/*Attributes*/
public String getType(int index) { return ("CDATA"); }
//------------------------------------------------------------------------
/*Attributes*/
public String getType(String qName) { return ("CDATA"); }
//------------------------------------------------------------------------
/*Attributes*/
public String getType(String uri, String localName) { return ("CDATA"); }
//------------------------------------------------------------------------
/*Attributes*/
public String getURI(int index)
{
if (index < 0 || index >= ATTRIBUTE_COUNT)
return (null);
else
return ("");
}
//------------------------------------------------------------------------
/*Attributes*/
public String getValue(int index)
{
if (index < 0 || index >= ATTRIBUTE_COUNT)
return (null);
else
return (m_attrValues[index]);
}
//------------------------------------------------------------------------
/*Attributes*/
public String getValue(String qName)
{
return (getValue(getIndex(qName)));
}
//------------------------------------------------------------------------
/*Attributes*/
public String getValue(String uri, String localName)
{
return (getValue(getIndex(uri, localName)));
}
}
}