@Override public List<V> replaceValues(K key, Iterable<? extends V> values) { synchronized (mutex) { return delegate().replaceValues(key, values); // copy not synchronized } }
/** * Sets distinct values for {@code type}, so that when a class {@code Foo} is tested for {@link * Object#equals} and {@link Object#hashCode}, and its construction requires a parameter of {@code * type}, the distinct values of {@code type} can be passed as parameters to create {@code Foo} * instances that are unequal. * * <p>Calling {@code setDistinctValues(type, v1, v2)} also sets the default value for {@code type} * that's used for {@link #testNulls}. * * <p>Only necessary for types where {@link ClassSanityTester} doesn't already know how to create * distinct values. * * @return this tester instance * @since 17.0 */ public <T> ClassSanityTester setDistinctValues(Class<T> type, T value1, T value2) { checkNotNull(type); checkNotNull(value1); checkNotNull(value2); checkArgument(!Objects.equal(value1, value2), "Duplicate value provided."); distinctValues.replaceValues(type, ImmutableList.of(value1, value2)); setDefault(type, value1); return this; }
@CanIgnoreReturnValue @Override public List<V> replaceValues(K key, Iterable<? extends V> values) { return delegate().replaceValues(key, values); } }
@Override public List<V> replaceValues(K key, Iterable<? extends V> values) { synchronized (mutex) { return delegate().replaceValues(key, values); // copy not synchronized } }
@Override public <U extends T> List<U> replaceValues(Class<U> key, Iterable<? extends U> values) { return convertList(key, inner.replaceValues(key, values)); }
/** * Sets the inputs for a given bind, replacing any previous inputs * */ public void setBinds(SimpleUri bindUri, Iterable<Input> inputs) { Set<Input> uniqueInputs = Sets.newLinkedHashSet(inputs); // Clear existing usages of the given inputs Iterator<Input> iterator = uriBoundInputs.values().iterator(); while (iterator.hasNext()) { Input i = iterator.next(); if (uniqueInputs.contains(i)) { iterator.remove(); } } uriBoundInputs.replaceValues(bindUri, uniqueInputs); }
@CanIgnoreReturnValue @Override public List<V> replaceValues(K key, Iterable<? extends V> values) { return delegate().replaceValues(key, values); } }
@CanIgnoreReturnValue @Override public List<V> replaceValues(K key, Iterable<? extends V> values) { return delegate().replaceValues(key, values); } }
@MapFeature.Require({SUPPORTS_PUT, SUPPORTS_REMOVE}) public void testReplaceValuesPreservesOrder() { @SuppressWarnings("unchecked") List<V> values = Arrays.asList(v3(), v1(), v4()); for (K k : sampleKeys()) { resetContainer(); multimap().replaceValues(k, values); assertGet(k, values); } } }
public void testSynchronizedListMultimap() { ListMultimap<String, Integer> multimap = Multimaps.synchronizedListMultimap(ArrayListMultimap.<String, Integer>create()); multimap.putAll("foo", Arrays.asList(3, -1, 2, 4, 1)); multimap.putAll("bar", Arrays.asList(1, 2, 3, 1)); assertThat(multimap.removeAll("foo")).containsExactly(3, -1, 2, 4, 1).inOrder(); assertFalse(multimap.containsKey("foo")); assertThat(multimap.replaceValues("bar", Arrays.asList(6, 5))) .containsExactly(1, 2, 3, 1) .inOrder(); assertThat(multimap.get("bar")).containsExactly(6, 5).inOrder(); }
@Override public List<V> replaceValues( K key, Iterable<? extends V> values) { synchronized (mutex) { return delegate().replaceValues(key, values); // copy not synchronized } } private static final long serialVersionUID = 0;
@Override public List<String> replaceValues(String key, Iterable<? extends String> values) { return delegate().replaceValues(key, values); } }
@Override public List<V> replaceValues( K key, Iterable<? extends V> values) { synchronized (mutex) { return delegate().replaceValues(key, values); // copy not synchronized } } private static final long serialVersionUID = 0;
protected Collection<String> getValues(CommandLine commandLine, String trigger) { List<String> optionValues = newArrayList(commandLine.<String>getValues(trigger)); List<Object> values = lastOptionValues.replaceValues(trigger, optionValues); return optionValues.subList(values.size(), optionValues.size()); } }
@Override public List<V> replaceValues( K key, Iterable<? extends V> values) { synchronized (mutex) { return delegate().replaceValues(key, values); // copy not synchronized } } private static final long serialVersionUID = 0;
@Override public List<String> replaceValues(String key, Iterable<? extends String> values) { return delegate().replaceValues(key, values); } }
@Override public List<V> replaceValues(K key, Iterable<? extends V> values) { return delegate().replaceValues(key, values); } }
@CanIgnoreReturnValue @Override public List<V> replaceValues(K key, Iterable<? extends V> values) { return delegate().replaceValues(key, values); } }
@MapFeature.Require({SUPPORTS_PUT, SUPPORTS_REMOVE}) public void testReplaceValuesPreservesOrder() { @SuppressWarnings("unchecked") List<V> values = Arrays.asList(v3(), v1(), v4()); for (K k : sampleKeys()) { resetContainer(); multimap().replaceValues(k, values); assertGet(k, values); } } }
private Record toRecord(SolrDocument doc) { Record record = new Record(); for (String key : doc.keySet()) { record.getFields().replaceValues(key, doc.getFieldValues(key)); } return record; }