/// <inheritdoc/> protected override void VisitMemberNode(IAssetMemberNode memberNode, int inNonIdentifiableType) { if (memberNode?.IsContentOverridden() == true) { Result.Set(ConvertPath(CurrentPath, inNonIdentifiableType), memberNode.GetContentOverride()); } }
/// <inheritdoc/> protected override void VisitMemberNode([NotNull] IAssetMemberNode memberNode, int inNonIdentifiableType) { var value = memberNode.Retrieve(); if (propertyGraphDefinition.IsMemberTargetObjectReference(memberNode, value)) { if (value == null) { return; } var identifiable = value as IIdentifiable; if (identifiable == null) { throw new InvalidOperationException("IsObjectReference returned true for an object that is not IIdentifiable"); } var id = identifiable.Id; if (ShouldOutputReference?.Invoke(id) ?? true) { Result.Set(ConvertPath(CurrentPath, inNonIdentifiableType), id); } } }
public AssetMemberNodePresenter([NotNull] INodePresenterFactoryInternal factory, IPropertyProviderViewModel propertyProvider, [NotNull] INodePresenter parent, [NotNull] IAssetMemberNode member) : base(factory, propertyProvider, parent, member) { }
/// <summary> /// Visits a node that is an <see cref="IAssetMemberNode"/>. /// </summary> /// <param name="memberNode">The node to visit.</param> /// <param name="inNonIdentifiableType"></param> protected abstract void VisitMemberNode(IAssetMemberNode memberNode, int inNonIdentifiableType);