@Override public String toString() { return root.getQualifier(); }
public Builder addType(ResourceType type) { requireNonNull(type); checkArgument(!types.contains(type), String.format("%s is already registered", type.getQualifier())); types.add(type); return this; }
public ResourceTypes(ResourceTypeTree[] trees) { requireNonNull(trees); Map<String, ResourceTypeTree> treeMap = new LinkedHashMap<>(); Map<String, ResourceType> typeMap = new LinkedHashMap<>(); Collection<ResourceType> rootsSet = new LinkedHashSet<>(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = unmodifiableMap(new LinkedHashMap<>(treeMap)); typeByQualifier = unmodifiableMap(new LinkedHashMap<>(typeMap)); rootTypes = unmodifiableList(new ArrayList<>(rootsSet)); }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }
@Override public boolean isQualifierPresent(String qualifier) { return rootResourceTypes.stream() .anyMatch(resourceType -> qualifier.equals(resourceType.getQualifier())); }
@Override public ResourceType get(String qualifier) { return allResourceTypes.stream() .filter(resourceType -> qualifier.equals(resourceType.getQualifier())) .findAny().orElse(null); }
@Test public void get() { assertThat(types.get(Qualifiers.PROJECT).getQualifier()).isEqualTo(Qualifiers.PROJECT); // does not return null assertThat(types.get("xxx").getQualifier()).isEqualTo("xxx"); }
private void writeQualifiers(JsonWriter json) { json.name("qualifiers").beginArray(); for (ResourceType rootType : resourceTypes.getRoots()) { json.value(rootType.getQualifier()); } json.endArray(); }
@Test public void shouldCreateWithDefaults() { ResourceType def = ResourceType.builder("qualifier") .build(); assertThat(def.getQualifier()).isEqualTo("qualifier"); assertThat(def.getIconPath()).isEqualTo("/images/q/qualifier.png"); assertThat(def.hasSourceCode()).isFalse(); }
@Test public void shouldCreate() { ResourceType def = ResourceType.builder("qualifier") .setIconPath("/custom-icon.png") .hasSourceCode() .setProperty("supportsMeasureFilters", "true") .setProperty("anotherProperty", "foo") .build(); assertThat(def.getQualifier()).isEqualTo("qualifier"); assertThat(def.getIconPath()).isEqualTo("/custom-icon.png"); assertThat(def.hasSourceCode()).isTrue(); assertThat(def.getStringProperty("anotherProperty")).isEqualTo("foo"); }
@Override public String toString() { return root.getQualifier(); }
@Override public String toString() { return root.getQualifier(); }
public Builder addType(ResourceType type) { Preconditions.checkNotNull(type); Preconditions.checkArgument(!types.contains(type), String.format("%s is already registered", type.getQualifier())); types.add(type); return this; }
public Builder addType(ResourceType type) { requireNonNull(type); checkArgument(!types.contains(type), String.format("%s is already registered", type.getQualifier())); types.add(type); return this; }
public ResourceTypes(ResourceTypeTree[] trees) { Preconditions.checkNotNull(trees); Map<String, ResourceTypeTree> treeMap = Maps.newHashMap(); Map<String, ResourceType> typeMap = Maps.newLinkedHashMap(); Collection<ResourceType> rootsSet = Sets.newHashSet(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = ImmutableMap.copyOf(treeMap); typeByQualifier = ImmutableMap.copyOf(typeMap); rootTypes = ImmutableList.copyOf(rootsSet); }
public ResourceTypes(ResourceTypeTree[] trees) { requireNonNull(trees); Map<String, ResourceTypeTree> treeMap = new LinkedHashMap<>(); Map<String, ResourceType> typeMap = new LinkedHashMap<>(); Collection<ResourceType> rootsSet = new LinkedHashSet<>(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = unmodifiableMap(new LinkedHashMap<>(treeMap)); typeByQualifier = unmodifiableMap(new LinkedHashMap<>(typeMap)); rootTypes = unmodifiableList(new ArrayList<>(rootsSet)); }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }
private void writeQualifiers(JsonWriter json) { json.name("qualifiers").beginArray(); for (ResourceType rootType : resourceTypes.getRoots()) { json.value(rootType.getQualifier()); } json.endArray(); }