1 // © 2019 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 package org.unicode.icu.tool.cldrtoicu.testing;
4 
5 import java.util.HashMap;
6 import java.util.Map;
7 
8 import org.unicode.cldr.api.CldrValue;
9 import org.unicode.icu.tool.cldrtoicu.PathValueTransformer;
10 import org.unicode.icu.tool.cldrtoicu.RbPath;
11 
12 import com.google.common.collect.ImmutableList;
13 
14 public final class FakeTransformer extends PathValueTransformer {
15     private final Map<CldrValue, ImmutableList<Result>> resultMap = new HashMap<>();
16     private final Map<RbPath, ImmutableList<Result>> fallbackMap = new HashMap<>();
17 
addResults(CldrValue value, Result... results)18     public void addResults(CldrValue value, Result... results) {
19         resultMap.put(value, ImmutableList.copyOf(results));
20     }
21 
addFallbacks(String path, Result... results)22     public void addFallbacks(String path, Result... results) {
23         fallbackMap.put(RbPath.parse(path), ImmutableList.copyOf(results));
24     }
25 
transform(CldrValue value)26     @Override public ImmutableList<Result> transform(CldrValue value) {
27         return resultMap.getOrDefault(value, ImmutableList.of());
28     }
29 
transform(CldrValue value, DynamicVars ignored)30     @Override public ImmutableList<Result> transform(CldrValue value, DynamicVars ignored) {
31         return resultMap.getOrDefault(value, ImmutableList.of());
32     }
33 
getFallbackResultsFor(RbPath key, DynamicVars ignored)34     @Override public ImmutableList<Result> getFallbackResultsFor(RbPath key, DynamicVars ignored) {
35         return fallbackMap.getOrDefault(key, ImmutableList.of());
36     }
37 }
38