Wednesday, June 19, 2013

Enum to map code with label



import java.util.HashMap;
import java.util.Map;


public enum MapNameWithId {


CANCELBOOKING("2006", "CancelBooking",
"CancelBooking");

 

private String code;
  private String label;
  private String description;
  private static Map<String, MapNameWithId> codeToClassMapping;

private MapNameWithId(String code, String label, String description) {
this.code = code;
this.label = label;
this.description = description;
}

/*
* This method for getting name of class based on ID
*/
  public static String getCode(String i) {
String returnValue=null;
if (codeToClassMapping == null) {
initMapping();
}
MapNameWithId result = null;
result = codeToClassMapping.get(i);
if(result==null){
returnValue="We do not have matching code for given class name";
}else{
returnValue=result.getCode();
}
return returnValue;
}
  private static void initMapping() {
codeToClassMapping = new HashMap<String, MapNameWithId>();
for (MapNameWithId s : values()) {
codeToClassMapping.put(s.label, s);
}
}


public String getCode() {
return code;
}

public String getLabel() {
return label;
}

public String getDescription() {
return description;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("Status");
sb.append("{code=").append(code);
sb.append(", label='").append(label).append('\'');
sb.append(", description='").append(description).append('\'');
sb.append('}');
return sb.toString();
}

}

1 comment: