import java.util.HashMap;
import java.util.Map;
public class ArgumentStripper {
/**
* Strips metadata from CLI arguments for validation.
* Supports older Java versions by using String array.
*
* @param args The command-line arguments.
* @return A map containing only the argument values, or an empty map if args is null.
*/
public static Map<String, String> stripMetadata(String[] args) {
if (args == null) {
return new HashMap<>(); // Return empty map for null input
}
Map<String, String> strippedArgs = new HashMap<>();
for (int i = 0; i < args.length; i++) {
String arg = args[i];
if (arg != null && !arg.startsWith("-")) { // Skip metadata arguments (starting with "-")
strippedArgs.put(arg, ""); // Store the argument as the key and empty string as value
}
}
return strippedArgs;
}
public static void main(String[] args) {
String[] args1 = {"-name", "John Doe", "-age", "30", "--city", "New York"};
Map<String, String> stripped1 = stripMetadata(args1);
System.out.println(stripped1); // Expected output: {name=John Doe, age=30, city=New York}
String[] args2 = {"-name", "Jane", "-age", "25"};
Map<String, String> stripped2 = stripMetadata(args2);
System.out.println(stripped2); // Expected output: {name=Jane, age=25}
String[] args3 = null;
Map<String, String> stripped3 = stripMetadata(args3);
System.out.println(stripped3); // Expected output: {}
String[] args4 = {"some_value"};
Map<String, String> stripped4 = stripMetadata(args4);
System.out.println(stripped4); // Expected output: {some_value= }
}
}
Add your comment