|
namespace Oculus.Platform.Models
|
|
{
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Oculus.Platform.Models;
|
|
|
|
public class DeserializableList<T> : IList<T>
|
|
{
|
|
|
|
//IList
|
|
public int Count { get {return _Data.Count;} }
|
|
bool ICollection<T>.IsReadOnly { get {return ((IList<T>)_Data).IsReadOnly;} } //if you insist in getting it...
|
|
public int IndexOf(T obj) {return _Data.IndexOf(obj);}
|
|
public T this[int index] { get{return _Data[index];} set{_Data[index] = value;} }
|
|
|
|
public void Add(T item) {_Data.Add(item);}
|
|
public void Clear() {_Data.Clear();}
|
|
public bool Contains(T item) {return _Data.Contains(item);}
|
|
public void CopyTo(T[] array, int arrayIndex) {_Data.CopyTo(array, arrayIndex);}
|
|
public IEnumerator<T> GetEnumerator() {return _Data.GetEnumerator();}
|
|
public void Insert(int index, T item) {_Data.Insert(index, item);}
|
|
public bool Remove(T item) {return _Data.Remove(item);}
|
|
public void RemoveAt(int index) {_Data.RemoveAt(index);}
|
|
|
|
// taken from examples here: https://msdn.microsoft.com/en-us/library/s793z9y2(v=vs.110).aspx
|
|
private IEnumerator GetEnumerator1()
|
|
{
|
|
return this.GetEnumerator();
|
|
}
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return GetEnumerator1();
|
|
}
|
|
|
|
// Internals and getters
|
|
|
|
// Seems like Obsolete properties are broken in this version of Mono.
|
|
// Anyway, don't use this.
|
|
[System.Obsolete("Use IList interface on the DeserializableList object instead.", false)]
|
|
public List<T> Data {
|
|
get {return _Data;}
|
|
}
|
|
|
|
protected List<T> _Data;
|
|
protected string _NextUrl;
|
|
protected string _PreviousUrl;
|
|
|
|
public bool HasNextPage { get { return !System.String.IsNullOrEmpty(NextUrl); } }
|
|
public bool HasPreviousPage { get { return !System.String.IsNullOrEmpty(PreviousUrl); } }
|
|
public string NextUrl { get { return _NextUrl; } }
|
|
public string PreviousUrl { get { return _PreviousUrl; } }
|
|
}
|
|
}
|