import java.util.HashMap;
import java.util.Map;
public class UtilityDataFormatter {
/**
* Formats user data into a string based on provided flags.
* @param userData A map containing user data.
* @param flags A map containing optional flags.
* @return Formatted string representation of user data.
*/
public static String formatData(Map<String, String> userData, Map<String, Boolean> flags) {
StringBuilder output = new StringBuilder();
// Basic user information
output.append("User ID: ").append(userData.get("userId")).append("\n");
output.append("Name: ").append(userData.get("name")).append("\n");
output.append("Account Type: ").append(userData.get("accountType")).append("\n");
//Conditional formatting based on flags
if (flags.containsKey("showAddress") && flags.get("showAddress")) {
output.append("Address: ").append(userData.get("address")).append("\n");
}
if (flags.containsKey("showContact") && flags.get("showContact")) {
output.append("Contact Number: ").append(userData.get("contactNumber")).append("\n");
output.append("Email: ").append(userData.get("email")).append("\n");
}
if (flags.containsKey("showUsage")) {
output.append("Current Usage: ").append(userData.get("currentUsage")).append("\n");
output.append("Previous Usage: ").append(userData.get("previousUsage")).append("\n");
}
return output.toString();
}
public static void main(String[] args) {
// Example Usage
Map<String, String> user = new HashMap<>();
user.put("userId", "12345");
user.put("name", "John Doe");
user.put("accountType", "Residential");
user.put("address", "123 Main St");
user.put("contactNumber", "555-123-4567");
user.put("email", "john.doe@example.com");
user.put("currentUsage", "100 kWh");
user.put("previousUsage", "80 kWh");
Map<String, Boolean> flags = new HashMap<>();
flags.put("showAddress", true);
flags.put("showContact", true);
flags.put("showUsage", true);
String formattedData = formatData(user, flags);
System.out.println(formattedData);
//Example with no flags
Map<String, Boolean> noFlags = new HashMap<>();
formattedData = formatData(user, noFlags);
System.out.println(formattedData);
}
}
Add your comment