Esempio n. 1
0
 /// <inheritdoc/>
 protected override void VisitObjectNode([NotNull] IAssetObjectNode objectNode, int inNonIdentifiableType)
 {
     foreach (var index in objectNode.GetOverriddenItemIndices())
     {
         var id       = objectNode.IndexToId(index);
         var itemPath = ConvertPath(CurrentPath, inNonIdentifiableType);
         itemPath.PushItemId(id);
         Result.Set(itemPath, ((IAssetObjectNodeInternal)objectNode).GetItemOverride(index));
     }
     foreach (var index in objectNode.GetOverriddenKeyIndices())
     {
         var id       = objectNode.IndexToId(index);
         var itemPath = ConvertPath(CurrentPath, inNonIdentifiableType);
         itemPath.PushIndex(id);
         Result.Set(itemPath, ((IAssetObjectNodeInternal)objectNode).GetKeyOverride(index));
     }
 }
Esempio n. 2
0
        /// <inheritdoc/>
        protected override void VisitObjectNode([NotNull] IAssetObjectNode objectNode, int inNonIdentifiableType)
        {
            if (!objectNode.IsReference)
            {
                return;
            }

            foreach (var index in ((IAssetObjectNodeInternal)objectNode).Indices)
            {
                if (!propertyGraphDefinition.IsTargetItemObjectReference(objectNode, index, objectNode.Retrieve(index)))
                {
                    continue;
                }

                var itemPath = ConvertPath(CurrentPath, inNonIdentifiableType);
                if (CollectionItemIdHelper.HasCollectionItemIds(objectNode.Retrieve()))
                {
                    var itemId = objectNode.IndexToId(index);
                    itemPath.PushItemId(itemId);
                }
                else
                {
                    itemPath.PushIndex(index.Value);
                }
                var value = objectNode.Retrieve(index) as IIdentifiable;
                if (value == null)
                {
                    throw new InvalidOperationException("IsObjectReference returned true for an object that is not IIdentifiable");
                }
                var id = value.Id;
                if (ShouldOutputReference?.Invoke(id) ?? true)
                {
                    Result.Set(itemPath, id);
                }
            }
        }
Esempio n. 3
0
 public AssetRootNodePresenter([NotNull] INodePresenterFactoryInternal factory, IPropertyProviderViewModel propertyProvider, [NotNull] IAssetObjectNode rootNode)
     : base(factory, propertyProvider, rootNode)
 {
 }
Esempio n. 4
0
 public NodesToOwnerPartVisitor([NotNull] AssetPropertyGraphDefinition propertyGraphDefinition, [NotNull] INodeContainer nodeContainer, object ownerPart)
     : base(propertyGraphDefinition)
 {
     ownerPartNode = (IAssetObjectNode)nodeContainer.GetOrCreateNode(ownerPart);
 }
 /// <summary>
 /// Visits a node that is an <see cref="IAssetObjectNode"/>.
 /// </summary>
 /// <param name="objectNode">The node to visit.</param>
 /// <param name="inNonIdentifiableType"></param>
 protected abstract void VisitObjectNode(IAssetObjectNode objectNode, int inNonIdentifiableType);
Esempio n. 6
0
 public AssetItemNodePresenter([NotNull] INodePresenterFactoryInternal factory, IPropertyProviderViewModel propertyProvider, [NotNull] INodePresenter parent, [NotNull] IAssetObjectNode container, Index index)
     : base(factory, propertyProvider, parent, container, index)
 {
 }