Exemplo n.º 1
0
        internal virtual RecordSet <R> Union(RecordSet <R> other)
        {
            RecordSet <R> set = new RecordSet <R>();

            set.AddAll(this);
            set.AddAll(other);
            return(set);
        }
Exemplo n.º 2
0
        private RecordSet <RelationshipRecord> ExpandChains(RecordSet <RelationshipRecord> records, long otherNodeId)
        {
            RecordSet <RelationshipRecord> chains = new RecordSet <RelationshipRecord>();

            foreach (RelationshipRecord record in records)
            {
                chains.AddAll(ExpandChainInBothDirections(record, record.FirstNode == otherNodeId ? record.SecondNode : record.FirstNode));
            }
            return(chains);
        }
Exemplo n.º 3
0
        public virtual RecordSet <RelationshipRecord> ExploreRelationshipRecordChainsToDepthTwo(RelationshipRecord record)
        {
            RecordSet <RelationshipRecord> records = new RecordSet <RelationshipRecord>();

            foreach (RelationshipNodeField nodeField in RelationshipNodeField.values())
            {
                long nodeId = nodeField.get(record);
                records.AddAll(ExpandChains(ExpandChainInBothDirections(record, nodeId), nodeId));
            }
            return(records);
        }
        public virtual RecordSet <RelationshipRecord> FindRelationshipChainsThatThisRecordShouldBelongTo(RelationshipRecord relationship)
        {
            RecordSet <RelationshipRecord> records = new RecordSet <RelationshipRecord>();

            foreach (RelationshipNodeField field in RelationshipNodeField.values())
            {
                long nodeId = field.get(relationship);
                _nodeStore.getRecord(nodeId, _nodeRecord, RecordLoad.FORCE);
                records.AddAll(_relationshipChainExplorer.followChainFromNode(nodeId, _nodeRecord.NextRel));
            }
            return(records);
        }