as3corelib 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. data/Gemfile +5 -0
  2. data/Gemfile.lock +28 -0
  3. data/README.textile +79 -0
  4. data/Rakefile +3 -0
  5. data/as3corelib.gemspec +23 -0
  6. data/build/build.properties +48 -0
  7. data/build/build.xml +104 -0
  8. data/examples/JSONExample/JSONExample.mxml +73 -0
  9. data/lib/as3corelib.rb +15 -0
  10. data/src/com/adobe/air/crypto/EncryptionKeyGenerator.as +313 -0
  11. data/src/com/adobe/air/filesystem/FileMonitor.as +245 -0
  12. data/src/com/adobe/air/filesystem/FileUtil.as +63 -0
  13. data/src/com/adobe/air/filesystem/VolumeMonitor.as +184 -0
  14. data/src/com/adobe/air/filesystem/events/FileMonitorEvent.as +61 -0
  15. data/src/com/adobe/air/logging/FileTarget.as +95 -0
  16. data/src/com/adobe/air/net/ResourceCache.as +165 -0
  17. data/src/com/adobe/air/net/events/ResourceCacheEvent.as +70 -0
  18. data/src/com/adobe/crypto/HMAC.as +127 -0
  19. data/src/com/adobe/crypto/MD5.as +281 -0
  20. data/src/com/adobe/crypto/MD5Stream.as +402 -0
  21. data/src/com/adobe/crypto/SHA1.as +289 -0
  22. data/src/com/adobe/crypto/SHA224.as +257 -0
  23. data/src/com/adobe/crypto/SHA256.as +261 -0
  24. data/src/com/adobe/crypto/WSSEUsernameToken.as +114 -0
  25. data/src/com/adobe/errors/IllegalStateError.as +63 -0
  26. data/src/com/adobe/fileformats/vcard/Address.as +47 -0
  27. data/src/com/adobe/fileformats/vcard/Email.as +39 -0
  28. data/src/com/adobe/fileformats/vcard/Phone.as +39 -0
  29. data/src/com/adobe/fileformats/vcard/VCard.as +54 -0
  30. data/src/com/adobe/fileformats/vcard/VCardParser.as +246 -0
  31. data/src/com/adobe/images/BitString.as +39 -0
  32. data/src/com/adobe/images/JPGEncoder.as +648 -0
  33. data/src/com/adobe/images/PNGEncoder.as +141 -0
  34. data/src/com/adobe/net/DynamicURLLoader.as +55 -0
  35. data/src/com/adobe/net/IURIResolver.as +76 -0
  36. data/src/com/adobe/net/MimeTypeMap.as +200 -0
  37. data/src/com/adobe/net/URI.as +2466 -0
  38. data/src/com/adobe/net/URIEncodingBitmap.as +139 -0
  39. data/src/com/adobe/net/proxies/RFC2817Socket.as +198 -0
  40. data/src/com/adobe/protocols/dict/Database.as +66 -0
  41. data/src/com/adobe/protocols/dict/Definition.as +71 -0
  42. data/src/com/adobe/protocols/dict/Dict.as +360 -0
  43. data/src/com/adobe/protocols/dict/DictionaryServer.as +60 -0
  44. data/src/com/adobe/protocols/dict/MatchStrategy.as +66 -0
  45. data/src/com/adobe/protocols/dict/Response.as +71 -0
  46. data/src/com/adobe/protocols/dict/events/ConnectedEvent.as +53 -0
  47. data/src/com/adobe/protocols/dict/events/DatabaseEvent.as +67 -0
  48. data/src/com/adobe/protocols/dict/events/DefinitionEvent.as +70 -0
  49. data/src/com/adobe/protocols/dict/events/DefinitionHeaderEvent.as +69 -0
  50. data/src/com/adobe/protocols/dict/events/DictionaryServerEvent.as +69 -0
  51. data/src/com/adobe/protocols/dict/events/DisconnectedEvent.as +55 -0
  52. data/src/com/adobe/protocols/dict/events/ErrorEvent.as +80 -0
  53. data/src/com/adobe/protocols/dict/events/MatchEvent.as +67 -0
  54. data/src/com/adobe/protocols/dict/events/MatchStrategiesEvent.as +70 -0
  55. data/src/com/adobe/protocols/dict/events/NoMatchEvent.as +54 -0
  56. data/src/com/adobe/protocols/dict/util/CompleteResponseEvent.as +68 -0
  57. data/src/com/adobe/protocols/dict/util/SocketHelper.as +81 -0
  58. data/src/com/adobe/serialization/json/JSON.as +86 -0
  59. data/src/com/adobe/serialization/json/JSONDecoder.as +327 -0
  60. data/src/com/adobe/serialization/json/JSONEncoder.as +312 -0
  61. data/src/com/adobe/serialization/json/JSONParseError.as +87 -0
  62. data/src/com/adobe/serialization/json/JSONToken.as +104 -0
  63. data/src/com/adobe/serialization/json/JSONTokenType.as +69 -0
  64. data/src/com/adobe/serialization/json/JSONTokenizer.as +702 -0
  65. data/src/com/adobe/utils/ArrayUtil.as +187 -0
  66. data/src/com/adobe/utils/DateUtil.as +701 -0
  67. data/src/com/adobe/utils/DictionaryUtil.as +87 -0
  68. data/src/com/adobe/utils/IntUtil.as +99 -0
  69. data/src/com/adobe/utils/NumberFormatter.as +74 -0
  70. data/src/com/adobe/utils/StringUtil.as +239 -0
  71. data/src/com/adobe/utils/XMLUtil.as +168 -0
  72. data/src/com/adobe/webapis/ServiceBase.as +48 -0
  73. data/src/com/adobe/webapis/URLLoaderBase.as +108 -0
  74. data/src/com/adobe/webapis/events/ServiceEvent.as +82 -0
  75. data/tests/src/CoreLibTestRunner-app.xml +135 -0
  76. data/tests/src/CoreLibTestRunner.as +138 -0
  77. data/tests/src/CoreLibTestRunner.mxml +46 -0
  78. data/tests/src/com/adobe/air/crypto/EncryptionKeyGeneratorTest.as +176 -0
  79. data/tests/src/com/adobe/air/filesystem/FileMonitorTest.as +63 -0
  80. data/tests/src/com/adobe/air/filesystem/VolumeMonitorTest.as +57 -0
  81. data/tests/src/com/adobe/air/filesystem/events/FileMonitorEventTest.as +59 -0
  82. data/tests/src/com/adobe/air/net/events/ResourceCacheEventTest.as +72 -0
  83. data/tests/src/com/adobe/crypto/HMACMD5Test.as +134 -0
  84. data/tests/src/com/adobe/crypto/HMACSHA1Test.as +138 -0
  85. data/tests/src/com/adobe/crypto/MD5Test.as +82 -0
  86. data/tests/src/com/adobe/crypto/SHA1Test.as +151 -0
  87. data/tests/src/com/adobe/crypto/SHA224Test.as +104 -0
  88. data/tests/src/com/adobe/crypto/SHA256Test.as +116 -0
  89. data/tests/src/com/adobe/crypto/WSSEUsernameTokenTest.as +87 -0
  90. data/tests/src/com/adobe/images/JPGEncoderTest.as +54 -0
  91. data/tests/src/com/adobe/images/PNGEncoderTest.as +54 -0
  92. data/tests/src/com/adobe/net/URITest.as +589 -0
  93. data/tests/src/com/adobe/protocols/events/ConnectedEventTest.as +59 -0
  94. data/tests/src/com/adobe/protocols/events/DatabaseEventTest.as +62 -0
  95. data/tests/src/com/adobe/protocols/events/DefinitionEventTest.as +61 -0
  96. data/tests/src/com/adobe/protocols/events/DefinitionHeaderEventTest.as +61 -0
  97. data/tests/src/com/adobe/protocols/events/DictionaryServerEventTest.as +61 -0
  98. data/tests/src/com/adobe/protocols/events/DisconnectedEventTest.as +59 -0
  99. data/tests/src/com/adobe/protocols/events/ErrorEventTest.as +63 -0
  100. data/tests/src/com/adobe/protocols/events/MatchEventTest.as +61 -0
  101. data/tests/src/com/adobe/protocols/events/MatchStrategiesEventTest.as +61 -0
  102. data/tests/src/com/adobe/protocols/events/NoMatchEventTest.as +58 -0
  103. data/tests/src/com/adobe/protocols/util/CompletedResponseEventTest.as +60 -0
  104. data/tests/src/com/adobe/serialization/json/JSONTest.as +522 -0
  105. data/tests/src/com/adobe/serialization/json/SimpleClass.as +85 -0
  106. data/tests/src/com/adobe/utils/ArrayUtilTest.as +173 -0
  107. data/tests/src/com/adobe/utils/DateUtilTest.as +436 -0
  108. data/tests/src/com/adobe/utils/DictionaryUtilTest.as +93 -0
  109. data/tests/src/com/adobe/utils/IntUtilTest.as +73 -0
  110. data/tests/src/com/adobe/utils/NumberFormatterTest.as +70 -0
  111. data/tests/src/com/adobe/utils/StringUtilTest.as +304 -0
  112. data/tests/src/com/adobe/utils/XMLUtilTest.as +101 -0
  113. data/tests/src/com/adobe/webapis/events/ServiceEventTest.as +66 -0
  114. metadata +196 -0
