Java
63 строки · 1.9 Кб
1/*
2* Copyright (C) 2009 The Guava Authors
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16
17package com.google.common.collect.testing;
18
19import com.google.common.annotations.GwtCompatible;
20import com.google.common.collect.testing.SampleElements.Unhashables;
21import java.util.Collection;
22import java.util.List;
23
24/**
25* Creates collections containing unhashable sample elements, to be tested.
26*
27* @author Regina O'Dell
28*/
29@GwtCompatible
30@ElementTypesAreNonnullByDefault
31public abstract class TestUnhashableCollectionGenerator<T extends Collection<UnhashableObject>>
32implements TestCollectionGenerator<UnhashableObject> {
33@Override
34public SampleElements<UnhashableObject> samples() {
35return new Unhashables();
36}
37
38@Override
39public T create(Object... elements) {
40UnhashableObject[] array = createArray(elements.length);
41int i = 0;
42for (Object e : elements) {
43array[i++] = (UnhashableObject) e;
44}
45return create(array);
46}
47
48/**
49* Creates a new collection containing the given elements; implement this method instead of {@link
50* #create(Object...)}.
51*/
52protected abstract T create(UnhashableObject[] elements);
53
54@Override
55public UnhashableObject[] createArray(int length) {
56return new UnhashableObject[length];
57}
58
59@Override
60public Iterable<UnhashableObject> order(List<UnhashableObject> insertionOrder) {
61return insertionOrder;
62}
63}
64