@SuppressWarnings("unchecked") final Iterable<List<Object>> iterable2 = (Iterable<List<Object>>) (Iterable) iterable; return new ListIteratorCursor(iterable2.iterator()); case MAP: @SuppressWarnings("unchecked") final Iterable<Map<String, Object>>
@Override public Array createArray(AvaticaType elementType, Iterable<Object> elements) { final ArrayType array = ColumnMetaData.array(elementType, elementType.name, Rep.ARRAY); final List<ColumnMetaData> types = Collections.singletonList(ColumnMetaData.dummy(array, true)); // Avoid creating a new List if we already have a List List<Object> elementList; if (elements instanceof List) { elementList = (List<Object>) elements; } else { elementList = new ArrayList<>(); for (Object element : elements) { elementList.add(element); } } try (ListIteratorCursor cursor = new ListIteratorCursor(createRowForArrayData(elementList))) { List<Accessor> accessor = cursor.createAccessors(types, Unsafe.localCalendar(), this); assert 1 == accessor.size(); return new ArrayImpl(elementList, (ArrayAccessor) accessor.get(0)); } }
@SuppressWarnings("unchecked") final Iterable<List<Object>> iterable2 = (Iterable<List<Object>>) (Iterable) iterable; return new ListIteratorCursor(iterable2.iterator()); case MAP: @SuppressWarnings("unchecked") final Iterable<Map<String, Object>>
@Override public Array createArray(AvaticaType elementType, Iterable<Object> elements) { final ArrayType array = ColumnMetaData.array(elementType, elementType.name, Rep.ARRAY); final List<ColumnMetaData> types = Collections.singletonList(ColumnMetaData.dummy(array, true)); // Avoid creating a new List if we already have a List List<Object> elementList; if (elements instanceof List) { elementList = (List<Object>) elements; } else { elementList = new ArrayList<>(); for (Object element : elements) { elementList.add(element); } } try (ListIteratorCursor cursor = new ListIteratorCursor(createRowForArrayData(elementList))) { List<Accessor> accessor = cursor.createAccessors(types, Unsafe.localCalendar(), this); assert 1 == accessor.size(); return new ArrayImpl(elementList, (ArrayAccessor) accessor.get(0)); } }
@SuppressWarnings("unchecked") final Iterable<List<Object>> iterable2 = (Iterable<List<Object>>) (Iterable) iterable; return new ListIteratorCursor(iterable2.iterator()); case MAP: @SuppressWarnings("unchecked") final Iterable<Map<String, Object>>
@Override public ResultSet create(AvaticaType elementType, Iterable<Object> elements) throws SQLException { // The ColumnMetaData for offset "1" in the ResultSet for an Array. ScalarType arrayOffsetType = ColumnMetaData.scalar(Types.INTEGER, "INTEGER", Rep.PRIMITIVE_INT); // Two columns (types) in the ResultSet we will create List<ColumnMetaData> types = Arrays.asList(ColumnMetaData.dummy(arrayOffsetType, false), ColumnMetaData.dummy(elementType, true)); List<List<Object>> rows = createResultSetRowsForArrayData(elements); // `(List<Object>) rows` is a compile error. @SuppressWarnings({ "unchecked", "rawtypes" }) List<Object> untypedRows = (List<Object>) ((List) rows); try (ListIteratorCursor cursor = new ListIteratorCursor(rows.iterator())) { final String sql = "MOCKED"; QueryState state = new QueryState(sql); Meta.Signature signature = new Meta.Signature(types, sql, Collections.<AvaticaParameter>emptyList(), Collections.<String, Object>emptyMap(), Meta.CursorFactory.LIST, Meta.StatementType.SELECT); AvaticaResultSetMetaData resultSetMetaData = new AvaticaResultSetMetaData(null, sql, signature); Meta.Frame frame = new Meta.Frame(0, true, untypedRows); AvaticaResultSet resultSet = new AvaticaResultSet(null, state, signature, resultSetMetaData, timeZone, frame); resultSet.execute2(cursor, types); return resultSet; } }
@Override public ResultSet create(AvaticaType elementType, Iterable<Object> elements) throws SQLException { // The ColumnMetaData for offset "1" in the ResultSet for an Array. ScalarType arrayOffsetType = ColumnMetaData.scalar(Types.INTEGER, "INTEGER", Rep.PRIMITIVE_INT); // Two columns (types) in the ResultSet we will create List<ColumnMetaData> types = Arrays.asList(ColumnMetaData.dummy(arrayOffsetType, false), ColumnMetaData.dummy(elementType, true)); List<List<Object>> rows = createResultSetRowsForArrayData(elements); // `(List<Object>) rows` is a compile error. @SuppressWarnings({ "unchecked", "rawtypes" }) List<Object> untypedRows = (List<Object>) ((List) rows); try (ListIteratorCursor cursor = new ListIteratorCursor(rows.iterator())) { final String sql = "MOCKED"; QueryState state = new QueryState(sql); Meta.Signature signature = new Meta.Signature(types, sql, Collections.<AvaticaParameter>emptyList(), Collections.<String, Object>emptyMap(), Meta.CursorFactory.LIST, Meta.StatementType.SELECT); AvaticaResultSetMetaData resultSetMetaData = new AvaticaResultSetMetaData(null, sql, signature); Meta.Frame frame = new Meta.Frame(0, true, untypedRows); AvaticaResultSet resultSet = new AvaticaResultSet(null, state, signature, resultSetMetaData, timeZone, frame); resultSet.execute2(cursor, types); return resultSet; } }
Collections.<Object>singletonList(array2), Collections.<Object>singletonList(array3)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(arrayMetaData), Unsafe.localCalendar(), factory);
Collections.<Object>singletonList(array2), Collections.<Object>singletonList(array3)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(arrayMetaData), Unsafe.localCalendar(), factory);
Collections.<Object>singletonList(struct4)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(structMetaData), Unsafe.localCalendar(), null);
Collections.<Object>singletonList(array2)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(arrayMetaData), Unsafe.localCalendar(), factory);
Collections.<Object>singletonList(struct4)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(structMetaData), Unsafe.localCalendar(), null);
Collections.<Object>singletonList(array2)); try (Cursor cursor = new ListIteratorCursor(rows.iterator())) { List<Accessor> accessors = cursor.createAccessors(Collections.singletonList(arrayMetaData), Unsafe.localCalendar(), factory);