/** * Created a detached value for a {@link PGroupedTable} value. * * @param groupedTableType The grouped table type * @param value The value from which a detached value is to be created * @return The detached value * @see PType#getDetachedValue(Object) */ public static <K, V> Pair<K, Iterable<V>> getGroupedDetachedValue( PGroupedTableType<K, V> groupedTableType, Pair<K, Iterable<V>> value) { PTableType<K, V> tableType = groupedTableType.getTableType(); List<V> detachedIterable = Lists.newArrayList(); PType<V> valueType = tableType.getValueType(); for (V v : value.second()) { detachedIterable.add(valueType.getDetachedValue(v)); } return Pair.of( tableType.getKeyType().getDetachedValue(value.first()), (Iterable<V>) detachedIterable); }