@SuppressWarnings("incomplete-switch") public static ValueBoundaryScanner getScanner(ValueBoundaryDef vbDef, Order order) throws HiveException { PrimitiveObjectInspector pOI = (PrimitiveObjectInspector) vbDef.getOI(); switch(pOI.getPrimitiveCategory()) { case BYTE: case INT: case LONG: case SHORT: case TIMESTAMP: return new LongValueBoundaryScanner(vbDef, order, vbDef.getExpressionDef()); case DOUBLE: case FLOAT: return new DoubleValueBoundaryScanner(vbDef, order, vbDef.getExpressionDef()); case DECIMAL: return new HiveDecimalValueBoundaryScanner(vbDef, order, vbDef.getExpressionDef()); case STRING: return new StringValueBoundaryScanner(vbDef, order, vbDef.getExpressionDef()); } throw new HiveException( String.format("Internal Error: attempt to setup a Window for datatype %s", pOI.getPrimitiveCategory())); } }