/* 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
{
{
UserRole userRole = UserRole.forDisplayNameIgnoreCase ( "seller" ) ;
System.
out.
println( "userRole.toString() = " + userRole
) ; }
}
enum UserRole
{
ADMIN ( "Admin" ) ,
SELLER ( "Seller" ) ,
BIDDER ( "Bidder" ) ;
private final String displayName
;
// Constructor
UserRole
( String displayName
) {
this.displayName = displayName ;
}
public String getDisplayName
() {
return this.displayName ;
}
public static UserRole forDisplayNameIgnoreCase
( final String desiredDisplayName
) {
for ( UserRole userRole : UserRole.values() )
{
if ( userRole.getDisplayName().equalsIgnoreCase( desiredDisplayName ) )
{
return userRole ;
}
}
throw new IllegalArgumentException( "Unknown display name" ) ; // Or return an `Optional< UserRole >`. The Optional would be my preference. }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVVzZXJSb2xlIHVzZXJSb2xlID0gVXNlclJvbGUuZm9yRGlzcGxheU5hbWVJZ25vcmVDYXNlICggInNlbGxlciIgKSA7CgkJU3lzdGVtLm91dC5wcmludGxuKCAidXNlclJvbGUudG9TdHJpbmcoKSA9ICIgKyB1c2VyUm9sZSApIDsKCX0KfQoKZW51bSBVc2VyUm9sZQp7CiAgICBBRE1JTiAoICJBZG1pbiIgKSAsCiAgICBTRUxMRVIgKCAiU2VsbGVyIiApICwgCiAgICBCSURERVIgKCAiQmlkZGVyIiApIDsKCiAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBkaXNwbGF5TmFtZSA7CgogICAgLy8gQ29uc3RydWN0b3IgCiAgICBVc2VyUm9sZSAoIFN0cmluZyBkaXNwbGF5TmFtZSApIAogICAgewogICAgICAgIHRoaXMuZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZSA7CiAgICB9CgogICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZSgpIAogICAgeyAKICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5TmFtZSA7IAogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgVXNlclJvbGUgZm9yRGlzcGxheU5hbWVJZ25vcmVDYXNlICggZmluYWwgU3RyaW5nIGRlc2lyZWREaXNwbGF5TmFtZSApIAogICAgewogICAgICAgIGZvciAoIFVzZXJSb2xlIHVzZXJSb2xlIDogVXNlclJvbGUudmFsdWVzKCkgKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCB1c2VyUm9sZS5nZXREaXNwbGF5TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoIGRlc2lyZWREaXNwbGF5TmFtZSApICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIHVzZXJSb2xlIDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCAiVW5rbm93biBkaXNwbGF5IG5hbWUiICkgOyAgLy8gT3IgcmV0dXJuIGFuIGBPcHRpb25hbDwgVXNlclJvbGUgPmAuIFRoZSBPcHRpb25hbCB3b3VsZCBiZSBteSBwcmVmZXJlbmNlLiAKICAgIH0KCn0=