I want to use Guava's Maps.difference
in java 11 to verify data from Json String which I mapped into a Map.
What I have after a call (with different uid each time) :
{"uid":"31a340bc-e5ed-440c-8726-34c54dea902a","name":"Jean"}
I want to verify that uid is correctly generated and name is "Jean" using a pattern like this :
{"uid":"*","name":"Jean"}
Of course Maps.difference
returns a difference in uid value...
Is it possible to specify a wildcard in my verifying pattern so that Maps.difference
returns no differences ?
Thanks in advance.
Assuming you mean Guava's Maps.difference
: yes, use the difference(left, right, valueEquivalence)
overload:
Maps.difference(left, right, new Equivalence<String>() {
@Override public boolean doEquivalent(String a, String b) {
return "*".equals(a) || "*".equals(b) || Objects.equals(a, b);
}
// You have to hash all strings to the same thing because you
// don't know if the current item is a "*", or its corresponding
// item is a "*". But actually it doesn't matter, because I don't
// think it's invoked in difference.
@Override public int doHash(String s) { return 0; }
});