public Configuration(Model configurationModel) { model = configurationModel; StmtIterator it = model.listStatements(null, RDF.type, CONF.Configuration); if (!it.hasNext()) { throw new IllegalArgumentException("No conf:Configuration found in configuration model"); } config = it.nextStatement().getSubject(); datasets = new ArrayList(); it = model.listStatements(config, CONF.dataset, (RDFNode) null); while (it.hasNext()) { datasets.add(new Dataset(it.nextStatement().getResource())); } labelProperties = new ArrayList(); it = model.listStatements(config, CONF.labelProperty, (RDFNode) null); while (it.hasNext()) { labelProperties.add(it.nextStatement().getObject().as(Property.class)); } if (labelProperties.isEmpty()) { labelProperties.add(RDFS.label); labelProperties.add(DC.title); labelProperties.add(model.createProperty("http://xmlns.com/foaf/0.1/name")); } commentProperties = new ArrayList(); it = model.listStatements(config, CONF.commentProperty, (RDFNode) null); while (it.hasNext()) { commentProperties.add(it.nextStatement().getObject().as(Property.class)); } if (commentProperties.isEmpty()) { commentProperties.add(RDFS.comment); commentProperties.add(DC.description); } imageProperties = new ArrayList(); it = model.listStatements(config, CONF.imageProperty, (RDFNode) null); while (it.hasNext()) { imageProperties.add(it.nextStatement().getObject().as(Property.class)); } if (imageProperties.isEmpty()) { imageProperties.add(model.createProperty("http://xmlns.com/foaf/0.1/depiction")); } prefixes = new PrefixMappingImpl(); if (config.hasProperty(CONF.usePrefixesFrom)) { it = config.listProperties(CONF.usePrefixesFrom); while (it.hasNext()) { Statement stmt = it.nextStatement(); prefixes.setNsPrefixes(FileManager.get().loadModel(stmt.getResource().getURI())); } } else { prefixes.setNsPrefixes(model); } if (prefixes.getNsURIPrefix(CONF.NS) != null) { prefixes.removeNsPrefix(prefixes.getNsURIPrefix(CONF.NS)); } }
@Override public SecuredPrefixMapping withDefaultMappings(final PrefixMapping map) { // mapping only updates if there are map entries to add. Since this gets called // when we are doing deep triple checks while writing we need to attempt the // update only if there are new updates to add. PrefixMapping m = holder.getBaseItem(); PrefixMappingImpl pm = new PrefixMappingImpl(); for (Entry<String, String> e : map.getNsPrefixMap().entrySet()) { if (m.getNsPrefixURI(e.getKey()) == null && m.getNsURIPrefix(e.getValue()) == null) { pm.setNsPrefix(e.getKey(), e.getValue()); } } if (!pm.getNsPrefixMap().isEmpty()) { checkUpdate(); holder.getBaseItem().withDefaultMappings(pm); } return holder.getSecuredItem(); }