Java

Форк
0
/
TestEnumMapGenerator.java 
81 строка · 2.5 Кб
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

17
package com.google.common.collect.testing;
18

19
import static com.google.common.collect.testing.Helpers.orderEntriesByKey;
20

21
import com.google.common.annotations.GwtCompatible;
22
import java.util.List;
23
import java.util.Map;
24
import java.util.Map.Entry;
25

26
/**
27
 * Implementation helper for {@link TestMapGenerator} for use with enum maps.
28
 *
29
 * @author Kevin Bourrillion
30
 */
31
@GwtCompatible
32
@ElementTypesAreNonnullByDefault
33
public abstract class TestEnumMapGenerator implements TestMapGenerator<AnEnum, String> {
34

35
  @Override
36
  public SampleElements<Entry<AnEnum, String>> samples() {
37
    return new SampleElements<>(
38
        Helpers.mapEntry(AnEnum.A, "January"),
39
        Helpers.mapEntry(AnEnum.B, "February"),
40
        Helpers.mapEntry(AnEnum.C, "March"),
41
        Helpers.mapEntry(AnEnum.D, "April"),
42
        Helpers.mapEntry(AnEnum.E, "May"));
43
  }
44

45
  @Override
46
  public final Map<AnEnum, String> create(Object... entries) {
47
    @SuppressWarnings("unchecked")
48
    Entry<AnEnum, String>[] array = (Entry<AnEnum, String>[]) new Entry<?, ?>[entries.length];
49
    int i = 0;
50
    for (Object o : entries) {
51
      @SuppressWarnings("unchecked")
52
      Entry<AnEnum, String> e = (Entry<AnEnum, String>) o;
53
      array[i++] = e;
54
    }
55
    return create(array);
56
  }
57

58
  protected abstract Map<AnEnum, String> create(Entry<AnEnum, String>[] entries);
59

60
  @Override
61
  @SuppressWarnings("unchecked")
62
  public final Entry<AnEnum, String>[] createArray(int length) {
63
    return (Entry<AnEnum, String>[]) new Entry<?, ?>[length];
64
  }
65

66
  @Override
67
  public final AnEnum[] createKeyArray(int length) {
68
    return new AnEnum[length];
69
  }
70

71
  @Override
72
  public final String[] createValueArray(int length) {
73
    return new String[length];
74
  }
75

76
  /** Returns the elements sorted in natural order. */
77
  @Override
78
  public Iterable<Entry<AnEnum, String>> order(List<Entry<AnEnum, String>> insertionOrder) {
79
    return orderEntriesByKey(insertionOrder);
80
  }
81
}
82

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.