Commit Graph

378 Commits

Author SHA1 Message Date
Jesse Wilson
befcfd908b Skip a byte order mark (BOM) if it exists.
http://code.google.com/p/android/issues/detail?id=18508
2011-07-20 18:57:30 +00:00
Jesse Wilson
415437810a Include line and column position in error messages. 2011-07-18 19:26:02 +00:00
Jesse Wilson
9cf579ef01 Use Streams instead of Escaper.
Fixes issue 345.
2011-07-12 23:50:00 +00:00
Jesse Wilson
d3a4b48ad9 Unconditionally escape unicode newline characters.
Fixes issue 341.
2011-07-12 16:05:22 +00:00
Inderjeet Singh
62675b7f46 Added serializeDefault and deserializeDefault methods in contexts that only invoke system type adapters on the top-level object.
With this, the RuntimeTypeAdapterTest passes.
2011-07-01 21:29:20 +00:00
Inderjeet Singh
d347128e6f Implemented support for serializing objects of type Bar<Foo> without the need to specify their type explicitly in toJson method. 2011-06-25 20:04:14 +00:00
Inderjeet Singh
9196b23251 Refactoring: Separated type handler maps into two types: one for system-specified handlers and one for user-specified. system-specified handlers are the ones that Gson comes with (DefaultTypeAdapters). 2011-06-24 21:52:59 +00:00
Jesse Wilson
f74dffc6fd Add deepCopy to JsonArray and JsonObject.
Resolves issue 301.
2011-06-17 21:46:28 +00:00
Joel Leitch
aa89773008 Quick fix for threading issue. Should maybe look into synchronizing this method instead. 2011-06-07 01:28:30 +00:00
Joel Leitch
533ea1755d Fix typo 2011-06-03 19:05:53 +00:00
Joel Leitch
c9ee7adcc5 Start using JsonNull.INSTANCE everywhere and remove creation method. 2011-06-03 19:02:28 +00:00
Inderjeet Singh
8fd4072f9b fixed javadocs 2011-06-03 19:01:08 +00:00
Inderjeet Singh
61b9a2cb17 Moved field creation to the field declaration to avoid inadvertent change from LinkedHashMap to something else. 2011-05-30 09:01:45 +00:00
Inderjeet Singh
9531c662da suppressed deprecation warning. 2011-05-30 06:47:21 +00:00
Inderjeet Singh
44faec1eb1 removed the methods that return null for various getAs methods per discussions with Jesse and Joel. 2011-05-27 17:58:39 +00:00
Inderjeet Singh
e79bcde8bf Using JsonNull.INSTANCE instead of JsonNull.createJsonNull() method 2011-05-25 16:55:57 +00:00
Inderjeet Singh
5d31558428 eliminated maven compilation problems with JDK 5 2011-05-25 16:13:36 +00:00
Inderjeet Singh
540d36e4bd API Change: Implemented various getAs methods to return null. 2011-05-25 07:08:21 +00:00
Inderjeet Singh
5e2bc1b8f0 New Public API: Exposed the singleton instance for JsonNull. 2011-05-25 07:01:36 +00:00
Joel Leitch
572421b771 Open object construction in JsonDeserializationContext to leverage the same object construction as default gson deserialization. 2011-05-20 21:50:39 +00:00
Inderjeet Singh
0bcd1b341f Revised Gson to refuse to deserialize floating point numbers into integer types.
This is probably a break from the past: previous versions of Gson allowed truncating a floating point into a long or int. However, it wasn't consistent in this behavior. It disallowed converting a BigDecimal value into BigInteger, int or long. Refusing to deserialize such values is aligned with fail-fast approach of uncovering bugs.
2011-05-04 23:26:22 +00:00
Jesse Wilson
ce79e16f7a StringPooling. This makes things up to 20% faster on dalvikvm for some data sets. 2011-04-28 22:08:06 +00:00
Inderjeet Singh
824635158c Parsing numbers lazily as a performance enhancement.
This avoids needing to parse number if the equivalent object field doesn't exist.
It also avoids the performance penalty of trying to parse it eagerly as a big decimal, float etc.
2011-04-28 21:57:29 +00:00
Joel Leitch
f291c4d33e Fix a bunch of preserve-type issues:
- Issue 205
- Issue 294
- Issue 318
2011-04-20 22:27:51 +00:00
Joel Leitch
e345feb438 Comments from r821 2011-04-14 18:54:09 +00:00
Joel Leitch
c894fb6c23 Default support for BitSet. As well, provide more flexibility on getAsBoolean for a JsonPrimitive. 2011-04-14 02:42:47 +00:00
Inderjeet Singh
9bfe443950 marked package private classes final 2011-04-13 15:57:11 +00:00
Joel Leitch
1c3d08794d Fixed typo. 2011-04-13 07:49:30 +00:00
Joel Leitch
5770be4ed2 More fixes to JavaDoc. 2011-04-12 22:03:15 +00:00
Joel Leitch
4917fc7f76 Lift restriction on naming when using the "@SerializedNamed" annotation.
Fix for Issue 290.
2011-04-12 17:29:19 +00:00
Joel Leitch
ecf137fec3 More fixes to JavaDoc. 2011-04-11 19:01:07 +00:00
Joel Leitch
c5c7c5bb64 More fixes to JavaDoc. 2011-04-11 18:52:29 +00:00
Joel Leitch
49e7ee05fc Fix method name by making it singular. 2011-04-11 18:44:19 +00:00
Joel Leitch
c266097310 Fix minor JavaDoc issue. 2011-04-11 18:33:46 +00:00
Joel Leitch
457b37f08e Replace var-args with single parameter. 2011-04-11 18:09:59 +00:00
Joel Leitch
854b92a78f Comments from r789 2011-04-07 18:00:12 +00:00
Inderjeet Singh
4bd261ae06 Made FieldNamingStrategy2 and its corresponding builder method package-private. 2011-04-07 17:41:35 +00:00
Inderjeet Singh
c15f570c72 Added a warning in the documentation of the internal package. 2011-04-06 01:08:12 +00:00
Inderjeet Singh
05ae10a144 removed the constructor in FieldAttributes that was only used in tests. 2011-04-06 00:51:01 +00:00
Joel Leitch
ddb0c8c825 Minor formatting fixes. 2011-04-06 00:43:57 +00:00
Inderjeet Singh
7afda06253 Added warning in GsonBuilder regarding setting date format correctly. 2011-04-06 00:35:05 +00:00
Inderjeet Singh
c8bd121db2 Renamed $Preconditions to $Gson$Preconditions and $Types to $Gson$Types.
Marked the two private classes in $Types as final.
2011-04-06 00:26:57 +00:00
Inderjeet Singh
8d3bfc0f47 Marked the getTypeInfoForField() method package private as it was inadvertently marked public.
Removed commented out code in pom.xml that is now obsoleted with sonatype syncing.
2011-04-06 00:13:31 +00:00
Joel Leitch
b4eb810347 Comments for r766. 2011-04-06 00:02:40 +00:00
Joel Leitch
52bf144859 Comments for r767 2011-04-05 23:57:13 +00:00
Joel Leitch
dc283e1121 Fixed comments from r774. 2011-04-05 23:36:05 +00:00
Joel Leitch
944081327b More very minor cleanup. 2011-04-04 23:18:25 +00:00
Joel Leitch
f36c1bc222 Very minor cleanup. 2011-04-04 23:17:43 +00:00
Joel Leitch
7c42ef3e5d Update incomplete comment. 2011-04-04 23:16:44 +00:00
Joel Leitch
2fb8c92812 Use more specific type for map serialization if possible. 2011-04-04 23:13:31 +00:00
Inderjeet Singh
50b4e3f4b9 Using getElement() instead of get() to get proper synchronization. 2011-04-04 23:00:19 +00:00
Inderjeet Singh
542a17c3bc Incorporated comments from r710 2011-04-04 22:48:34 +00:00
Inderjeet Singh
56b7ab1b71 Incorporated feedback from r718 2011-04-04 22:23:51 +00:00
Inderjeet Singh
feb9617bf0 Incorporated comments from r726 2011-04-04 22:09:51 +00:00
Inderjeet Singh
bf4ab04413 replaced multiple caches in ReflectingFieldNavigator with a single one.
Two additional optimizations:
- storing the field list for the entire type hierarchy in the cache instead of navigating it every time.
- storing the resolved type for the field in FieldAttributes instead of using reflection every time.
2011-04-01 23:54:41 +00:00
Inderjeet Singh
9c894c7485 switched from accessing field to an accessor method for access in tests.
Strangely, this fixes the broken tests in the continuous build.
2011-03-31 18:57:55 +00:00
Inderjeet Singh
5bc80cd693 Moved Cache, LruCache, Pair, Primitives and UnsafeAllocator to com.google.gson and made them package private. 2011-03-30 13:59:06 +00:00
Inderjeet Singh
523f489863 Got rid of an unneeded method. 2011-03-29 21:38:08 +00:00
Jesse Wilson
f718784f33 Use the date format for java.sql.Date and java.sql.Timestamp.
Fixes issue 230.
2011-03-29 21:36:19 +00:00
Jesse Wilson
4efb133b4a bling bling
Prefix internal classes with $ to prevent them from interfering with IDE's auto import functionality.
2011-03-29 21:24:26 +00:00
Joel Leitch
5e74dabad9 Re-use Preconditions instead of re-writing them here. 2011-03-29 21:18:27 +00:00
Jesse Wilson
9bcb0c0b6b Use the internal copy of preconditions 2011-03-29 21:13:31 +00:00
Joel Leitch
454f58a7b1 Adding in instance creator to instantiate the concrete Collection or Map class if known, otherwise fallback to a default instance.
Also, added some caching as part of the default constructor lookups.
2011-03-29 16:57:28 +00:00
Inderjeet Singh
ad921a0ee8 removed unused variable. eliminated unnecessary ObjTypePair creation. 2011-03-24 22:37:03 +00:00
Inderjeet Singh
4d9bec2206 Caching inheritance hierarchy for a type to reduce performance impact of reflection. 2011-03-24 22:28:45 +00:00
Inderjeet Singh
4a58dc3e2a Moving AccessibleObject.setAccessible to where the fields are obtained by reflection. 2011-03-24 22:16:25 +00:00
Inderjeet Singh
0adf7f5e17 Caching fields for a class for reducing the need for reflection. 2011-03-24 22:13:51 +00:00
Inderjeet Singh
337d89cf3f Removed ObjectNavigatorFactory 2011-03-24 20:19:41 +00:00
Inderjeet Singh
b51ffc1060 Removed eclipse warnings about missing overrides and declared exceptions that are never thrown. 2011-03-24 20:08:56 +00:00
Inderjeet Singh
13dc7b6f02 Made ObjectNavigator a reusable object. We now use just one instance of ObjectNavigator instead of creating one for each field/object. 2011-03-24 18:41:45 +00:00
Inderjeet Singh
b819307de8 refactored the field navigation using reflection out of ObjectNavigator. 2011-03-24 18:28:23 +00:00
Inderjeet Singh
6d3e0e92a5 Added a cache for no-args constructors to avoid expensive reflection everytime an object needs to be instantiated. 2011-03-23 18:31:39 +00:00
Joel Leitch
861e047a62 Create an "internals" package for classes that we do not want to share, but is needed across multiple pacakges.
As well, move non-Gson specific classes, such as Preconditions, to this new "internals" package.
2011-03-21 22:30:35 +00:00
Joel Leitch
279c0e87ed Update Precondition checks and have it throw a NPE instead. 2011-03-16 07:23:44 +00:00
Joel Leitch
7b223a8983 Adding JavaDoc to the enableComplexMapKeySerialization method on GsonBuilder. 2011-03-16 07:05:24 +00:00
Joel Leitch
ba0cd254a9 Clean up warnings. 2011-03-15 15:38:17 +00:00
Joel Leitch
e57ef0908b Add method to GsonBuilder to enable complex key serialization of maps. 2011-03-15 15:37:41 +00:00
Inderjeet Singh
0c35edab65 Fixed the bug where copyOf() for a ParameterizedTypeHandlerMap was failing when hierarchical type adapters for a sub class and its base class were present.
Fixed previously broken tests to verify the behavior that a hierarchical type adapter for a sub-class can be registered after registering a hierarchical type adapter for the base-class. The vice-versa is not allowed as it would result in hiding the sub-class hierarchical type adapter.
2011-03-14 23:22:50 +00:00
Jesse Wilson
ef7bd4c999 Don't document an API that we don't offer! 2011-03-14 21:50:14 +00:00
Inderjeet Singh
b489f4fb01 marked default type adapters as final classes 2011-03-11 22:20:39 +00:00
Inderjeet Singh
e26a6d5c18 removed the wrapping (regarding exception handling) of some primitive deserializers (numbers and boolean).
Added a number of additional tests that cover the cases of attempts to deserialize JsonObjects or arrays as primitives that must fail.
2011-03-11 22:14:18 +00:00
Jesse Wilson
43137b6b4f Fix unsafe allocations on Android 2011-03-11 00:44:15 +00:00
Inderjeet Singh
28567508ea Corrected Javadocs to indicate that NumberFormatException gets thrown instead of ClassCastException while attempting to convert a JsonPrimitive to a number. 2011-03-11 00:14:49 +00:00
Inderjeet Singh
baf9591d3b Made constructors package private for package private classes. 2011-03-10 23:55:16 +00:00
Inderjeet Singh
4e4f9b3a69 Preconditions.checkState() now throws IllegalStateException instead of IllegalArgumentException. This will potentiallly break backwards compatibility.
Removed unhelpful message while constructing exceptions.
2011-03-10 23:19:58 +00:00
Inderjeet Singh
52288d7127 rawtypes -> unchecked
Fixed spurious eclipse warnings on deprecation, missing classes or parameters, etc.
2011-02-24 22:47:55 +00:00
Inderjeet Singh
4be9767a28 removed unused imports 2011-02-24 20:18:03 +00:00
Jesse Wilson
3d006c90a2 equals & hashCode for subclasses of JsonElement.
Resolves issue 64.
2011-02-15 00:14:20 +00:00
Joel Leitch
4c41b11fce Comments from r723. 2011-02-14 22:26:17 +00:00
Joel Leitch
451a9dbe66 Add ability to allocate memory for an object without the use of the default constructor. 2011-02-11 18:22:07 +00:00
Jesse Wilson
b649f2768c Support unquoted single word strings in lenient mode!
Fixes issue 282.
2011-02-10 01:36:27 +00:00
Jesse Wilson
6e81cfdbb4 Locale-awareness for date parsing and formatting:
- always format in en_US for best interchange
 - always parse in en_US, system locale and ISO-8601
