private Builder addItemIf(boolean condition, ItemSpec<?> spec) { if (!condition) { return this; } checkNotNull(spec, "Input display item cannot be null"); checkNotNull(spec.getValue(), "Input display value cannot be null"); if (spec.getNamespace() == null) { spec = spec.withNamespace(latestNs); } Item item = Item.create(spec, latestPath); Identifier id = Identifier.of(item.getPath(), item.getNamespace(), item.getKey()); checkArgument( !entries.containsKey(id), "Display data key (%s) is not unique within the specified path and namespace: %s%s.", item.getKey(), item.getPath(), item.getNamespace()); entries.put(id, item); return this; }
@Override public String toString() { return String.format("%s%s:%s", getPath(), getNamespace(), getKey()); } }
private DisplayDataComparison checkSubset( DisplayData displayData, DisplayData included, String path) { DisplayDataComparison comparison = new DisplayDataComparison(displayData.items()); for (Item item : included.items()) { Item matchedItem = displayData .asMap() .get( DisplayData.Identifier.of( DisplayData.Path.absolute(path), item.getNamespace(), item.getKey())); if (matchedItem != null) { comparison.matched(matchedItem); } else { comparison.missing(item); } } return comparison; }
@Test public void testIdentifierEquality() { new EqualsTester() .addEqualityGroup( DisplayData.Identifier.of(DisplayData.Path.absolute("a"), DisplayDataTest.class, "1"), DisplayData.Identifier.of(DisplayData.Path.absolute("a"), DisplayDataTest.class, "1")) .addEqualityGroup( DisplayData.Identifier.of(DisplayData.Path.absolute("b"), DisplayDataTest.class, "1")) .addEqualityGroup( DisplayData.Identifier.of(DisplayData.Path.absolute("a"), Object.class, "1")) .addEqualityGroup( DisplayData.Identifier.of(DisplayData.Path.absolute("a"), DisplayDataTest.class, "2")) .testEquals(); }