
prerna.util.QueryExecutionUtility Maven / Gradle / Ivy
The newest version!
package prerna.util;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import prerna.engine.api.IDatabaseEngine;
import prerna.engine.api.IHeadersDataRow;
import prerna.engine.api.IRawSelectWrapper;
import prerna.query.querystruct.SelectQueryStruct;
import prerna.rdf.engine.wrappers.WrapperManager;
import prerna.util.sql.AbstractSqlQueryUtil;
public class QueryExecutionUtility {
private static final Logger classLogger = LogManager.getLogger(QueryExecutionUtility.class);
private QueryExecutionUtility() {
}
/*
* Utility methods
*/
/**
* Utility method to flush result set into list
* Assumes single return at index 0
* @param wrapper
* @return
*/
public static String flushToString(IDatabaseEngine engine, SelectQueryStruct qs) {
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
return (String) wrapper.next().getValues()[0];
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return null;
}
/**
* Utility method to flush result set into an integer
* Assumes single return at index 0
* @param wrapper
* @return
*/
public static Integer flushToInteger(IDatabaseEngine engine, SelectQueryStruct qs) {
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
Number val = ((Number) wrapper.next().getValues()[0]);
if(val != null) {
return val.intValue();
}
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return null;
}
public static Long flushToLong(IDatabaseEngine engine, SelectQueryStruct qs) {
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
Number val = ((Number) wrapper.next().getValues()[0]);
if(val != null) {
return val.longValue();
}
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return null;
}
/**
* Utility method to flush result set into list
* Assumes single return at index 0
* @param wrapper
* @return
*/
public static List flushToListString(IDatabaseEngine engine, SelectQueryStruct qs) {
List values = new ArrayList();
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
values.add(wrapper.next().getValues()[0].toString());
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return values;
}
/**
* Utility method to flush result set into set
* Assumes single return at index 0
* @param wrapper
* @return
*/
public static Set flushToSetString(IDatabaseEngine engine, SelectQueryStruct qs, boolean order) {
Set values = null;
if(order) {
values = new TreeSet();
} else {
values = new HashSet();
}
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
values.add(wrapper.next().getValues()[0].toString());
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return values;
}
/**
* Utility method to flush result set into set
* Assumes single return at index 0
* @param wrapper
* @return
*/
public static Set flushToSetString(IDatabaseEngine engine, String query, boolean order) {
Set values = null;
if(order) {
values = new TreeSet();
} else {
values = new HashSet();
}
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, query);
while(wrapper.hasNext()) {
values.add(wrapper.next().getValues()[0].toString());
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return values;
}
public static List flushRsToListOfStrArray(IDatabaseEngine engine, SelectQueryStruct qs) {
List ret = new ArrayList();
IRawSelectWrapper wrapper = null;
try {
wrapper = WrapperManager.getInstance().getRawWrapper(engine, qs);
while(wrapper.hasNext()) {
IHeadersDataRow headerRow = wrapper.next();
Object[] values = headerRow.getValues();
int len = values.length;
String[] strVals = new String[len];
for(int i = 0; i < len; i++) {
strVals[i] = values[i] + "";
}
ret.add(strVals);
}
} catch (Exception e) {
classLogger.error(Constants.STACKTRACE, e);
} finally {
if (wrapper != null) {
try {
wrapper.close();
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
}
return ret;
}
public static List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy