01: package org.ontoware.rdf2go.util;
02:
03: import org.ontoware.aifbcommons.collection.ClosableIterator;
04: import org.ontoware.rdf2go.RDF2Go;
05: import org.ontoware.rdf2go.model.Model;
06: import org.ontoware.rdf2go.model.Statement;
07: import org.ontoware.rdf2go.model.node.LanguageTagLiteral;
08:
09: public class LanguageTools {
10:
11: /**
12: * Deletes all literals except the ones in the desired language.
13: *
14: * Removes all languatagges literals that DO NOT start with the 'language' string.
15: *
16: * @param model
17: * @param language
18: * @return a Model that contains only literals in the desired language
19: */
20: public static Model selectLanguage(Model model, String language) {
21: Model result = RDF2Go.getModelFactory().createModel();
22: result.open();
23: ClosableIterator<Statement> it = model.iterator();
24: while (it.hasNext()) {
25: Statement s = it.next();
26: if (s.getObject() instanceof LanguageTagLiteral) {
27: LanguageTagLiteral lit = s.getObject()
28: .asLanguageTagLiteral();
29: if (lit.getLanguageTag().startsWith(language)) {
30: result.addStatement(s);
31: }
32: // else don't copy
33: } else {
34: result.addStatement(s);
35: }
36: }
37: it.close();
38: return result;
39: }
40:
41: }
|