Util.java
package com.cloudforgeci.api.core;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
class Util {
private static ObjectMapper getMapper() {
return new ObjectMapper();
}
public static DeploymentContext extractDeploymentContext(Object cfc) {
Map<String, Object> map = convertToContext(cfc);
DeploymentContext result = new DeploymentContext(map);
return result;
}
@SuppressWarnings("unchecked")
private static Map<String, Object> convertToContext(Object obj) {
if (obj == null) return java.util.Collections.emptyMap();
if (obj instanceof Map<?, ?> m) {
Map<String, Object> out = new java.util.HashMap<>();
m.forEach((k, v) -> out.put(String.valueOf(k), v));
return out;
}
if (obj instanceof String s) {
String json = s.trim();
if (json.isEmpty()) return java.util.Collections.emptyMap();
try {
return getMapper().readValue(json, new TypeReference<Map<String, Object>>() {});
} catch (Exception e) {
throw new RuntimeException("Failed to parse context JSON: " + json, e);
}
}
return getMapper().convertValue(obj, new TypeReference<Map<String, Object>>() {});
}
}