1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class DiagnosticParams {
  4. public static Map<String, String> getDiagnosticParams(Map<String, String> rawParams) {
  5. Map<String, String> diagnosticParams = new HashMap<>();
  6. // Default values with fallback logic
  7. diagnosticParams.put("level", rawParams.getOrDefault("level", "info")); // Default to "info"
  8. diagnosticParams.put("timestampFormat", rawParams.getOrDefault("timestampFormat", "yyyy-MM-dd HH:mm:ss")); // Default timestamp format
  9. diagnosticParams.put("logFile", rawParams.getOrDefault("logFile", "default.log")); //default log file
  10. //Optional parameter
  11. if(rawParams.containsKey("includeStacktrace")){
  12. diagnosticParams.put("includeStacktrace", rawParams.get("includeStacktrace") .toLowerCase()); //case insensitive
  13. }
  14. //Handle potentially missing or invalid parameters gracefully
  15. String severity = rawParams.getOrDefault("severity", "debug");
  16. if ("error".equalsIgnoreCase(severity)) {
  17. //Perform error handling if the severity is error
  18. System.err.println("Error detected. Review logs immediately.");
  19. }
  20. //Example of handling numeric parameters with default
  21. try {
  22. int maxAttempts = Integer.parseInt(rawParams.getOrDefault("maxAttempts", "5"));
  23. if (maxAttempts <= 0) {
  24. System.err.println("Invalid maxAttempts value. Using default of 5.");
  25. maxAttempts = 5;
  26. }
  27. diagnosticParams.put("maxAttempts", String.valueOf(maxAttempts));
  28. } catch (NumberFormatException e) {
  29. System.err.println("Invalid maxAttempts format. Using default of 5.");
  30. diagnosticParams.put("maxAttempts", "5");
  31. }
  32. return diagnosticParams;
  33. }
  34. public static void main(String[] args) {
  35. //Example Usage
  36. Map<String, String> params1 = new HashMap<>();
  37. params1.put("level", "warning");
  38. params1.put("timestampFormat","MM/dd/yyyy");
  39. Map<String, String> params2 = new HashMap<>();
  40. params2.put("logFile", "custom.log");
  41. params2.put("includeStacktrace", "true");
  42. Map<String, String> params3 = new HashMap<>(); //Minimal params
  43. Map<String,String> params4 = new HashMap<>(); //Invalid number format
  44. System.out.println("Params 1: " + getDiagnosticParams(params1));
  45. System.out.println("Params 2: " + getDiagnosticParams(params2));
  46. System.out.println("Params 3: " + getDiagnosticParams(params3));
  47. System.out.println("Params 4: " + getDiagnosticParams(params4));
  48. }
  49. }

Add your comment