protected override void ProcessIdentifiableItems(IIdentifiable identifiable, IObjectNode collection, NodeIndex index) { if (propertyGraphDefinition.IsTargetItemObjectReference(collection, index, identifiable)) { externalReferences.Add(identifiable); if (!externalReferenceAccessors.TryGetValue(identifiable, out var accessors)) { externalReferenceAccessors.Add(identifiable, accessors = new List <NodeAccessor>()); } accessors.Add(CurrentPath.GetAccessor()); } else { internalReferences.Add(identifiable); } }
protected override void ProcessIdentifiableMembers(IIdentifiable identifiable, IMemberNode member) { if (propertyGraphDefinition.IsMemberTargetObjectReference(member, identifiable)) { externalReferences.Add(identifiable); if (!externalReferenceAccessors.TryGetValue(identifiable, out var accessors)) { externalReferenceAccessors.Add(identifiable, accessors = new List <NodeAccessor>()); } accessors.Add(CurrentPath.GetAccessor()); } else { internalReferences.Add(identifiable); } }