diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2012-11-17 18:10:06 +0000 | 
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2012-11-17 18:10:06 +0000 | 
| commit | f68cfc5a0a8a07a2729636b1a1bedc41d2de738d (patch) | |
| tree | 40fc14f900b14e5db66b54ddf9b2e8bfb0035dae /cs-dotnet/src/gatsdictionary.cs | |
| parent | 38f03bf3279c5e0351539777db52bb9f1a4bc614 (diff) | |
| download | libgats-f68cfc5a0a8a07a2729636b1a1bedc41d2de738d.tar.gz libgats-f68cfc5a0a8a07a2729636b1a1bedc41d2de738d.tar.bz2 libgats-f68cfc5a0a8a07a2729636b1a1bedc41d2de738d.tar.xz libgats-f68cfc5a0a8a07a2729636b1a1bedc41d2de738d.zip | |
Added XML standard in-code documentation, also GatsList and GatsDictionary
helpers.
Diffstat (limited to 'cs-dotnet/src/gatsdictionary.cs')
| -rw-r--r-- | cs-dotnet/src/gatsdictionary.cs | 129 | 
1 files changed, 129 insertions, 0 deletions
| diff --git a/cs-dotnet/src/gatsdictionary.cs b/cs-dotnet/src/gatsdictionary.cs index af7f72a..77d088c 100644 --- a/cs-dotnet/src/gatsdictionary.cs +++ b/cs-dotnet/src/gatsdictionary.cs | |||
| @@ -13,6 +13,26 @@ using System.Collections.Generic; | |||
| 13 | 13 | ||
| 14 | namespace Com.Xagasoft.Gats | 14 | namespace Com.Xagasoft.Gats | 
| 15 | { | 15 | { | 
| 16 | /// <summary> | ||
| 17 | /// Encapsulates a single dictionary of GatsObjects. | ||
| 18 | /// </summary> | ||
| 19 | /// <remarks> | ||
| 20 | /// All keys are strings, and are encoded UTF-8. At the moment it is | ||
| 21 | /// advisable to stick to 7-bit ASCII or LATIN-1 compatible strings for | ||
| 22 | /// interoperability. If you want full unicode for keys, be sure you | ||
| 23 | /// handle it correctly with all libraries. | ||
| 24 | /// | ||
| 25 | /// Values can be any valid GatsObject. | ||
| 26 | /// | ||
| 27 | /// Just like dictionaries in memory, order is not important and is | ||
| 28 | /// considered random in encoded GATS. This means that dictionary items | ||
| 29 | /// may be in a different order after writing them and reading them back | ||
| 30 | /// again. Do not rely on a specific order, if you need ordered data use | ||
| 31 | /// a GatsList. | ||
| 32 | /// | ||
| 33 | /// All standard dictionary interface methods are implemented, so you can | ||
| 34 | /// use a GatsDictionary just like the .NET standard Dictionary. | ||
| 35 | /// </remarks> | ||
| 16 | public class GatsDictionary : GatsObject, IDictionary<string, GatsObject> | 36 | public class GatsDictionary : GatsObject, IDictionary<string, GatsObject> | 
| 17 | // ICollection<KeyValuePair<string, GatsObject>>, | 37 | // ICollection<KeyValuePair<string, GatsObject>>, | 
| 18 | // IEnumerable<KeyValuePair<string, GatsObject>> | 38 | // IEnumerable<KeyValuePair<string, GatsObject>> | 
| @@ -68,6 +88,115 @@ namespace Com.Xagasoft.Gats | |||
| 68 | } | 88 | } | 
| 69 | 89 | ||
| 70 | // | 90 | // | 
| 91 | // Extra helper functions for making life with GATS easier | ||
| 92 | // | ||
| 93 | |||
| 94 | /// <summary> | ||
| 95 | /// Helper function to add a new GatsString to the dictionary from a | ||
| 96 | /// byte array. | ||
| 97 | /// </summary> | ||
| 98 | /// <param name="key">The key to insert the new value with</param> | ||
| 99 | /// <param name="val">The byte array to be inserted as a string</param> | ||
| 100 | public void Add( string key, byte[] val ) | ||
| 101 | { | ||
| 102 | Add( key, new GatsString( val ) ); | ||
| 103 | } | ||
| 104 | |||
| 105 | /// <summary> | ||
| 106 | /// Helper function to add a new GatsString to the dictionary from a | ||
| 107 | /// string. | ||
| 108 | /// </summary> | ||
| 109 | /// <remarks> | ||
| 110 | /// The string is encoded UTF-8 by .NETs internal facilities. | ||
| 111 | /// </remarks> | ||
| 112 | /// <param name="key">The key to insert the new value with</param> | ||
| 113 | /// <param name="val">The string to be inserted as a string</param> | ||
| 114 | public void Add( string key, string val ) | ||
| 115 | { | ||
| 116 | Add( key, new GatsString( val ) ); | ||
| 117 | } | ||
| 118 | |||
| 119 | /// <summary> | ||
| 120 | /// Helper function to add a new GatsInteger to the dictionary. | ||
| 121 | /// </summary> | ||
| 122 | /// <remarks> | ||
| 123 | /// Implicit upcasting should allow all integer types (byte, short, | ||
| 124 | /// int, long), and automatic unboxing should allow all object variants | ||
| 125 | /// to be passed into this method without problem. | ||
| 126 | /// </remarks> | ||
| 127 | /// <param name="key">The key to insert the new value with</param> | ||
| 128 | /// <param name="val">The long to be inserted</param> | ||
| 129 | public void Add( string key, long val ) | ||
| 130 | { | ||
| 131 | Add( key, new GatsInteger( val ) ); | ||
| 132 | } | ||
| 133 | |||
| 134 | /// <summary> | ||
| 135 | /// Helper function to add a new GatsFloat to the dictionary. | ||
| 136 | /// </summary> | ||
| 137 | /// <remarks> | ||
| 138 | /// Implicit upcasting should allow floats and doubles to both be | ||
| 139 | /// accepted by this method. Please note that decimal types are not | ||
| 140 | /// strictly compatible, please see GatsFloat for more details. | ||
| 141 | /// </remarks> | ||
| 142 | /// <param name="key">The key to insert the new value with</param> | ||
| 143 | /// <param name="val">The double to be inserted</param> | ||
| 144 | public void Add( string key, double val ) | ||
| 145 | { | ||
| 146 | Add( key, new GatsFloat( val ) ); | ||
| 147 | } | ||
| 148 | |||
| 149 | /// <summary> | ||
| 150 | /// Helper function to add a new GatsBoolean to the dictionary. | ||
| 151 | /// </summary> | ||
| 152 | /// <param name="key">The key to insert the new value with</param> | ||
| 153 | /// <param name="val">The boolean value to be inserted</param> | ||
| 154 | public void Add( string key, bool val ) | ||
| 155 | { | ||
| 156 | Add( key, new GatsBoolean( val ) ); | ||
| 157 | } | ||
| 158 | |||
| 159 | /// <summary> | ||
| 160 | /// Helper function to add a new GatsNull to the dictionary. | ||
| 161 | /// </summary> | ||
| 162 | /// <param name="key">The key to insert the new null value with</param> | ||
| 163 | public void AddNull( string key ) | ||
| 164 | { | ||
| 165 | Add( key, new GatsNull() ); | ||
| 166 | } | ||
| 167 | |||
| 168 | /// <summary> | ||
| 169 | /// Helper function to add a new GatsDictionary to the dictionary. | ||
| 170 | /// </summary> | ||
| 171 | /// <remarks> | ||
| 172 | /// A new GatsDictionary is created, added to the dictionary, and | ||
| 173 | /// returned. | ||
| 174 | /// </remarks> | ||
| 175 | /// <param name="key">The key to insert the new value with</param> | ||
| 176 | /// <returns>A new, empty dictionary that is already added</returns> | ||
| 177 | public GatsDictionary AddDict( string key ) | ||
| 178 | { | ||
| 179 | GatsDictionary dict = new GatsDictionary(); | ||
| 180 | Add( key, dict ); | ||
| 181 | return dict; | ||
| 182 | } | ||
| 183 | |||
| 184 | /// <summary> | ||
| 185 | /// Helper function to add a new GatsList to the dictionary. | ||
| 186 | /// </summary> | ||
| 187 | /// <remarks> | ||
| 188 | /// A new GatsList is created, added to the dictionary, and returned. | ||
| 189 | /// </remarks> | ||
| 190 | /// <param name="key">The key to insert the new value with</param> | ||
| 191 | /// <returns>A new, empty list that is already added</returns> | ||
| 192 | public GatsList AddList( string key ) | ||
| 193 | { | ||
| 194 | GatsList list = new GatsList(); | ||
| 195 | Add( key, list ); | ||
| 196 | return list; | ||
| 197 | } | ||
| 198 | |||
| 199 | // | ||
| 71 | // List interface overrides under here. | 200 | // List interface overrides under here. | 
| 72 | // | 201 | // | 
| 73 | public void Add( string key, GatsObject obj ) | 202 | public void Add( string key, GatsObject obj ) | 
