public static Map schemaToSubjectNames()

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;
	}