@@ -0,0 +1,312 @@
1
+ /*
2
+ Copyright (c) 2008, Adobe Systems Incorporated
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are
7
+ met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright
13
+ notice, this list of conditions and the following disclaimer in the
14
+ documentation and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of Adobe Systems Incorporated nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ package com.adobe.serialization.json
34
+ {
35
+
36
+ import flash.utils.describeType;
37
+
38
+ public class JSONEncoder {
39
+
40
+ /** The string that is going to represent the object we're encoding */
41
+ private var jsonString:String;
42
+
43
+ /**
44
+ * Creates a new JSONEncoder.
45
+ *
46
+ * @param o The object to encode as a JSON string
47
+ * @langversion ActionScript 3.0
48
+ * @playerversion Flash 9.0
49
+ * @tiptext
50
+ */
51
+ public function JSONEncoder( value:* ) {
52
+ jsonString = convertToString( value );
53
+
54
+ }
55
+
56
+ /**
57
+ * Gets the JSON string from the encoder.
58
+ *
59
+ * @return The JSON string representation of the object
60
+ * that was passed to the constructor
61
+ * @langversion ActionScript 3.0
62
+ * @playerversion Flash 9.0
63
+ * @tiptext
64
+ */
65
+ public function getString():String {
66
+ return jsonString;
67
+ }
68
+
69
+ /**
70
+ * Converts a value to it's JSON string equivalent.
71
+ *
72
+ * @param value The value to convert. Could be any
73
+ * type (object, number, array, etc)
74
+ */
75
+ private function convertToString( value:* ):String {
76
+
77
+ // determine what value is and convert it based on it's type
78
+ if ( value is String ) {
79
+
80
+ // escape the string so it's formatted correctly
81
+ return escapeString( value as String );
82
+
83
+ } else if ( value is Number ) {
84
+
85
+ // only encode numbers that finate
86
+ return isFinite( value as Number) ? value.toString() : "null";
87
+
88
+ } else if ( value is Boolean ) {
89
+
90
+ // convert boolean to string easily
91
+ return value ? "true" : "false";
92
+
93
+ } else if ( value is Array ) {
94
+
95
+ // call the helper method to convert an array
96
+ return arrayToString( value as Array );
97
+
98
+ } else if ( value is Object && value != null ) {
99
+
100
+ // call the helper method to convert an object
101
+ return objectToString( value );
102
+ }
103
+ return "null";
104
+ }
105
+
106
+ /**
107
+ * Escapes a string accoding to the JSON specification.
108
+ *
109
+ * @param str The string to be escaped
110
+ * @return The string with escaped special characters
111
+ * according to the JSON specification
112
+ */
113
+ private function escapeString( str:String ):String {
114
+ // create a string to store the string's jsonstring value
115
+ var s:String = "";
116
+ // current character in the string we're processing
117
+ var ch:String;
118
+ // store the length in a local variable to reduce lookups
119
+ var len:Number = str.length;
120
+
121
+ // loop over all of the characters in the string
122
+ for ( var i:int = 0; i < len; i++ ) {
123
+
124
+ // examine the character to determine if we have to escape it
125
+ ch = str.charAt( i );
126
+ switch ( ch ) {
127
+
128
+ case '"': // quotation mark
129
+ s += "\\\"";
130
+ break;
131
+
132
+ //case '/': // solidus
133
+ // s += "\\/";
134
+ // break;
135
+
136
+ case '\\': // reverse solidus
137
+ s += "\\\\";
138
+ break;
139
+
140
+ case '\b': // bell
141
+ s += "\\b";
142
+ break;
143
+
144
+ case '\f': // form feed
145
+ s += "\\f";
146
+ break;
147
+
148
+ case '\n': // newline
149
+ s += "\\n";
150
+ break;
151
+
152
+ case '\r': // carriage return
153
+ s += "\\r";
154
+ break;
155
+
156
+ case '\t': // horizontal tab
157
+ s += "\\t";
158
+ break;
159
+
160
+ default: // everything else
161
+
162
+ // check for a control character and escape as unicode
163
+ if ( ch < ' ' ) {
164
+ // get the hex digit(s) of the character (either 1 or 2 digits)
165
+ var hexCode:String = ch.charCodeAt( 0 ).toString( 16 );
166
+
167
+ // ensure that there are 4 digits by adjusting
168
+ // the # of zeros accordingly.
169
+ var zeroPad:String = hexCode.length == 2 ? "00" : "000";
170
+
171
+ // create the unicode escape sequence with 4 hex digits
172
+ s += "\\u" + zeroPad + hexCode;
173
+ } else {
174
+
175
+ // no need to do any special encoding, just pass-through
176
+ s += ch;
177
+
178
+ }
179
+ } // end switch
180
+
181
+ } // end for loop
182
+
183
+ return "\"" + s + "\"";
184
+ }
185
+
186
+ /**
187
+ * Converts an array to it's JSON string equivalent
188
+ *
189
+ * @param a The array to convert
190
+ * @return The JSON string representation of <code>a</code>
191
+ */
192
+ private function arrayToString( a:Array ):String {
193
+ // create a string to store the array's jsonstring value
194
+ var s:String = "";
195
+
196
+ // loop over the elements in the array and add their converted
197
+ // values to the string
198
+ for ( var i:int = 0; i < a.length; i++ ) {
199
+ // when the length is 0 we're adding the first element so
200
+ // no comma is necessary
201
+ if ( s.length > 0 ) {
202
+ // we've already added an element, so add the comma separator
203
+ s += ","
204
+ }
205
+
206
+ // convert the value to a string
207
+ s += convertToString( a[i] );
208
+ }
209
+
210
+ // KNOWN ISSUE: In ActionScript, Arrays can also be associative
211
+ // objects and you can put anything in them, ie:
212
+ // myArray["foo"] = "bar";
213
+ //
214
+ // These properties aren't picked up in the for loop above because
215
+ // the properties don't correspond to indexes. However, we're
216
+ // sort of out luck because the JSON specification doesn't allow
217
+ // these types of array properties.
218
+ //
219
+ // So, if the array was also used as an associative object, there
220
+ // may be some values in the array that don't get properly encoded.
221
+ //
222
+ // A possible solution is to instead encode the Array as an Object
223
+ // but then it won't get decoded correctly (and won't be an
224
+ // Array instance)
225
+
226
+ // close the array and return it's string value
227
+ return "[" + s + "]";
228
+ }
229
+
230
+ /**
231
+ * Converts an object to it's JSON string equivalent
232
+ *
233
+ * @param o The object to convert
234
+ * @return The JSON string representation of <code>o</code>
235
+ */
236
+ private function objectToString( o:Object ):String
237
+ {
238
+ // create a string to store the object's jsonstring value
239
+ var s:String = "";
240
+
241
+ // determine if o is a class instance or a plain object
242
+ var classInfo:XML = describeType( o );
243
+ if ( classInfo.@name.toString() == "Object" )
244
+ {
245
+ // the value of o[key] in the loop below - store this
246
+ // as a variable so we don't have to keep looking up o[key]
247
+ // when testing for valid values to convert
248
+ var value:Object;
249
+
250
+ // loop over the keys in the object and add their converted
251
+ // values to the string
252
+ for ( var key:String in o )
253
+ {
254
+ // assign value to a variable for quick lookup
255
+ value = o[key];
256
+
257
+ // don't add function's to the JSON string
258
+ if ( value is Function )
259
+ {
260
+ // skip this key and try another
261
+ continue;
262
+ }
263
+
264
+ // when the length is 0 we're adding the first item so
265
+ // no comma is necessary
266
+ if ( s.length > 0 ) {
267
+ // we've already added an item, so add the comma separator
268
+ s += ","
269
+ }
270
+
271
+ s += escapeString( key ) + ":" + convertToString( value );
272
+ }
273
+ }
274
+ else // o is a class instance
275
+ {
276
+ // Loop over all of the variables and accessors in the class and
277
+ // serialize them along with their values.
278
+ for each ( var v:XML in classInfo..*.(
279
+ name() == "variable"
280
+ ||
281
+ (
282
+ name() == "accessor"
283
+ // Issue #116 - Make sure accessors are readable
284
+ && attribute( "access" ).charAt( 0 ) == "r" )
285
+ ) )
286
+ {
287
+ // Issue #110 - If [Transient] metadata exists, then we should skip
288
+ if ( v.metadata && v.metadata.( @name == "Transient" ).length() > 0 )
289
+ {
290
+ continue;
291
+ }
292
+
293
+ // When the length is 0 we're adding the first item so
294
+ // no comma is necessary
295
+ if ( s.length > 0 ) {
296
+ // We've already added an item, so add the comma separator
297
+ s += ","
298
+ }
299
+
300
+ s += escapeString( v.@name.toString() ) + ":"
301
+ + convertToString( o[ v.@name ] );
302
+ }
303
+
304
+ }
305
+
306
+ return "{" + s + "}";
307
+ }
308
+
309
+
310
+ }
311
+
312
+ }
@@ -0,0 +1,87 @@
1
+ /*
2
+ Copyright (c) 2008, Adobe Systems Incorporated
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are
7
+ met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright
13
+ notice, this list of conditions and the following disclaimer in the
14
+ documentation and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of Adobe Systems Incorporated nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ package com.adobe.serialization.json {
34
+
35
+ /**
36
+ *
37
+ *
38
+ */
39
+ public class JSONParseError extends Error {
40
+
41
+ /** The location in the string where the error occurred */
42
+ private var _location:int;
43
+
44
+ /** The string in which the parse error occurred */
45
+ private var _text:String;
46
+
47
+ /**
48
+ * Constructs a new JSONParseError.
49
+ *
50
+ * @param message The error message that occured during parsing
51
+ * @langversion ActionScript 3.0
52
+ * @playerversion Flash 9.0
53
+ * @tiptext
54
+ */
55
+ public function JSONParseError( message:String = "", location:int = 0, text:String = "") {
56
+ super( message );
57
+ name = "JSONParseError";
58
+ _location = location;
59
+ _text = text;
60
+ }
61
+
62
+ /**
63
+ * Provides read-only access to the location variable.
64
+ *
65
+ * @return The location in the string where the error occurred
66
+ * @langversion ActionScript 3.0
67
+ * @playerversion Flash 9.0
68
+ * @tiptext
69
+ */
70
+ public function get location():int {
71
+ return _location;
72
+ }
73
+
74
+ /**
75
+ * Provides read-only access to the text variable.
76
+ *
77
+ * @return The string in which the error occurred
78
+ * @langversion ActionScript 3.0
79
+ * @playerversion Flash 9.0
80
+ * @tiptext
81
+ */
82
+ public function get text():String {
83
+ return _text;
84
+ }
85
+ }
86
+
87
+ }
@@ -0,0 +1,104 @@
1
+ /*
2
+ Copyright (c) 2008, Adobe Systems Incorporated
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are
7
+ met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright
13
+ notice, this list of conditions and the following disclaimer in the
14
+ documentation and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of Adobe Systems Incorporated nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ package com.adobe.serialization.json {
34
+
35
+ public class JSONToken {
36
+
37
+ private var _type:int;
38
+ private var _value:Object;
39
+
40
+ /**
41
+ * Creates a new JSONToken with a specific token type and value.
42
+ *
43
+ * @param type The JSONTokenType of the token
44
+ * @param value The value of the token
45
+ * @langversion ActionScript 3.0
46
+ * @playerversion Flash 9.0
47
+ * @tiptext
48
+ */
49
+ public function JSONToken( type:int = -1 /* JSONTokenType.UNKNOWN */, value:Object = null ) {
50
+ _type = type;
51
+ _value = value;
52
+ }
53
+
54
+ /**
55
+ * Returns the type of the token.
56
+ *
57
+ * @see com.adobe.serialization.json.JSONTokenType
58
+ * @langversion ActionScript 3.0
59
+ * @playerversion Flash 9.0
60
+ * @tiptext
61
+ */
62
+ public function get type():int {
63
+ return _type;
64
+ }
65
+
66
+ /**
67
+ * Sets the type of the token.
68
+ *
69
+ * @see com.adobe.serialization.json.JSONTokenType
70
+ * @langversion ActionScript 3.0
71
+ * @playerversion Flash 9.0
72
+ * @tiptext
73
+ */
74
+ public function set type( value:int ):void {
75
+ _type = value;
76
+ }
77
+
78
+ /**
79
+ * Gets the value of the token
80
+ *
81
+ * @see com.adobe.serialization.json.JSONTokenType
82
+ * @langversion ActionScript 3.0
83
+ * @playerversion Flash 9.0
84
+ * @tiptext
85
+ */
86
+ public function get value():Object {
87
+ return _value;
88
+ }
89
+
90
+ /**
91
+ * Sets the value of the token
92
+ *
93
+ * @see com.adobe.serialization.json.JSONTokenType
94
+ * @langversion ActionScript 3.0
95
+ * @playerversion Flash 9.0
96
+ * @tiptext
97
+ */
98
+ public function set value ( v:Object ):void {
99
+ _value = v;
100
+ }
101
+
102
+ }
103
+
104
+ }
@@ -0,0 +1,69 @@
1
+ /*
2
+ Copyright (c) 2008, Adobe Systems Incorporated
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are
7
+ met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright
13
+ notice, this list of conditions and the following disclaimer in the
14
+ documentation and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of Adobe Systems Incorporated nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ package com.adobe.serialization.json {
34
+
35
+ /**
36
+ * Class containing constant values for the different types
37
+ * of tokens in a JSON encoded string.
38
+ */
39
+ public class JSONTokenType {
40
+
41
+ public static const UNKNOWN:int = -1;
42
+
43
+ public static const COMMA:int = 0;
44
+
45
+ public static const LEFT_BRACE:int = 1;
46
+
47
+ public static const RIGHT_BRACE:int = 2;
48
+
49
+ public static const LEFT_BRACKET:int = 3;
50
+
51
+ public static const RIGHT_BRACKET:int = 4;
52
+
53
+ public static const COLON:int = 6;
54
+
55
+ public static const TRUE:int = 7;
56
+
57
+ public static const FALSE:int = 8;
58
+
59
+ public static const NULL:int = 9;
60
+
61
+ public static const STRING:int = 10;
62
+
63
+ public static const NUMBER:int = 11;
64
+
65
+ public static const NAN:int = 12;
66
+
67
+ }
68
+
69
+ }