public AreasMapComparationResult findDifference(Map<Area, ColorModel> previous, Map<Area, ColorModel> current) {
MapDifference<Area, ColorModel> differences = Maps.difference(previous, current);
checkDifferencesCount(differences);
if (isAdded(differences)) {
return getAdded(differences);
}
if (isRemoved(differences)) {
return getRemoved(differences);
}
if (isChanged(differences)) {
return getChanged(differences);
}
return AreasMapComparationResult.ofSame();
}
java类com.google.common.collect.MapDifference的实例源码
AreasMapsComparator.java 文件源码
项目:empiria.player
阅读 33
收藏 0
点赞 0
评论 0
JsonCompareUtilTest.java 文件源码
项目:soundwave
阅读 31
收藏 0
点赞 0
评论 0
@Test
public void TestDiff() {
HashMap<String, Object> map1 = new HashMap<>();
HashMap<String, Object> map2 = new HashMap<>();
map1.put("bbbb", "cccc");
map1.put("xxx", "aaa");
map2.put("xxx", "aa");
map2.put("cccc", "bbbb");
map1.put("dict", ImmutableMap.builder().put("a", 1).put("b", 2)
.put("em", ImmutableMap.builder().put("c", 3).build()).build());
map2.put("dict", ImmutableMap.builder().put("a", 1).put("b", 3)
.put("em", ImmutableMap.builder().put("c", 4).put("d", 5).build()).build());
MapDifference diff = Maps.difference(map1, map2);
Map diffMap = new HashMap();
JsonCompareUtil.getDetailsDiff(map1, map2, diffMap, "");
Assert.assertTrue(diffMap.containsKey("bbbb"));
Assert.assertTrue(diffMap.containsKey("xxx"));
Assert.assertTrue(diffMap.containsKey("cccc"));
Assert.assertTrue(diffMap.containsKey("dict.b"));
Assert.assertTrue(diffMap.containsKey("dict.em.c"));
Assert.assertTrue(diffMap.containsKey("dict.em.d"));
Assert.assertEquals(6, diffMap.size());
}
BaseTableSteps.java 文件源码
项目:satisfy
阅读 33
收藏 0
点赞 0
评论 0
private List<WebElement> findMatchedRows(List<RowWebElement> matchedRows,
Map<String, String> rowToFind) {
List<WebElement> resultedRows = new ArrayList<WebElement>();
for (RowWebElement rowCandidate : matchedRows) {
Map<String, String> cellsCandidates = cellsFromRow(rowCandidate);
MapDifference<String, String> diff = Maps.difference
(cellsCandidates, rowToFind);
if (diff.areEqual()) {
resultedRows.add(rowCandidate.getRow());
} else if (diff.entriesOnlyOnRight().isEmpty() && diff
.entriesDiffering().isEmpty()) {
resultedRows.add(rowCandidate.getRow());
} else if (rowCandidate.hasSubRows()) {
for (String commonKey : diff.entriesInCommon().keySet()) {
rowToFind.remove(commonKey);
}
return findMatchedRows(getSubRowsFor(rowCandidate), diff
.entriesOnlyOnRight().isEmpty() ? rowToFind : diff
.entriesOnlyOnRight());
}
}
return resultedRows;
}
JobDiff.java 文件源码
项目:Mastering-Mesos
阅读 41
收藏 0
点赞 0
评论 0
private static JobDiff computeUnscoped(
Map<Integer, ITaskConfig> currentState,
IJobKey job,
Map<Integer, ITaskConfig> proposedState) {
requireNonNull(job);
requireNonNull(proposedState);
MapDifference<Integer, ITaskConfig> diff = Maps.difference(currentState, proposedState);
Map<Integer, ITaskConfig> removedInstances = ImmutableMap.<Integer, ITaskConfig>builder()
.putAll(diff.entriesOnlyOnLeft())
.putAll(Maps.transformValues(diff.entriesDiffering(), JobDiff.leftValue()))
.build();
Set<Integer> addedInstances = ImmutableSet.<Integer>builder()
.addAll(diff.entriesOnlyOnRight().keySet())
.addAll(diff.entriesDiffering().keySet())
.build();
return new JobDiff(
removedInstances,
addedInstances,
ImmutableMap.copyOf(diff.entriesInCommon()));
}
MapDifferenceSupplier.java 文件源码
项目:kafka-connect-solr
阅读 37
收藏 0
点赞 0
评论 0
@Override
public String get() {
StringBuilder builder = new StringBuilder();
if (!difference.entriesDiffering().isEmpty()) {
builder.append("Differing:\n");
for (Map.Entry<String, MapDifference.ValueDifference<SolrInputField>> diff : difference.entriesDiffering().entrySet()) {
builder.append(" ");
builder.append(diff.getKey());
builder.append('\n');
builder.append(" left : ");
builder.append(diff.getValue().leftValue());
builder.append('\n');
builder.append(" right : ");
builder.append(diff.getValue().rightValue());
builder.append('\n');
}
}
return builder.toString();
}
SolrInputFieldEquivalence.java 文件源码
项目:kafka-connect-solr
阅读 37
收藏 0
点赞 0
评论 0
@Override
protected boolean doEquivalent(SolrInputField o1, SolrInputField o2) {
if (o1.getValue() instanceof SolrInputDocument) {
if (!(o2.getValue() instanceof SolrInputDocument)) {
return false;
}
final MapDifference<String, SolrInputField> difference = Maps.difference(
(SolrInputDocument) o1.getValue(),
(SolrInputDocument) o2.getValue(),
this
);
if (!difference.areEqual()) {
return false;
}
} else {
if (o1.getValue() != o2.getValue()) {
return false;
}
}
return true;
}
DocumentObserver.java 文件源码
项目:fluo-recipes
阅读 24
收藏 0
点赞 0
评论 0
private static Map<String, Long> calculateChanges(Map<String, Long> newCounts,
Map<String, Long> currCounts) {
Map<String, Long> changes = new HashMap<>();
// guava Maps class
MapDifference<String, Long> diffs = Maps.difference(currCounts, newCounts);
// compute the diffs for words that changed
changes.putAll(Maps.transformValues(diffs.entriesDiffering(),
vDiff -> vDiff.rightValue() - vDiff.leftValue()));
// add all new words
changes.putAll(diffs.entriesOnlyOnRight());
// subtract all words no longer present
changes.putAll(Maps.transformValues(diffs.entriesOnlyOnLeft(), l -> l * -1));
return changes;
}
TestHistoryDifferenceCollectionMatcher.java 文件源码
项目:owsi-core-parent
阅读 30
收藏 0
点赞 0
评论 0
protected void describeMismatchSafely(String prefix, MapDifference<TestHistoryDifferenceKey, Collection<TestHistoryDifferenceDescription>> difference, Description mismatchDescription) {
appendIfNonEmpty(mismatchDescription, prefix, "missing: ", difference.entriesOnlyOnLeft());
appendIfNonEmpty(mismatchDescription, prefix, "unexpected: ", difference.entriesOnlyOnRight());
for (Entry<TestHistoryDifferenceKey, ValueDifference<Collection<TestHistoryDifferenceDescription>>> entryDiffering : difference.entriesDiffering().entrySet()) {
mismatchDescription.appendText(prefix).appendText("differing from expected: ")
.appendValue(entryDiffering.getKey());
ValueDifference<Collection<TestHistoryDifferenceDescription>> valueDifference = entryDiffering.getValue();
Collection<TestHistoryDifferenceDescription> expectedCollection = valueDifference.leftValue();
Collection<TestHistoryDifferenceDescription> actualCollection = valueDifference.rightValue();
String newPrefix = prefix + "\t\t";
if (expectedCollection.size() == 1 && actualCollection.size() == 1) {
TestHistoryDifferenceDescription expected = Iterables.getOnlyElement(expectedCollection);
TestHistoryDifferenceDescription actual = Iterables.getOnlyElement(actualCollection);
describeMismatchSafely(newPrefix, expected, actual, mismatchDescription);
} else {
mismatchDescription.appendText(newPrefix).appendText("expected: ").appendValue(valueDifference.leftValue());
mismatchDescription.appendText(newPrefix).appendText("actual: ").appendValue(valueDifference.rightValue());
}
}
}
CDCJdbcRunnable.java 文件源码
项目:datacollector
阅读 31
收藏 0
点赞 0
评论 0
private boolean getDiff(String captureInstanceName, Map<String, Integer> sourceTableColumnInfo, Map<String, Integer> cdcTableColumnInfo) {
MapDifference<String, Integer> diff = Maps.difference(sourceTableColumnInfo, cdcTableColumnInfo);
if (!diff.areEqual()) {
if (LOG.isTraceEnabled()) {
LOG.trace(
"Detected drift for table {} - new columns: {}, drop columns: {}",
captureInstanceName,
StringUtils.join(diff.entriesOnlyOnLeft().keySet(), ","),
StringUtils.join(diff.entriesOnlyOnRight().keySet(), ",")
);
}
return true;
}
return false;
}
GrokParserTest.java 文件源码
项目:metron
阅读 34
收藏 0
点赞 0
评论 0
public boolean compare(JSONObject expected, JSONObject actual) {
MapDifference mapDifferences = Maps.difference(expected, actual);
if (mapDifferences.entriesOnlyOnLeft().size() > 0) Assert.fail("Expected JSON has extra parameters: " + mapDifferences.entriesOnlyOnLeft());
if (mapDifferences.entriesOnlyOnRight().size() > 0) Assert.fail("Actual JSON has extra parameters: " + mapDifferences.entriesOnlyOnRight());
Map actualDifferences = new HashMap();
if (mapDifferences.entriesDiffering().size() > 0) {
Map differences = Collections.unmodifiableMap(mapDifferences.entriesDiffering());
for (Object key : differences.keySet()) {
Object expectedValueObject = expected.get(key);
Object actualValueObject = actual.get(key);
if (expectedValueObject instanceof Long || expectedValueObject instanceof Integer) {
Long expectedValue = Long.parseLong(expectedValueObject.toString());
Long actualValue = Long.parseLong(actualValueObject.toString());
if (!expectedValue.equals(actualValue)) {
actualDifferences.put(key, differences.get(key));
}
} else {
actualDifferences.put(key, differences.get(key));
}
}
}
if (actualDifferences.size() > 0) Assert.fail("Expected and Actual JSON values don't match: " + actualDifferences);
return true;
}
WSDLImportsComparator.java 文件源码
项目:carbon-governance
阅读 32
收藏 0
点赞 0
评论 0
private void processChanges(DefaultComparison comparison, DefaultComparison.DefaultSection section,
Map<String, MapDifference.ValueDifference<Vector<Import>>> changes) {
if (changes.size() > 0) {
section.addSectionSummary(Comparison.SectionType.CONTENT_CHANGE, ComparatorConstants.CHANGED_IMPORTS);
DefaultComparison.DefaultSection.DefaultTextChangeContent content = section.newTextChangeContent();
DefaultComparison.DefaultSection.DefaultTextChange change = section.newTextChange();
Vector<Import> left = new Vector<>();
Vector<Import> right = new Vector<>();
for (MapDifference.ValueDifference<Vector<Import>> diff : changes.values()) {
left.add(diff.leftValue().firstElement());
right.add(diff.rightValue().firstElement());
}
change.setOriginal(getImportsOnly(left));
change.setChanged(getImportsOnly(right));
content.setContent(change);
section.addContent(Comparison.SectionType.CONTENT_CHANGE, content);
}
}
WSDLOperationComparator.java 文件源码
项目:carbon-governance
阅读 37
收藏 0
点赞 0
评论 0
private boolean isDifferent(Map<String, Fault> left, Map<String, Fault> right) {
if (left != null && right != null && left.size() != right.size()) {
return true;
} else {
MapDifference<String, Fault> mapDiff = Maps.difference(left, right);
if (!mapDiff.areEqual()) {
return true;
} else {
for (String name : mapDiff.entriesInCommon().keySet()) {
if (isDifferent(left.get(name), right.get(name))) {
return true;
}
}
}
}
return false;
}
ModIdMapPacket.java 文件源码
项目:RuneCraftery
阅读 44
收藏 0
点赞 0
评论 0
@Override
public void execute(INetworkManager network, FMLNetworkHandler handler, NetHandler netHandler, String userName)
{
byte[] allData = Bytes.concat(partials);
GameData.initializeServerGate(1);
try
{
NBTTagCompound serverList = CompressedStreamTools.func_74792_a(allData);
NBTTagList list = serverList.func_74761_m("List");
Set<ItemData> itemData = GameData.buildWorldItemData(list);
GameData.validateWorldSave(itemData);
MapDifference<Integer, ItemData> serverDifference = GameData.gateWorldLoadingForValidation();
if (serverDifference!=null)
{
FMLCommonHandler.instance().disconnectIDMismatch(serverDifference, netHandler, network);
}
}
catch (IOException e)
{
}
}
GameData.java 文件源码
项目:RuneCraftery
阅读 41
收藏 0
点赞 0
评论 0
public static MapDifference<Integer, ItemData> gateWorldLoadingForValidation()
{
try
{
serverValidationLatch.await();
if (!isSaveValid)
{
return difference;
}
}
catch (InterruptedException e)
{
}
difference = null;
return null;
}
ModIdMapPacket.java 文件源码
项目:RuneCraftery
阅读 51
收藏 0
点赞 0
评论 0
@Override
public void execute(INetworkManager network, FMLNetworkHandler handler, NetHandler netHandler, String userName)
{
byte[] allData = Bytes.concat(partials);
GameData.initializeServerGate(1);
try
{
NBTTagCompound serverList = CompressedStreamTools.decompress(allData);
NBTTagList list = serverList.getTagList("List");
Set<ItemData> itemData = GameData.buildWorldItemData(list);
GameData.validateWorldSave(itemData);
MapDifference<Integer, ItemData> serverDifference = GameData.gateWorldLoadingForValidation();
if (serverDifference!=null)
{
FMLCommonHandler.instance().disconnectIDMismatch(serverDifference, netHandler, network);
}
}
catch (IOException e)
{
}
}
GameData.java 文件源码
项目:RuneCraftery
阅读 34
收藏 0
点赞 0
评论 0
public static MapDifference<Integer, ItemData> gateWorldLoadingForValidation()
{
try
{
serverValidationLatch.await();
if (!isSaveValid)
{
return difference;
}
}
catch (InterruptedException e)
{
}
difference = null;
return null;
}
Conflict.java 文件源码
项目:jpmml-evaluator
阅读 41
收藏 0
点赞 0
评论 0
@Override
public String toString(){
ToStringHelper helper = Objects.toStringHelper(this)
.add("id", getId())
.add("arguments", getArguments());
MapDifference<FieldName, ?> difference = getDifference();
if(difference != null){
helper.add("difference", getDifference());
}
Exception exception = getException();
if(exception != null){
helper.add("exception", exception);
}
return helper.toString();
}
ModIdMapPacket.java 文件源码
项目:BetterNutritionMod
阅读 38
收藏 0
点赞 0
评论 0
@Override
public void execute(INetworkManager network, FMLNetworkHandler handler, NetHandler netHandler, String userName)
{
byte[] allData = Bytes.concat(partials);
GameData.initializeServerGate(1);
try
{
NBTTagCompound serverList = CompressedStreamTools.decompress(allData);
NBTTagList list = serverList.getTagList("List");
Set<ItemData> itemData = GameData.buildWorldItemData(list);
GameData.validateWorldSave(itemData);
MapDifference<Integer, ItemData> serverDifference = GameData.gateWorldLoadingForValidation();
if (serverDifference!=null)
{
FMLCommonHandler.instance().disconnectIDMismatch(serverDifference, netHandler, network);
}
}
catch (IOException e)
{
}
}
GameData.java 文件源码
项目:BetterNutritionMod
阅读 42
收藏 0
点赞 0
评论 0
public static MapDifference<Integer, ItemData> gateWorldLoadingForValidation()
{
try
{
serverValidationLatch.await();
if (!isSaveValid)
{
return difference;
}
}
catch (InterruptedException e)
{
}
difference = null;
return null;
}
GeoResourceRecordSetCommands.java 文件源码
项目:denominator
阅读 43
收藏 0
点赞 0
评论 0
static void validateRegions(Map<String, Collection<String>> regionsToAdd,
Map<String, Collection<String>> supportedRegions) {
MapDifference<String, Collection<String>>
comparison =
Maps.difference(regionsToAdd, supportedRegions);
checkArgument(comparison.entriesOnlyOnLeft().isEmpty(), "unsupported regions: %s", comparison
.entriesOnlyOnLeft().keySet());
for (Entry<String, Collection<String>> entry : regionsToAdd.entrySet()) {
ImmutableSet<String> toAdd = ImmutableSet.copyOf(entry.getValue());
SetView<String> intersection = Sets.intersection(toAdd,
ImmutableSet.copyOf(
supportedRegions.get(entry.getKey())));
SetView<String> unsupported = Sets.difference(toAdd, intersection);
checkArgument(unsupported.isEmpty(), "unsupported territories in %s:", entry.getKey(),
unsupported);
}
}
JWTAuthenticationProvider.java 文件源码
项目:airsonic
阅读 41
收藏 0
点赞 0
评论 0
private static boolean roughlyEqual(String expectedRaw, String requestedPathRaw) {
logger.debug("Comparing expected [{}] vs requested [{}]", expectedRaw, requestedPathRaw);
if(StringUtils.isEmpty(expectedRaw)) {
logger.debug("False: empty expected");
return false;
}
try {
UriComponents expected = UriComponentsBuilder.fromUriString(expectedRaw).build();
UriComponents requested = UriComponentsBuilder.fromUriString(requestedPathRaw).build();
if(!Objects.equals(expected.getPath(), requested.getPath())) {
logger.debug("False: expected path [{}] does not match requested path [{}]",
expected.getPath(), requested.getPath());
return false;
}
MapDifference<String, List<String>> difference = Maps.difference(expected.getQueryParams(),
requested.getQueryParams());
if(difference.entriesDiffering().size() != 0 ||
difference.entriesOnlyOnLeft().size() != 0 ||
difference.entriesOnlyOnRight().size() != 1 ||
difference.entriesOnlyOnRight().get(JWTSecurityService.JWT_PARAM_NAME) == null) {
logger.debug("False: expected query params [{}] do not match requested query params [{}]", expected.getQueryParams(), requested.getQueryParams());
return false;
}
} catch(Exception e) {
logger.warn("Exception encountered while comparing paths", e);
return false;
}
return true;
}
GenericAssertions.java 文件源码
项目:connect-utils
阅读 30
收藏 0
点赞 0
评论 0
@Override
public String get() {
try (Writer w = new StringWriter()) {
try (BufferedWriter writer = new BufferedWriter(w)) {
writer.append(String.format("Map for actual.%s() does not match expected.%s().", this.method, this.method));
writer.newLine();
Map<?, ? extends MapDifference.ValueDifference<?>> differences = mapDifference.entriesDiffering();
if (!differences.isEmpty()) {
writer.append("Keys with Differences");
writer.newLine();
for (Map.Entry<?, ? extends MapDifference.ValueDifference<?>> kvp : differences.entrySet()) {
writer.append(" ");
writer.append(kvp.getKey().toString());
writer.newLine();
writer.append(" expected:");
writer.append(kvp.getValue().leftValue().toString());
writer.newLine();
writer.append(" actual:");
writer.append(kvp.getValue().rightValue().toString());
writer.newLine();
}
}
Map<?, ?> entries = mapDifference.entriesOnlyOnLeft();
writeEntries(writer, "Only in expected map", entries);
Map<?, ?> onlyInActual = mapDifference.entriesOnlyOnRight();
writeEntries(writer, "Only in actual map", onlyInActual);
}
return w.toString();
} catch (IOException ex) {
throw new IllegalStateException(ex);
}
}
GenericAssertions.java 文件源码
项目:connect-utils
阅读 38
收藏 0
点赞 0
评论 0
static void assertMap(Map<String, ?> expected, Map<String, ?> actual, String message) {
if (null == expected && null == actual) {
return;
}
String prefix = Strings.isNullOrEmpty(message) ? "" : message + ": ";
assertNotNull(expected, prefix + "expected cannot be null");
assertNotNull(actual, prefix + "actual cannot be null");
MapDifference<String, ?> mapDifference = Maps.difference(expected, actual);
assertTrue(mapDifference.areEqual(), new MapDifferenceSupplier(mapDifference, prefix));
}
GenericAssertions.java 文件源码
项目:connect-utils
阅读 40
收藏 0
点赞 0
评论 0
@Override
public String get() {
try (Writer w = new StringWriter()) {
try (BufferedWriter writer = new BufferedWriter(w)) {
writer.append(String.format("Map for actual.%s() does not match expected.%s().", this.method, this.method));
writer.newLine();
Map<?, ? extends MapDifference.ValueDifference<?>> differences = mapDifference.entriesDiffering();
if (!differences.isEmpty()) {
writer.append("Keys with Differences");
writer.newLine();
for (Map.Entry<?, ? extends MapDifference.ValueDifference<?>> kvp : differences.entrySet()) {
writer.append(" ");
writer.append(kvp.getKey().toString());
writer.newLine();
writer.append(" expected:");
writer.append(kvp.getValue().leftValue().toString());
writer.newLine();
writer.append(" actual:");
writer.append(kvp.getValue().rightValue().toString());
writer.newLine();
}
}
Map<?, ?> entries = mapDifference.entriesOnlyOnLeft();
writeEntries(writer, "Only in expected map", entries);
Map<?, ?> onlyInActual = mapDifference.entriesOnlyOnRight();
writeEntries(writer, "Only in actual map", onlyInActual);
}
return w.toString();
} catch (IOException ex) {
throw new IllegalStateException(ex);
}
}
GenericAssertions.java 文件源码
项目:connect-utils
阅读 28
收藏 0
点赞 0
评论 0
public static void assertMap(Map<String, ?> expected, Map<String, ?> actual, String message) {
if (null == expected && null == actual) {
return;
}
String prefix = Strings.isNullOrEmpty(message) ? "" : message + ": ";
assertNotNull(expected, prefix + "expected cannot be null");
assertNotNull(actual, prefix + "actual cannot be null");
MapDifference<String, ?> mapDifference = Maps.difference(expected, actual);
assertTrue(mapDifference.areEqual(), new MapDifferenceSupplier(mapDifference, prefix));
}
TunnelUnderlayNetworkChangeListener.java 文件源码
项目:netvirt
阅读 35
收藏 0
点赞 0
评论 0
private void handleTepIpsUpdateEvent(OpenvswitchOtherConfigs origLocalIps,
OpenvswitchOtherConfigs updatedLocalIps, String nodeId) {
Map<String,
String> origLocalIpMap = Optional
.ofNullable(bridgeMgr.getMultiValueMap(origLocalIps.getOtherConfigValue()))
.orElse(Collections.emptyMap());
Map<String,
String> updatedLocalIpMap = Optional
.ofNullable(bridgeMgr.getMultiValueMap(updatedLocalIps.getOtherConfigValue()))
.orElse(Collections.emptyMap());
MapDifference<String, String> mapDiff = Maps.difference(origLocalIpMap, updatedLocalIpMap);
// Handling only underlay network updates for existing for TEP ips
// Added and removed TEP ips will be handled by
// TunnelStateChangeListener
Map<String, ValueDifference<String>> entriesDiffering = mapDiff.entriesDiffering();
if (entriesDiffering == null || entriesDiffering.isEmpty()) {
LOG.trace("No underlay network changes detected for for node {}", nodeId);
return;
}
Optional<BigInteger> dpIdOpt = bridgeMgr.getDpIdFromManagerNodeId(nodeId);
if (!dpIdOpt.isPresent()) {
LOG.debug("Failed to get DPN id for node {}", nodeId);
return;
}
BigInteger dpId = dpIdOpt.get();
for (Entry<String, ValueDifference<String>> entry : entriesDiffering.entrySet()) {
String srcTepIp = entry.getKey();
ValueDifference<String> valueDiff = entry.getValue();
String origUnderlayNetwork = valueDiff.leftValue();
String updatedUnderlayNetwork = valueDiff.rightValue();
handleTepIpChangeEvent(dpId, srcTepIp, origUnderlayNetwork, updatedUnderlayNetwork);
}
}
BaseQueueServiceTest.java 文件源码
项目:emodb
阅读 34
收藏 0
点赞 0
评论 0
/**
* Because of an Ostrich bug the BaseQueueService methods have been copied to QueueService.java.
* Verify that this copy has been done correctly and the 3 interfaces are identical.
*/
@Test
public void testQueueApisMatch() {
MapDifference<List<Object>, Method> diff = Maps.difference(
getDeclaredPublicMethodMap(BaseQueueService.class),
getDeclaredPublicMethodMap(QueueService.class));
assertTrue(diff.entriesOnlyOnLeft().isEmpty(), "In BaseQueueService but not in QueueService: " + diff.entriesOnlyOnLeft().values());
assertTrue(diff.entriesOnlyOnRight().isEmpty(), "In QueueService but not in BaseQueueService: " + diff.entriesOnlyOnRight().values());
}
BaseQueueServiceTest.java 文件源码
项目:emodb
阅读 34
收藏 0
点赞 0
评论 0
/**
* Because of an Ostrich bug the BaseQueueService methods have been copied to DedupQueueService.java.
* Verify that this copy has been done correctly and the 3 interfaces are identical.
*/
@Test
public void testDedupQueueApisMatch() {
MapDifference<List<Object>, Method> diff = Maps.difference(
getDeclaredPublicMethodMap(BaseQueueService.class),
getDeclaredPublicMethodMap(DedupQueueService.class));
assertTrue(diff.entriesOnlyOnLeft().isEmpty(), "In BaseQueueService but not in DedupQueueService: " + diff.entriesOnlyOnLeft().values());
assertTrue(diff.entriesOnlyOnRight().isEmpty(), "In DedupQueueService but not in BaseQueueService: " + diff.entriesOnlyOnRight().values());
}
FetchResult.java 文件源码
项目:copybara
阅读 32
收藏 0
点赞 0
评论 0
FetchResult(ImmutableMap<String, GitRevision> before,
ImmutableMap<String, GitRevision> after) {
MapDifference<String, GitRevision> diff = Maps.difference(before, after);
deleted = ImmutableMap.copyOf(diff.entriesOnlyOnLeft());
inserted = ImmutableMap.copyOf(diff.entriesOnlyOnRight());
updated = ImmutableMap.copyOf(diff.entriesDiffering().entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
v -> new RefUpdate(v.getValue().leftValue(), v.getValue().rightValue()))));
}
DummyRevision.java 文件源码
项目:copybara
阅读 36
收藏 0
点赞 0
评论 0
private Set<String> computeChangedFiles() {
Map<String, String> pathToContent = readAllFiles(changesBase);
Map<String, String> previousContent = previousPath == null
? ImmutableMap.of()
: readAllFiles(previousPath);
MapDifference<String, String> diff = Maps.difference(pathToContent, previousContent);
return ImmutableSet.<String>builder()
.addAll(diff.entriesOnlyOnLeft().keySet())
.addAll(diff.entriesOnlyOnRight().keySet())
.addAll(diff.entriesDiffering().keySet())
.build();
}