Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
DataVisitArrayItem.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 SiliconStudio.Core.Reflection;
5 
6 namespace SiliconStudio.Assets.Visitors
7 {
8  /// <summary>
9  /// Defines an item in an array.
10  /// </summary>
11  public sealed class DataVisitArrayItem : DataVisitNode
12  {
13  private readonly int index;
14 
15  /// <summary>
16  /// Initializes a new instance of the <see cref="DataVisitArrayItem"/> class.
17  /// </summary>
18  /// <param name="index">The index.</param>
19  /// <param name="item">The item.</param>
20  /// <param name="itemDescriptor">The item descriptor.</param>
21  public DataVisitArrayItem(int index, object item, ITypeDescriptor itemDescriptor) : base(item, itemDescriptor)
22  {
23  this.index = index;
24  }
25 
26  /// <summary>
27  /// Gets the array.
28  /// </summary>
29  /// <value>The array.</value>
30  public Array Array
31  {
32  get
33  {
34  return (Array)(Parent != null ? Parent.Instance : null);
35  }
36  }
37 
38  /// <summary>
39  /// Gets the descriptor.
40  /// </summary>
41  /// <value>The descriptor.</value>
42  public ArrayDescriptor Descriptor
43  {
44  get
45  {
46  return (ArrayDescriptor)(Parent != null ? Parent.InstanceDescriptor : null);
47  }
48  }
49 
50  /// <summary>
51  /// Gets the index.
52  /// </summary>
53  /// <value>The index.</value>
54  public int Index
55  {
56  get
57  {
58  return index;
59  }
60  }
61 
62  public override string ToString()
63  {
64  return string.Format("[{0}] = {1}", index, Instance ?? "null");
65  }
66  }
67 }
DataVisitArrayItem(int index, object item, ITypeDescriptor itemDescriptor)
Initializes a new instance of the DataVisitArrayItem class.
Base class for all items in a collection (array, list or dictionary)
Provides access members of a type.