Commit Graph

323 Commits

Author SHA1 Message Date
Eric Cochran
de336ef86e Allow delegates for intermediates in adapters. 2017-10-04 15:53:33 -07:00
Eric Cochran
2db89355f1 Add CheckReturnValue for toJson's string result.
This helps Error Prone and the IDE find accidental usages of toJson(value) instead of toJson(writer, value).
2017-09-25 14:18:31 -04:00
Eric Cochran
00694e9878 Fail earlier with null annotation set. 2017-07-19 11:29:06 -07:00
jwilson
9e9655b556 Change the adapter for Object.class to delegate.
Previously if we ever had an opaque Object, the content of this object
would always only use the built-in adapters for its members.

This changes the built-in Object adapter to do one layer of type checking
and then to delegate to user-supplied adapters.

The big upside of this is that application code can now change the default
numeric type to use when decoding an untyped object. Typically this will
be used to replace our default of Double with a user-specified numeric type
like BigDecimal.
2017-05-26 23:44:46 -04:00
jwilson
798f14bda5 [maven-release-plugin] prepare for next development iteration 2017-05-14 22:20:00 -04:00
jwilson
f42ae45f4c [maven-release-plugin] prepare release moshi-parent-1.5.0 2017-05-14 22:19:55 -04:00
Eric Cochran
e59dbf4f96 Add @Nullable to result of Types.nextAnnotations. (#298) 2017-05-06 21:07:59 -04:00
Jesse Wilson
c65b3bf1cb Import jsr305 and use it to mark @Nullable stuff. (#297) 2017-05-06 20:31:24 -04:00
jwilson
0ea1959b7e Enable Checkstyle 7.7. 2017-05-06 14:48:55 -04:00
Eric Cochran
13fd0b252c Throw NPE for null indent string in factory method. (#289)
Fail when creating the JsonAdapter rather than when using it.
2017-04-29 21:46:08 -04:00
Serj Lotutovici
f942e0fd52 Make Types.equals(Type, Type) public. (#292) 2017-04-29 21:45:06 -04:00
Eric Cochran
d95dd07c56 Fix Types.equals for arrays. (#279) 2017-04-20 17:27:47 -05:00
Eric Cochran
448a2d3298 Treat negative zero as a number, not a long. (#285)
Updates logic from https://github.com/google/gson/issues/1053
2017-04-20 17:22:06 -05:00
Jesse Wilson
81bbe870f1 KotlinJsonAdapter (#281)
* Add kotlin-module with support for Kotlin data classes

* Naming and style changes to KotlinJsonAdapter.

Biggest changes:

 * Attempt to support regular classes and data classes
 * Avoid parameter hashing when indexing is sufficient for
   constructor parameters
2017-04-18 23:51:37 -04:00
Jesse Wilson
8c18caf574 Add a test to confirm types are canonicalized. (#278)
Obsoletes https://github.com/square/moshi/pull/129/files
2017-04-16 12:15:53 -04:00
Eric Cochran
11dbc3c50b Fix @ToJson IAE message. (#275) 2017-03-28 05:57:53 -04:00
Eric Cochran
718f832864 Allow easy delegates in adapter methods. (#272) 2017-03-27 21:48:19 -04:00
Eric Cochran
1b634bbb74 Update adapter methods ISE message. (#273) 2017-03-27 19:25:31 -04:00
Jake Wharton
05b0a46961 Add error-prone compiler. (#259)
* Fix error-prone warning

* Add error-prone compiler.

* Suppress warning about calling getClass() on annotation.
2017-02-14 22:28:24 -05:00
jwilson
49092ece96 [maven-release-plugin] prepare for next development iteration 2017-02-04 15:20:11 -05:00
jwilson
d075a3e56a [maven-release-plugin] prepare release moshi-parent-1.4.0 2017-02-04 15:20:05 -05:00
Eric Cochran
332adcadf5 Add JsonReader.readJsonValue 2017-02-03 20:29:59 -08:00
jwilson
5ea65a5f95 Fix a typo in the name of JsonUtf8Writer. 2017-02-03 13:02:18 -05:00
jwilson
e9d8538ec3 Rename toJsonObject() to toJsonValue(), fromJsonObject() to fromJsonValue().
Also rename the JsonReader and JsonWriter implementations.
2017-02-02 21:28:38 -05:00
Jesse Wilson
3af58f4a43 Merge pull request #245 from NightlyNexus/eric/platform-fields
Fix isPlatformType
2017-02-02 09:10:45 -05:00
jwilson
fdaecb9fb8 Use BigDecimal to encode exotic number types.
Previously we'd retain whatever types the caller passed in. This was
potentially problematic for non-immutable numeric types like AtomicInteger.
2017-02-02 08:27:07 -05:00
Eric Cochran
9420b6493c Fix isPlatformType
createFieldBindings should not take the allowed platform types into
account.
2017-02-01 18:37:44 -08:00
Jesse Wilson
3c23da50cf Merge pull request #242 from NightlyNexus/eric/nextAnnotations
Add Types.nextAnnotations
2017-01-31 21:08:14 -05:00
Eric Cochran
9417cd8207 Add tests for duplicate JSON keys 2017-01-31 14:44:17 -08:00
Eric Cochran
05b594a26c Add Types.nextAnnotations 2017-01-31 11:18:13 -08:00
Eric Cochran
6a2981108f Add arrayOf, subtypeOf, supertypeOf tests 2017-01-30 23:03:20 -08:00
Jesse Wilson
ed164fd806 Merge pull request #235 from NightlyNexus/master
Improve error message for qualified platform types
2017-01-30 20:56:34 -05:00
Jesse Wilson
14a430cb58 Merge pull request #237 from NightlyNexus/patch-1
Add Types.createJsonQualifierImplementation
2017-01-30 20:55:00 -05:00
Eric Cochran
d27eaa161a Add adapter(Type, Class<? extends Annotation>) 2017-01-30 11:19:40 -08:00
jwilson
75b549f1ff Implement promoteValueToName() for ObjectJsonWriter.
This was renamed from promoteNameToValue(). Also run the test on both types of
codecs and fix some implementation issues that uncovered.
2017-01-29 22:47:59 -05:00
jwilson
b338d1e7ed New JsonAdapter.serializeNulls() method.
This makes it possible to force nulls into the document without
much fuss.
2017-01-29 22:18:12 -05:00
Eric Cochran
99c1cd0ffd Improve error message for qualified platform types 2017-01-28 16:47:22 -08:00
Jesse Wilson
99479682ba Merge pull request #233 from square/jwilson.0124.promote_stacks
Promote stack management to the JsonReader/JsonWriter supertypes.
2017-01-25 22:26:30 -05:00
jwilson
4b7ced70e4 Promote stack management to the JsonReader/JsonWriter supertypes.
It turns out that we can reuse a lot of code with inheritance. Who knew?
2017-01-25 22:25:19 -05:00
jwilson
e54b023991 New APIs: JsonAdapter.toJsonObject, fromJsonObject.
https://github.com/square/moshi/issues/89
2017-01-24 22:11:31 -05:00
jwilson
5ca491fe50 Implement ObjectJsonWriter.
https://github.com/square/moshi/issues/89
2017-01-23 20:46:35 -05:00
Jake Wharton
3f06c0cf55 Merge pull request #228 from square/jwilson.0122.json_writer_tests
Prepare tests for a 2nd implementation of JsonWriter.
2017-01-23 17:32:44 -05:00
Serj Lotutovici
ed6c3a66b0 ObjectJsonReader.typeMismatch should return not throw. 2017-01-23 00:12:11 +01:00
Jesse Wilson
050b9affbc Merge pull request #230 from serj-lotutovici/sl/no_loop_if_buf
Avoid calling source.select() if the value is buffered.
2017-01-22 18:00:21 -05:00
Serj Lotutovici
ddf2489910 Avoid calling source.select() if the value is buffered. 2017-01-22 23:35:02 +01:00
Serj Lotutovici
5904b9ce8b Class and Enum adapters now rely only on Options. 2017-01-22 23:08:52 +01:00
Jesse Wilson
db30df146f Merge pull request #217 from serj-lotutovici/sl/make_options_public
Make JsonReader.selectName and JsonReader.selectString public.
2017-01-22 16:30:13 -05:00
Serj Lotutovici
89f4527466 Make JsonReader.selectName and JsonReader.selectString public.
* Make JsonReader.Options public by extent.
* Both select methods now stip out unnecessary escaping.
* Re-order tests for select methods.
2017-01-22 22:06:45 +01:00
jwilson
94ff4b7cc2 Prepare tests for a 2nd implementation of JsonWriter. 2017-01-22 15:07:45 -05:00
Serj Lotutovici
c69049661b Make JsonReaderFactory implement toString(). 2017-01-22 09:36:24 +01:00