diff options
Diffstat (limited to '')
| -rw-r--r-- | cs-dotnet/src/gatslist.cs | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/cs-dotnet/src/gatslist.cs b/cs-dotnet/src/gatslist.cs index 7d57035..0f93d1e 100644 --- a/cs-dotnet/src/gatslist.cs +++ b/cs-dotnet/src/gatslist.cs | |||
| @@ -13,6 +13,15 @@ using System.Collections.Generic; | |||
| 13 | 13 | ||
| 14 | namespace Com.Xagasoft.Gats | 14 | namespace Com.Xagasoft.Gats |
| 15 | { | 15 | { |
| 16 | /// <summary> | ||
| 17 | /// Encapsulates a single list of GatsObjects. | ||
| 18 | /// </summary> | ||
| 19 | /// <remarks> | ||
| 20 | /// A list of arbitrary size containing ordered GatsObjects. All standard | ||
| 21 | /// .NET IList, ICollection, and IEnumerable interfaces are implemented, | ||
| 22 | /// so a GatsList should work just like a standard List, but with a few | ||
| 23 | /// extras. | ||
| 24 | /// </remarks> | ||
| 16 | public class GatsList : GatsObject, IList<GatsObject>, | 25 | public class GatsList : GatsObject, IList<GatsObject>, |
| 17 | ICollection<GatsObject>, IEnumerable<GatsObject> | 26 | ICollection<GatsObject>, IEnumerable<GatsObject> |
| 18 | // IReadOnlyList<GatsObject>, IReadOnlyCollection<GatsObject>, | 27 | // IReadOnlyList<GatsObject>, IReadOnlyCollection<GatsObject>, |
| @@ -60,6 +69,105 @@ namespace Com.Xagasoft.Gats | |||
| 60 | } | 69 | } |
| 61 | 70 | ||
| 62 | // | 71 | // |
| 72 | // Helper functions | ||
| 73 | // | ||
| 74 | |||
| 75 | /// <summary> | ||
| 76 | /// Helper function to add a new GatsString to the list. | ||
| 77 | /// </summary> | ||
| 78 | /// <param name="val">The byte array to be added as a GatsString</param> | ||
| 79 | public void Add( byte[] val ) | ||
| 80 | { | ||
| 81 | Add( new GatsString( val ) ); | ||
| 82 | } | ||
| 83 | |||
| 84 | /// <summary> | ||
| 85 | /// Helper function to add a new GatsString to the list. | ||
| 86 | /// </summary> | ||
| 87 | /// <remarks> | ||
| 88 | /// The string is encoded UTF-8 by .NETs internal facilities. | ||
| 89 | /// </remarks> | ||
| 90 | /// <param name="val">The string to be added as a GatsString</param> | ||
| 91 | public void Add( string val ) | ||
| 92 | { | ||
| 93 | Add( new GatsString( val ) ); | ||
| 94 | } | ||
| 95 | |||
| 96 | /// <summary> | ||
| 97 | /// Helper function to add a new GatsInteger to the list. | ||
| 98 | /// </summary> | ||
| 99 | /// <remarks> | ||
| 100 | /// Implicit upcasting should allow all integer types (byte, short, | ||
| 101 | /// int, long), and automatic unboxing should allow all object variants | ||
| 102 | /// to be passed into this method without problem. | ||
| 103 | /// </remarks> | ||
| 104 | /// <param name="val">The long to be added as a GatsInteger</param> | ||
| 105 | public void Add( long val ) | ||
| 106 | { | ||
| 107 | Add( new GatsInteger( val ) ); | ||
| 108 | } | ||
| 109 | |||
| 110 | /// <summary> | ||
| 111 | /// Helper function to add a new GatsFloat to the list. | ||
| 112 | /// </summary> | ||
| 113 | /// <remarks> | ||
| 114 | /// Implicit upcasting should allow floats and doubles to both be | ||
| 115 | /// accepted by this method. Please note that decimal types are not | ||
| 116 | /// strictly compatible, please see GatsFloat for more details. | ||
| 117 | /// </remarks> | ||
| 118 | /// <param name="val">The double to be added as a GatsFloat</param> | ||
| 119 | public void Add( double val ) | ||
| 120 | { | ||
| 121 | Add( new GatsFloat( val ) ); | ||
| 122 | } | ||
| 123 | |||
| 124 | /// <summary> | ||
| 125 | /// Helper function to add a new GatsBoolean to the list. | ||
| 126 | /// </summary> | ||
| 127 | /// <param name="val"> | ||
| 128 | /// The boolean value to be added as a GatsBoolean | ||
| 129 | /// </param> | ||
| 130 | public void Add( bool val ) | ||
| 131 | { | ||
| 132 | Add( new GatsBoolean( val ) ); | ||
| 133 | } | ||
| 134 | |||
| 135 | /// <summary> | ||
| 136 | /// Helper to append a GatsNull to the list. | ||
| 137 | /// </summary> | ||
| 138 | public void AddNull() | ||
| 139 | { | ||
| 140 | Add( new GatsNull() ); | ||
| 141 | } | ||
| 142 | |||
| 143 | /// <summary> | ||
| 144 | /// Helper to append a GatsDictionary to the list. | ||
| 145 | /// </summary> | ||
| 146 | /// <remarks> | ||
| 147 | /// A new GatsDictionary is constructed, appended to the list, and | ||
| 148 | /// returned. | ||
| 149 | /// </remarks> | ||
| 150 | public GatsDictionary AddDict() | ||
| 151 | { | ||
| 152 | GatsDictionary dict = new GatsDictionary(); | ||
| 153 | Add( dict ); | ||
| 154 | return dict; | ||
| 155 | } | ||
| 156 | |||
| 157 | /// <summary> | ||
| 158 | /// Helper to append a GatsList to the list. | ||
| 159 | /// </summary> | ||
| 160 | /// <remarks> | ||
| 161 | /// A new GatsList is constructed, appended to the list, and returned. | ||
| 162 | /// </remarks> | ||
| 163 | public GatsList AddList() | ||
| 164 | { | ||
| 165 | GatsList list = new GatsList(); | ||
| 166 | Add( list ); | ||
| 167 | return list; | ||
| 168 | } | ||
| 169 | |||
| 170 | // | ||
| 63 | // List interface overrides under here. | 171 | // List interface overrides under here. |
| 64 | // | 172 | // |
| 65 | public int IndexOf( GatsObject obj ) | 173 | public int IndexOf( GatsObject obj ) |
