package at.ac.univie.mminf.qskos4j.issues.language; import at.ac.univie.mminf.qskos4j.issues.Issue; import at.ac.univie.mminf.qskos4j.issues.language.util.NoCommonLanguagesResult; import at.ac.univie.mminf.qskos4j.issues.language.util.LanguageCoverage; import org.openrdf.OpenRDFException; import org.openrdf.model.Resource; import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; public class NoCommonLanguages extends Issue<NoCommonLanguagesResult> { private LanguageCoverage languageCoverage; private Set<String> commonLanguages; public NoCommonLanguages(LanguageCoverage languageCoverage) { super(languageCoverage, "ncl", "No Common Languages", "Checks for common languages in all concept literals", IssueType.ANALYTICAL); this.languageCoverage = languageCoverage; } @Override protected NoCommonLanguagesResult invoke() throws OpenRDFException { Map<Resource, Collection<String>> langCovData = languageCoverage.getResult().getData(); commonLanguages = new HashSet<>(); if (!langCovData.isEmpty()) { for (Collection languages : langCovData.values()) { commonLanguages.addAll(languages); } findCommonLanguages(); } return new NoCommonLanguagesResult(commonLanguages); } private void findCommonLanguages() throws OpenRDFException { for (Map.Entry<Resource, Collection<String>> entry : languageCoverage.getResult().getData().entrySet()) { commonLanguages.retainAll(entry.getValue()); } } }