Joel Leitch
70965eae03
Adding new type adapters for BigInteger and BigDecimal types.
2011-08-12 02:20:48 +00:00
Inderjeet Singh
57ea7ff9f3
Restored this behavior for serialization: (as verified in CustomSerializerTest)
...
First preference: a type adapter registered for the runtime type
Second preference: a type adapter registered for the declared type
Third preference: reflective type adapter for the runtime type (if it is a sub class of the declared type)
Fourth preference: reflective type adapter for the declared type
2011-08-12 02:18:02 +00:00
Inderjeet Singh
f7121ad87d
Restored this behavior:
...
If a type adapter is registered for a base class, then a field of that type is serialized with the type adapter instead of using the run-time type.
This fixes: CustomSerializerTest.testBaseClassSerializerInvokedForBaseClassFieldsHoldingSubClassInstances
2011-08-12 01:59:22 +00:00
Inderjeet Singh
ad5ff0f2d9
Created a wrapper for runtime type determination.
2011-08-05 00:41:24 +00:00
Jesse Wilson
fc99556f22
Support type exclusion strategies.
2011-08-05 00:25:49 +00:00
Inderjeet Singh
e9a971f680
Revised getRuntimeTypeIfMoreSpecific to ignore the parent and just focus on the value.
...
All uses of this method have already made a determination about the parent.
2011-08-05 00:13:01 +00:00
Inderjeet Singh
64dc53ffc4
Added support for runtime type determination while serializing collections and its subclasses.
...
This currently doesn't work since Gson register a hierarchy type adapter for Collections that takes precedence over this.
2011-08-04 23:55:52 +00:00
Jesse Wilson
e04d3fa882
Don't look for instance fields on interfaces.
2011-08-04 23:53:10 +00:00
Jesse Wilson
1885ba7dec
Restore support for serializeSpecialFloatingPointValues.
2011-08-04 23:12:49 +00:00
Inderjeet Singh
6e3bf07300
Added support for runtime type determination while serializing array elements.
...
Created a utility class Reflection to hold methods to find Runtime type and creating new Instances.
2011-08-04 23:02:06 +00:00
Jesse Wilson
aa067056c3
Restore support for long serialization policy.
2011-08-04 22:57:36 +00:00
Inderjeet Singh
5fc2db9e72
Parity with Gson behavior where we use runtime type of an object while serializing instead of the declared type of the field.
2011-08-04 22:27:25 +00:00
Inderjeet Singh
2813385c33
Parity with Gson behavior where we use runtime type of an object while serializing instead of the declared type of the field.
2011-08-03 03:19:43 +00:00
Inderjeet Singh
5c620c7e0a
Changed Gson behavior to reject duplicate fields in a class.
2011-08-03 03:05:12 +00:00
Inderjeet Singh
f1f8b666ec
Implemented support for FieldNamingPolicy with MiniGson.
2011-08-03 02:51:59 +00:00
Inderjeet Singh
d70fb90ef7
Added methods to convert to JsonElement in TypeAdapter.
...
Using lenient mode while working with Gson.
Handling nulls while invoking legacy Gson type adapters.
2011-08-03 02:40:18 +00:00
Inderjeet Singh
566c27cf21
Adapted legacy Gson adapters into mini Gson.
2011-08-03 02:17:42 +00:00
Jesse Wilson
98aa124589
Unsafe allocation for reflective type adapters.
2011-08-03 01:25:51 +00:00
Inderjeet Singh
b922500c23
For efficiency, calling setAccessible on all fields of a class in one method call instead of doing it individually.
2011-08-03 01:25:02 +00:00
Inderjeet Singh
f276d13827
Added support for deserialization exclusion strategy.
2011-08-03 01:19:26 +00:00
Inderjeet Singh
3331dcdab0
Using serializationExclusionStrategy while navigating through fields to decide which ones to skip.
2011-08-03 00:47:36 +00:00
Jesse Wilson
37abcf3637
Break 203 tests and adopt the new stream binding internally. Test fixes coming soon...
2011-08-03 00:28:02 +00:00
Jesse Wilson
60e6ed912d
Promote MiniGson to gson.internal.bind
2011-08-03 00:25:10 +00:00
Jesse Wilson
161b4babe8
Fix a pair of relatively benign off-by-one bugs. These only manifest if the source Reader returns characters one-at-a-time.
2011-07-22 15:50:26 +00:00
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
Joel Leitch
7dca724292
Fixing import order.
2011-07-12 04:15:46 +00:00
Jesse Wilson
807aa97ee7
Don't use ambiguous timezone names.
...
Fixes bug 331.
2011-07-01 22:00:45 +00:00
Inderjeet Singh
edf9be298c
fixed issue 339
2011-07-01 21:59:36 +00:00
Jesse Wilson
937019651a
Trailing comma tests
2011-07-01 21:36:05 +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
5f4e88f62a
More tests to ensure that serialization works for parameterized types like A<B<C<D>>> without the need to specify type in toJson()
2011-06-25 20:14:09 +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
ef2f73180b
added tests to illustrate and validate that Gson can serialize parameterized types without the need of explicit type token.
2011-06-25 19:43:05 +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
60e7c481fd
Added complex map serialization tests in case the Map is defined with TypeVariables.
2011-05-30 09:38:38 +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
2d186fbdcd
Updated the working version of Gson to 1.8-SNAPSHOT as we have a bunch of API changes.
2011-05-25 16:57:22 +00:00
Inderjeet Singh
e79bcde8bf
Using JsonNull.INSTANCE instead of JsonNull.createJsonNull() method
2011-05-25 16:55:57 +00:00
Inderjeet Singh
f2eb76eac9
removed deprecation warnings by using JsonNull.INSTANCE
2011-05-25 16:48:39 +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
b85daafb08
suppressed unchecked warning
2011-05-11 21:43:47 +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
4efeef1893
Make test a little more complex to show it actually fixed the bug.
2011-04-20 22:32:13 +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
cf3615e38c
Adding tests to verify 294.
2011-04-19 22:18:25 +00:00
Inderjeet Singh
e60274ed35
Added tests to ensure that subclass objects that are of a parameterized type are serialized per their declared type in lists or maps.
2011-04-19 20:49:48 +00:00
Inderjeet Singh
40045dc2e4
Added tests to ensure that subclass objects are serialized per their real type in lists or maps.
...
Currently, this doesnt happen for List and hence the test is marked as disabled.
2011-04-19 20:26:16 +00:00
Inderjeet Singh
93910a9d52
Updated javadoc links to point to oracle servers to avoid a redirect
2011-04-15 15:07:59 +00:00
Joel Leitch
d2cf574e86
Adding unit-tests to verify bugs.
2011-04-15 06:33:09 +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
2ccf45226e
revert pom.xml to the currently open version.
2011-04-13 21:05:32 +00:00
Inderjeet Singh
aa5ed432da
Javadocs for release 1.7.1
2011-04-13 20:41:54 +00:00
Inderjeet Singh
7c9f87d700
[maven-release-plugin] prepare for next development iteration
2011-04-13 19:51:45 +00:00
Inderjeet Singh
3d6073a427
[maven-release-plugin] prepare release gson-1.7.1
2011-04-13 19:51:35 +00:00
Inderjeet Singh
5552d17d05
removed assembly-descriptor.xml from Gson jar
2011-04-13 18:26:51 +00:00
Inderjeet Singh
7be0882863
removed the Maven configuration files from Gson jar file
2011-04-13 18:10:57 +00:00
Joel Leitch
97d00f4930
Add test to verify issue 309.
2011-04-13 16:14:54 +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
f5d6b01ca6
Update the JavaDocs for 1.7.
2011-04-12 23:05:52 +00:00
Joel Leitch
5770be4ed2
More fixes to JavaDoc.
2011-04-12 22:03:15 +00:00
Inderjeet Singh
b014017916
[maven-release-plugin] prepare for next development iteration
2011-04-12 21:53:51 +00:00
Inderjeet Singh
def5862ad4
[maven-release-plugin] prepare release gson-1.7
2011-04-12 21:53:40 +00:00
Joel Leitch
6911d932a6
Updating License to contain the full text.
2011-04-12 21:21:39 +00:00
Inderjeet Singh
6f6893b20a
added and updated version numbers for plugins
2011-04-12 18:14:50 +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
Inderjeet Singh
6b55f071ba
enabled PGP signing when using maven to perform a release.
2011-04-10 00:23:39 +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
a147164852
incorporated feedback on r721
2011-04-04 21:43:24 +00:00
Inderjeet Singh
1a9a54dcc2
incorporated review comments from r768
2011-04-04 21:27:37 +00:00
Joel Leitch
21ddfc9b12
Show default serialization and deserialization works with subclasses of an enum type.
2011-04-04 19:19:46 +00:00
Joel Leitch
5af0b16641
Updating Map tests.
2011-04-04 19:07:20 +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
Jesse Wilson
46a8e9b411
Test to demonstrate that we've fixed issue 302.
...
http://code.google.com/p/google-gson/issues/detail?id=302
2011-03-29 21:48:03 +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
005c93e383
removed unused no-args constructors
2011-03-23 18:48:03 +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
Jesse Wilson
657688ca79
Test that the date format is honored, even in a collection.
...
http://code.google.com/p/google-gson/issues/detail?id=230
2011-03-21 22:10:33 +00:00
Jesse Wilson
e96b241556
Test that we can serialize classes whose fields are concrete collections.
2011-03-21 21:49:38 +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
a9507250f9
Add test for multiple calls to register complex map key serialization.
2011-03-15 15:41:19 +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
912add0779
(Failing) test cases for registering competing types.
2011-03-14 22:14:35 +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