internal virtual RecordSet <R> Union(RecordSet <R> other) { RecordSet <R> set = new RecordSet <R>(); set.AddAll(this); set.AddAll(other); return(set); }
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); }
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); }