aboutsummaryrefslogtreecommitdiff
path: root/resources/src/main/java/org/robolectric/res/ResBunch.java
blob: 5dd68fbd0c21174e38b6faf529ab22b255ec5839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package org.robolectric.res;

import java.util.LinkedHashMap;
import java.util.Map;
import javax.annotation.Nonnull;

public class ResBunch {
  private final Map<String, ResBundle> types = new LinkedHashMap<>();

  public void put(ResName resName, TypedResource value) {
    ResBundle bundle = getBundle(resName.type);
    bundle.put(resName, value);
  }

  private ResBundle getBundle(String attrType) {
    ResBundle bundle = types.get(attrType);
    if (bundle == null) {
      bundle = new ResBundle();
      types.put(attrType, bundle);
    }
    return bundle;
  }

  public TypedResource get(@Nonnull ResName resName, String qualifiers) {
    ResBundle bundle = getBundle(resName.type);
    return bundle.get(resName, qualifiers);
  }

  void receive(ResourceTable.Visitor visitor) {
    for (ResBundle resBundle : types.values()) {
      resBundle.receive(visitor);
    }
  }
}