Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
DataVisitListItem.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Collections;
5 using SiliconStudio.Core.Reflection;
6 
7 namespace SiliconStudio.Assets.Visitors
8 {
9  /// <summary>
10  /// Defines an item in a list.
11  /// </summary>
12  public sealed class DataVisitListItem : DataVisitNode
13  {
14  private readonly int index;
15 
16  /// <summary>
17  /// Initializes a new instance of the <see cref="DataVisitListItem"/> class.
18  /// </summary>
19  /// <param name="index">The index.</param>
20  /// <param name="item">The item.</param>
21  /// <param name="itemDescriptor">The item descriptor.</param>
22  /// <exception cref="System.ArgumentNullException">
23  /// list
24  /// or
25  /// descriptor
26  /// or
27  /// itemDescriptor
28  /// </exception>
29  public DataVisitListItem(int index, object item, ITypeDescriptor itemDescriptor) : base(item, itemDescriptor)
30  {
31  this.index = index;
32  }
33 
34  public IList List
35  {
36  get
37  {
38  return (IList)(Parent != null ? Parent.Instance : null);
39  }
40  }
41 
42  public CollectionDescriptor Descriptor
43  {
44  get
45  {
46  return (CollectionDescriptor)(Parent != null ? Parent.InstanceDescriptor : null);
47  }
48  }
49 
50  public int Index
51  {
52  get
53  {
54  return index;
55  }
56  }
57 
58  public override string ToString()
59  {
60  return string.Format("[{0}] = {1}", index, Instance ?? "null");
61  }
62  }
63 }
Provides a descriptor for a System.Collections.ICollection.
DataVisitListItem(int index, object item, ITypeDescriptor itemDescriptor)
Initializes a new instance of the DataVisitListItem class.
Base class for all items in a collection (array, list or dictionary)
Provides access members of a type.