2011-02-10 01:06:22 +00:00
Joel Leitch
114633fbf9 Provide a means to add serialization or deserialization specific exclusion strategies. 2011-02-04 03:09:41 +00:00
Inderjeet Singh
ea48a1debf Fixed issue 175 by adding default type adapters for StringBuilder and StringBuffer. 2011-01-31 23:14:02 +00:00
Joel Leitch
56aa828350 Minor clean-up in Gson class. 2011-01-22 22:43:43 +00:00
Joel Leitch
fb7bd7b1b7 Deprecate the old FieldNamingStrategy interface and open up the FieldNamingStrategy2 instead to take its place. 2011-01-22 22:27:30 +00:00
Joel Leitch
b883f8f4aa Add new "Mode" enum and carry mode through Gson so exclusion strategies know whether it is currently serializing or deserializing.
Deprecate old ExclusionStrategy code since this new approach is more powerful.
2011-01-22 22:15:06 +00:00
Inderjeet Singh
2b9f81e8b5 Registering default type hierarchy adapters first and allow users to override them.
This allows the default EnumTypeAdapter to be overridden for a specific hierachy adapter for Enum with anonymized sub-classes.
2011-01-19 23:28:28 +00:00
Inderjeet Singh
edc71130c4 removed unneeded suppression of warnings. 2011-01-19 07:34:44 +00:00
Jesse Wilson
37dc0f8d3e Type adapter for maps. Supports both complex and non-complex keys. 2011-01-12 00:17:21 +00:00