private void RemoveVertexPropertyFromIndex(IVertex aVertex, IIndexDefinition aIndexDefinition, IEnumerable<IIndex<IComparable, long>> myIndices, SecurityToken mySecurityToken, TransactionToken myTransactionToken) { var entry = CreateIndexEntry(aIndexDefinition.IndexedProperties, aVertex.GetAllProperties().ToDictionary(key => key.Item1, value => value.Item2)); foreach (var iIndex in myIndices) { if (iIndex is IMultipleValueIndex<IComparable, long>) { lock (iIndex) { if (iIndex.ContainsKey(entry)) { var toBeUpdatedIndex = (IMultipleValueIndex<IComparable, long>)iIndex; var payLoad = toBeUpdatedIndex[entry]; payLoad.Remove(aVertex.VertexID); toBeUpdatedIndex.Add(entry, payLoad, IndexAddStrategy.REPLACE); } } } else { iIndex.Remove(entry); } } }
public IEnumerable <PropertyContainer> GetAllProperties( PropertyHyperGraphFilter.GraphElementStructuredPropertyFilter myFilter) { return(_Vertex.GetAllProperties(myFilter)); }
private string CreateGraphDMLforIVertex( IVertexType myVertexType, IVertex myVertex, Dictionary<long, IPropertyDefinition> myPropertyDefinitions) { var stringBuilder = new StringBuilder(); var delimiter = ", "; //INSERT INTO ... VALUES (VertexID = ..., stringBuilder.Append(String.Concat(S_INSERT.ToUpperString(), " ", S_INTO.ToUpperString(), " ", myVertexType.Name, " ", S_VALUES.ToUpperString(), " ", S_BRACKET_LEFT)); stringBuilder.Append(String.Concat(S_UUID, " = ", myVertex.VertexID.ToString(), delimiter)); #region standard attributes (creationDate, ...) string standardProperties = CreateGraphDMLforVertexStandardProperties(myVertex); stringBuilder.Append(standardProperties); #endregion #region properties (age, list<String>, ...) string defAttrsDML = CreateGraphDMLforDefinedProperties(myVertex.GetAllProperties(), myPropertyDefinitions); stringBuilder.Append(defAttrsDML); #endregion #region unstructured data string unstrProperties = CreateGraphDMLforVertexUnstructuredProperties( myVertex.GetAllUnstructuredProperties(), myPropertyDefinitions); stringBuilder.Append(unstrProperties); #endregion #region outgoing edges #region singleEdge string outgoingSingleEdges = CreateGraphDMLforVertexOutgoingSingleEdges( myVertexType, myVertex.GetAllOutgoingSingleEdges(), myVertexType.GetOutgoingEdgeDefinitions(true) .ToDictionary(key => key.ID, value => value)); stringBuilder.Append(outgoingSingleEdges); #endregion #region hyperEdge string outgoingHyperEdges = CreateGraphDMLforVertexOutgoingHyperEdges (myVertexType, myVertex.GetAllOutgoingHyperEdges(), myVertexType.GetOutgoingEdgeDefinitions(true) .ToDictionary(key => key.ID, value => value)); stringBuilder.Append(outgoingHyperEdges); #endregion #endregion if (stringBuilder.ToString().EndsWith(delimiter)) stringBuilder.RemoveSuffix(delimiter); stringBuilder.Append(S_BRACKET_RIGHT); return stringBuilder.ToString(); }
public IEnumerable <Tuple <long, IComparable> > GetAllProperties( PropertyHyperGraphFilter.GraphElementStructuredPropertyFilter myFilter) { return(_Vertex.GetAllProperties(myFilter)); }