import java.util.HashMap;
import java.util.Map;
public class MetadataAnomalyChecker {
/**
* Checks metadata for anomalies based on default values.
*
* @param metadata A map containing metadata values. Key is the metadata field name,
* value is the metadata value.
* @param defaultValues A map containing default values for each metadata field.
* @return A map of anomalous metadata fields. Key is the field name, value is the
* anomalous value. Returns an empty map if no anomalies are found.
*/
public static Map<String, Object> checkForAnomalies(Map<String, Object> metadata, Map<String, Object> defaultValues) {
Map<String, Object> anomalies = new HashMap<>();
if (metadata == null || defaultValues == null) {
return anomalies; // Return empty map for null inputs
}
for (Map.Entry<String, Object> entry : metadata.entrySet()) {
String fieldName = entry.getKey();
Object metadataValue = entry.getValue();
if (defaultValues.containsKey(fieldName)) {
Object defaultValue = defaultValues.get(fieldName);
if (!metadataValue.equals(defaultValue)) {
anomalies.put(fieldName, metadataValue);
}
}
}
return anomalies;
}
public static void main(String[] args) {
// Example Usage
Map<String, Object> metadata = new HashMap<>();
metadata.put("status", "active");
metadata.put("owner", "john.doe");
metadata.put("version", 1.2);
Map<String, Object> defaultValues = new HashMap<>();
defaultValues.put("status", "inactive");
defaultValues.put("owner", "default_user");
defaultValues.put("version", 1.0);
Map<String, Object> anomalies = checkForAnomalies(metadata, defaultValues);
if (!anomalies.isEmpty()) {
System.out.println("Anomalies found:");
for (Map.Entry<String, Object> entry : anomalies.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
} else {
System.out.println("No anomalies found.");
}
}
}
Add your comment