package uk.ac.imperial.lsds.streamsql.util; import java.util.ArrayList; import java.util.List; import uk.ac.imperial.lsds.seep.comm.serialization.DataTuple; import uk.ac.imperial.lsds.streamsql.conversion.DoubleConversion; import uk.ac.imperial.lsds.streamsql.conversion.TypeConversion; import uk.ac.imperial.lsds.streamsql.expressions.IValueExpression; import uk.ac.imperial.lsds.streamsql.expressions.ValueExpression; public class Util { public static String generateTupleString(DataTuple tuple) { return tuple.getPayload().toString(); } public static TypeConversion getDominantNumericType(List<IValueExpression> veList) { TypeConversion wrapper = veList.get(0).getType(); for (int i = 1; i < veList.size(); i++) { final TypeConversion currentType = veList.get(1).getType(); if (isDominant(currentType, wrapper)) wrapper = currentType; } return wrapper; } /* * Does bigger dominates over smaller? For (bigger, smaller) = (double, * long) answer is yes. */ private static boolean isDominant(TypeConversion bigger, TypeConversion smaller) { // for now we only have two numeric types: double and long if (bigger instanceof DoubleConversion) return true; else return false; } public static <T extends Comparable<T>> List<IValueExpression> listTypeErasure( List<IValueExpression<T>> input) { final List<IValueExpression> result = new ArrayList<IValueExpression>(); for (final IValueExpression ve : input) result.add(ve); return result; } }