public Resource Persist(Resource r) { if (!(r is BNode) || !sparql.AllowPersistBNodes) { return(r); } if (!(source is SupportsPersistableBNodes)) { return(r); } SupportsPersistableBNodes spb = (SupportsPersistableBNodes)source; string guid = spb.GetStoreGuid(); if (guid == null) { return(r); } string id = spb.GetNodeId((BNode)r); if (id == null) { return(r); } return(new Entity(Sparql.BNodePersistUri + guid + ":" + id)); }
public Resource Depersist(Resource r) { if (r.Uri == null || !sparql.AllowPersistBNodes) { return(r); } if (!(source is SupportsPersistableBNodes)) { return(r); } if (!r.Uri.StartsWith(Sparql.BNodePersistUri)) { return(r); } SupportsPersistableBNodes spb = (SupportsPersistableBNodes)source; string uri = r.Uri; string guid = uri.Substring(Sparql.BNodePersistUri.Length); int c = guid.IndexOf(':'); if (c > 0) { string id = guid.Substring(c + 1); guid = guid.Substring(0, c); if (spb.GetStoreGuid() != null && guid == spb.GetStoreGuid()) { BNode node = spb.GetNodeFromId(id); if (node != null) { return(node); } } } return(r); }