in src/main/java/com/amazonaws/schemamanager/repo/RepoUtils.java [36:76]
public static Map<String, CompatibilityLevel> schemaToSubjectNames (RepoSchema schema){
Map<String, CompatibilityLevel> result = new LinkedHashMap<>();
CompatibilityLevel sysDefaultCompatibility = AppConfigHelper.getDefaultCompatibility();
RepoSchemaMetadata meta = schema.getMetadata();
CompatibilityLevel defaultCompatibility =
(meta == null || meta.getDefaultCompatibility() == null)
? sysDefaultCompatibility
: CompatibilityLevel.valueOf(meta.getDefaultCompatibility());
// Proto: add schema name as first subject:
if (meta != null && schema.getSchema() instanceof ProtobufSchema) {
result.put(meta.getSchemaName(), defaultCompatibility);
}
ParsedSchema ps = schema.getSchema();
if (meta == null) {
String subject = getFullName(ps);
result.put(subject, defaultCompatibility);
return result;
}
Map<String, Map<String, String>> subjects = meta.getSubjects();
if (subjects == null) {
String subject = getFullName(ps);
result.put(subject, defaultCompatibility);
return result;
}
subjects.forEach((s, m) -> {
CompatibilityLevel cl = defaultCompatibility;
if (m != null) {
String comp = m.get(RepoClientConfig.COMPATIBILITY_FIELD);
if (comp != null) {
cl = CompatibilityLevel.valueOf(comp);
}
}
result.put(s, cl);
});
return result;
}