/** * Gets a Triple appropriate for writing to the store. */ private Triple getLocalizedTriple(Triple triple) { try { return _connector.getElementFactory().createTriple( getLocalizedResource(triple.getSubject()), getLocalizedResource(triple.getPredicate()), getLocalizedObject(triple.getObject())); } catch (GraphElementFactoryException e) { throw new RuntimeException("Error localizing triple", e); } }
/** * {@inheritDoc} */ public List<Triple> exportObject(DOReader object) throws ResourceIndexException { Set<Triple> triples = _generator.getTriplesForObject(object); ArrayList<Triple> list = new ArrayList<Triple>(triples.size()); for (Triple triple:triples) { list.add(getLocalizedTriple(triple)); } return list; } /**
/** * Applies the given adds or deletes to the triplestore. If _syncUpdates is * true, changes will be flushed before returning. */ private void updateTriples(Set<Triple> set, boolean delete) throws ResourceIndexException { try { if (delete) { _writer.delete(getTripleIterator(set), _syncUpdates); } else { _writer.add(getTripleIterator(set), _syncUpdates); } } catch (Exception e) { throw new ResourceIndexException("Error updating triples", e); } }
m_ri = new ResourceIndexImpl(m_conn, m_generator, riLevel, false); m_ri.setAliasMap(aliasMap); } catch (Exception e) {
/** * Computes the difference between the given sets and applies the * appropriate deletes and adds to the triplestore. If _syncUpdates is true, * changes will be flushed before returning. */ private void updateTripleDiffs(Set<Triple> existing, Set<Triple> desired) throws ResourceIndexException { // Delete any existing triples that are no longer desired, // leaving the ones we want in place HashSet<Triple> obsoleteTriples = new HashSet<Triple>(existing); obsoleteTriples.removeAll(desired); updateTriples(obsoleteTriples, true); // Add only new desired triples HashSet<Triple> newTriples = new HashSet<Triple>(desired); newTriples.removeAll(existing); updateTriples(newTriples, false); }
/** * {@inheritDoc} */ public void modifyObject(DOReader oldReader, DOReader newReader) throws ResourceIndexException { if (_indexLevel > INDEX_LEVEL_OFF) { updateTripleDiffs(_generator.getTriplesForObject(oldReader), _generator.getTriplesForObject(newReader)); } }
/** * Gets a localized URIReference or Literal based on the given Node. */ private ObjectNode getLocalizedObject(Node n) throws GraphElementFactoryException { if (n instanceof URIReference) { return getLocalizedResource(n); } else if (n instanceof Literal) { Literal l = (Literal) n; GraphElementFactory elementFactory = _connector.getElementFactory(); if (l.getDatatypeURI() != null) { return elementFactory.createLiteral(l.getLexicalForm(), l.getDatatypeURI()); } else if (l.getLanguage() != null) { return elementFactory.createLiteral(l.getLexicalForm(), l.getLanguage()); } else { return elementFactory.createLiteral(l.getLexicalForm()); } } else { throw new RuntimeException("Error localizing triple; " + n.getClass().getName() + " is not a URIReference " + "or a Literal"); } }
m_ri = new ResourceIndexImpl(m_conn, m_generator, riLevel, false); m_ri.setAliasMap(aliasMap); } catch (Exception e) {
/** * Computes the difference between the given sets and applies the * appropriate deletes and adds to the triplestore. If _syncUpdates is true, * changes will be flushed before returning. */ private void updateTripleDiffs(Set<Triple> existing, Set<Triple> desired) throws ResourceIndexException { // Delete any existing triples that are no longer desired, // leaving the ones we want in place HashSet<Triple> obsoleteTriples = new HashSet<Triple>(existing); obsoleteTriples.removeAll(desired); updateTriples(obsoleteTriples, true); // Add only new desired triples HashSet<Triple> newTriples = new HashSet<Triple>(desired); newTriples.removeAll(existing); updateTriples(newTriples, false); }
/** * {@inheritDoc} */ public void modifyObject(DOReader oldReader, DOReader newReader) throws ResourceIndexException { if (_indexLevel > INDEX_LEVEL_OFF) { updateTripleDiffs(_generator.getTriplesForObject(oldReader), _generator.getTriplesForObject(newReader)); } }
/** * Gets a localized URIReference or Literal based on the given Node. */ private ObjectNode getLocalizedObject(Node n) throws GraphElementFactoryException { if (n instanceof URIReference) { return getLocalizedResource(n); } else if (n instanceof Literal) { Literal l = (Literal) n; GraphElementFactory elementFactory = _connector.getElementFactory(); if (l.getDatatypeURI() != null) { return elementFactory.createLiteral(l.getLexicalForm(), l.getDatatypeURI()); } else if (l.getLanguage() != null) { return elementFactory.createLiteral(l.getLexicalForm(), l.getLanguage()); } else { return elementFactory.createLiteral(l.getLexicalForm()); } } else { throw new RuntimeException("Error localizing triple; " + n.getClass().getName() + " is not a URIReference " + "or a Literal"); } }
/** * Initialize the RI at the given level and return it. If the RI is already * initialized, it will be closed and re-initialized at the given level. */ protected void initRI(int indexLevel) throws Exception { if (_ri != null) { try { _ri.close(); } catch (Exception e) { } } TriplestoreConnector connector = getConnector(); TripleGenerator generator = new ModelBasedTripleGenerator(); _ri = new ResourceIndexImpl(connector, generator, indexLevel, false); }
/** * Gets a Triple appropriate for writing to the store. */ private Triple getLocalizedTriple(Triple triple) { try { return _connector.getElementFactory().createTriple( getLocalizedResource(triple.getSubject()), getLocalizedResource(triple.getPredicate()), getLocalizedObject(triple.getObject())); } catch (GraphElementFactoryException e) { throw new RuntimeException("Error localizing triple", e); } }
/** * {@inheritDoc} */ public void deleteObject(DOReader oldReader) throws ResourceIndexException { if (_indexLevel > INDEX_LEVEL_OFF) { updateTriples(_generator.getTriplesForObject(oldReader), true); } }
/** * {@inheritDoc} */ public List<Triple> exportObject(DOReader object) throws ResourceIndexException { Set<Triple> triples = _generator.getTriplesForObject(object); ArrayList<Triple> list = new ArrayList<Triple>(triples.size()); for (Triple triple:triples) { list.add(getLocalizedTriple(triple)); } return list; } /**
/** * Applies the given adds or deletes to the triplestore. If _syncUpdates is * true, changes will be flushed before returning. */ private void updateTriples(Set<Triple> set, boolean delete) throws ResourceIndexException { try { if (delete) { _writer.delete(getTripleIterator(set), _syncUpdates); } else { _writer.add(getTripleIterator(set), _syncUpdates); } } catch (Exception e) { throw new ResourceIndexException("Error updating triples", e); } }
getServer().getBean(TripleGenerator.class.getName(), TripleGenerator.class); _ri = new ResourceIndexImpl(connector, generator, level,
/** * {@inheritDoc} */ public void addObject(DOReader reader) throws ResourceIndexException { if (_indexLevel > INDEX_LEVEL_OFF) { updateTriples(_generator.getTriplesForObject(reader), false); } }
getServer().getBean(TripleGenerator.class.getName(), TripleGenerator.class); _ri = new ResourceIndexImpl(connector, generator, level,
/** * {@inheritDoc} */ public void deleteObject(DOReader oldReader) throws ResourceIndexException { if (_indexLevel > INDEX_LEVEL_OFF) { updateTriples(_generator.getTriplesForObject(oldReader), true); } }