Пример #1
0
        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);
                }

            }
        }
Пример #2
0
 public IEnumerable <PropertyContainer> GetAllProperties(
     PropertyHyperGraphFilter.GraphElementStructuredPropertyFilter myFilter)
 {
     return(_Vertex.GetAllProperties(myFilter));
 }
Пример #3
0
        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();
        }
Пример #4
0
 public IEnumerable <Tuple <long, IComparable> > GetAllProperties(
     PropertyHyperGraphFilter.GraphElementStructuredPropertyFilter myFilter)
 {
     return(_Vertex.GetAllProperties(myFilter));
 }