/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println(Rara.
getValue(Arrays.
asList("MGST",
"PHYS"))); // Optional[MAG_STRIPE_MANUAL]
// Optional[MAG_STRIPE_ONLY]
}
}
// From this Stack Overflow answer:
// https://stackoverflow.com/a/70115626/642706
enum Rara {
MAG_STRIPE_ONLY("MGST"),
MAG_STRIPE_MANUAL("MGST", "PHYS"),
MAG_STRIPE_MANUAL_CHIP("MGST", "PHYS", "CICC"),
BARCODE("BRCD");
this.
codes = List.
of(codes
); }
private List<String> codes;
public static Optional<Rara> getValue(List<String> values){
return Arrays.
stream(values
()) .filter(rara -> rara.codes.containsAll(values))
.findFirst();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoKICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFJhcmEuZ2V0VmFsdWUoQXJyYXlzLmFzTGlzdCgiTUdTVCIsICJQSFlTIikpKTsgIAogICAgICAgICAgICAgIC8vIE9wdGlvbmFsW01BR19TVFJJUEVfTUFOVUFMXQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oUmFyYS5nZXRWYWx1ZShBcnJheXMuYXNMaXN0KCJNR1NUIikpKTsgIAogICAgICAgICAgICAgIC8vIE9wdGlvbmFsW01BR19TVFJJUEVfT05MWV0KCgl9Cn0KCi8vIEZyb20gdGhpcyBTdGFjayBPdmVyZmxvdyBhbnN3ZXI6Ci8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83MDExNTYyNi82NDI3MDYKZW51bSBSYXJhIHsKICAgIE1BR19TVFJJUEVfT05MWSgiTUdTVCIpLAogICAgTUFHX1NUUklQRV9NQU5VQUwoIk1HU1QiLCAiUEhZUyIpLAogICAgTUFHX1NUUklQRV9NQU5VQUxfQ0hJUCgiTUdTVCIsICJQSFlTIiwgIkNJQ0MiKSwKICAgIEJBUkNPREUoIkJSQ0QiKTsKCiAgICBSYXJhKFN0cmluZy4uLiBjb2RlcykgewogICAgICAgIHRoaXMuY29kZXMgPSBMaXN0Lm9mKGNvZGVzKTsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8U3RyaW5nPiBjb2RlczsKCiAgICBwdWJsaWMgc3RhdGljIE9wdGlvbmFsPFJhcmE+IGdldFZhbHVlKExpc3Q8U3RyaW5nPiB2YWx1ZXMpewogICAgICAgIHJldHVybiBBcnJheXMuc3RyZWFtKHZhbHVlcygpKQogICAgICAgICAgICAgICAgLmZpbHRlcihyYXJhIC0+IHJhcmEuY29kZXMuY29udGFpbnNBbGwodmFsdWVzKSkKICAgICAgICAgICAgICAgIC5maW5kRmlyc3QoKTsKICAgIH0KCn0K