Commit Graph

169 Commits

Author SHA1 Message Date
Serj Lotutovici
d1b1def4a1 Enable Json annotation for enum values. 2016-01-08 00:16:59 +01:00
Jake Wharton
6b945e5df7 Remove creation of synthetic accessor methods. 2015-12-22 02:45:31 -05:00
Phelipe Alves de Souza
86c9c6cbfa Increasing the code coverage of AdapterMethodsFactory 2015-11-04 19:55:35 -05:00
Prateek Srivastava
28d758d62b Presize Lists
Avoids unnecessary work due to growing the list.
2015-11-01 11:10:05 -08:00
Serj Lotutovici
ee01275c76 Create new builder from Moshi instance 2015-10-21 12:01:43 +02:00
edwardaa
04be7b8ec6 Doc fix for JsonWriter.serializeNulls 2015-10-03 15:20:59 +08:00
David Mihola
7970c36893 Make two methods on Types public.
To facilitate custom JsonAdapter.Factory implementations.
2015-09-29 10:44:41 +02:00
jwilson
e6a77041a1 [maven-release-plugin] prepare for next development iteration 2015-09-27 13:25:21 -04:00
jwilson
e93e6574ca [maven-release-plugin] prepare release moshi-parent-1.0.0 2015-09-27 13:25:18 -04:00
jwilson
e181db0015 JsonReader.of() and JsonWriter.of() instead of constructors.
This opens the door to later implementations of these types that write
to something other than a stream. In particular, we could have a
JsonReader that reads from a DOM-like object, or a JsonWriter that
creates such an object.
2015-09-27 12:09:32 -04:00
jwilson
f7b09188a8 Audit @link for should-be @linkplain uses.
Closes https://github.com/square/moshi/issues/37
2015-09-27 11:27:55 -04:00
jwilson
9d9f12f808 Adapter caching, plus other ergonomic features.
This adds a toString() to most adapters. The format isn't perfect, but
it should make step-debugging easier.

Define the precedence order of adapter factories.

Forbid registering adapters with annotation literals if those annotations
need values to be provided.
2015-09-26 15:18:48 -04:00
Serj Lotutovici
80953219bd ObjectJsonAdapter should not fail on null values.
Closes #79
2015-09-17 09:46:00 +02:00
jwilson
a167913e5d Make four methods on Types public.
Not Moshi's responsibility, but pragmatic.

Closes https://github.com/square/moshi/issues/73
2015-08-21 00:02:07 -04:00
Ryan Harter
8d575b3c51 Adds method scope to Json annotation for use with AutoValue. 2015-08-17 10:30:27 -05:00
Jake Wharton
4b76bb9526 Throw a better message attempting to adapt a platform type. 2015-08-08 20:29:27 -04:00
jwilson
97fc14616d New APIs to reject unknown values. 2015-08-02 23:27:16 -04:00
jwilson
7890effcee New @Json annotation to customize a field's name. 2015-08-02 23:14:04 -04:00
jwilson
d87bf52053 Nicer failure messages on partial adapters.
Closes https://github.com/square/moshi/issues/59
2015-06-21 15:32:27 -04:00
Dave Roberge
0ce7310caa Update JsonReader & JsonWriter javadoc to use BufferedSource & BufferedSink 2015-06-20 09:46:24 -04:00
Jesse Wilson
41ec6118fe Merge pull request #57 from square/jw/no-io
There is no I/O writing to a Buffer.
2015-06-17 10:11:38 -04:00
Jake Wharton
a25508a85e There is no I/O writing to a Buffer. 2015-06-17 00:16:03 -04:00
jwilson
c9b2dbe395 [maven-release-plugin] prepare for next development iteration 2015-06-16 07:45:59 -04:00
jwilson
46a8a880e9 [maven-release-plugin] prepare release moshi-parent-0.9.0 2015-06-16 07:45:57 -04:00
jwilson
d01c5782c3 Initial round of Moshi docs. 2015-06-16 07:35:41 -04:00
jwilson
a3520730a0 New magic API to use type adapters for map keys. 2015-06-14 23:58:16 -04:00
Jake Wharton
a69c32741e Merge pull request #52 from square/jwilson_0613_object_adapter
Runtime type adapter.
2015-06-14 17:51:49 -04:00
jwilson
bb31ba18ca Runtime type adapter.
Closes https://github.com/square/moshi/issues/27
2015-06-13 13:06:09 -04:00
Jake Wharton
707f33226c Merge pull request #51 from square/jwilson_0609_jsonwriter_getpath
JsonWriter.getPath().
2015-06-09 23:22:48 -04:00
jwilson
39dc305a14 JsonWriter.getPath(). 2015-06-09 23:00:40 -04:00
jwilson
dce373c37d Throw JsonDataException consistently.
We throw IllegalStateException when the application code is
internally inconsistent, such as when it closes and then writes
or similar.

We throw an IOException when the source JSON is structurally
invalid, such as when strings are unquoted in strict mode.

And we throw JsonDataException when the application code is
correct, and the JSON is well-formed, but the application code
and JSON disagree with one another.
2015-06-07 11:12:39 -04:00
jwilson
f829ac6ffb Use AssertJ instead of JUnit assertions. 2015-06-02 09:50:43 -04:00
jwilson
236e8bd62f Support @Nullable in Adapter Methods.
When the annotation is present, the adapter method is used. When
it isn't, it isn't.
2015-06-01 00:32:14 -04:00
jwilson
d6d9f9ead3 New @JsonQualifier annotation.
Works like JSR-330's @Qualifier annotation. You may have
multiple qualifiers, or none.
2015-05-31 13:07:21 -04:00
Jesse Wilson
629181ff8c Merge pull request #42 from square/jwilson_0525_adaptermethods
Adapter methods.
2015-05-25 14:46:50 -07:00
jwilson
71f0889842 Adapter methods.
This is a fun new API that could make writing JSON adapters
much easier.
2015-05-25 14:40:40 -07:00
jwilson
c8fd0e4bc2 Reject unrecognized enum constants with an exception.
Also promote enum adapter to StandardJsonAdapters.java.
2015-05-25 07:35:08 -07:00
Jesse Wilson
8003b6668b Merge pull request #32 from dandc87/ak_enum_support
EnumJsonAdapter
2015-05-25 07:25:09 -07:00
jwilson
912c07dafa Save an allocation by using Okio instead of substring. 2015-05-25 06:45:00 -07:00
Adam Koski
a0b177136d Squashed commit of the following:
commit f4e6b9aab54b270ca703794fde9370d00821dfca
Author: Adam Koski <dandc87@gmail.com>
Date:   Sun Apr 12 19:25:49 2015 -0700

    Add copyright headers and remove redundant test

commit 064dfbb5ec7c6ed8e60c91776ce0a4e90a29ff9e
Author: Adam Koski <dandc87@gmail.com>
Date:   Sun Apr 12 13:10:17 2015 -0700

    Fix error preventing merging

commit d80c00ef2b7220397dd074dd6ceb03b9be9ec416
Author: Adam Koski <dandc87@gmail.com>
Date:   Sun Apr 12 12:59:46 2015 -0700

    Switch to using name()

commit 7e68f21537a58843c0426c5e73028e12b0522b96
Author: Adam Koski <dandc87@gmail.com>
Date:   Sat Apr 11 22:37:25 2015 -0700

    Optimize enum value retrieval

commit 1422abd632ca147252f5b0698c8b19dc77ca3fac
Author: Adam Koski <dandc87@gmail.com>
Date:   Sat Apr 11 22:35:06 2015 -0700

    Add enum test for custom names

commit 8a7fefe28a98576f8db849fe83fb7973fefd1f12
Author: Adam Koski <dandc87@gmail.com>
Date:   Fri Apr 10 19:32:46 2015 -0700

    Add javadoc

commit 920b7c6883664df39d99eb206b933c4929157d84
Author: Adam Koski <dandc87@gmail.com>
Date:   Fri Apr 10 19:21:18 2015 -0700

    Rename class to match convention

commit 461e87aa02552e09d0c4a0feaf2971e6050aa994
Author: Adam Koski <dandc87@gmail.com>
Date:   Thu Apr 9 23:20:05 2015 -0700

    Add initial support for enums
2015-04-12 19:27:38 -07:00
Jesse Wilson
eece10d46e Merge pull request #35 from square/jw/expose-sink
Expose Sink as constructor type.
2015-04-12 15:36:32 -04:00
Jake Wharton
a085548014 Use BufferedSink for reading. Sink writing convenience method. 2015-04-12 14:41:04 -04:00
Jake Wharton
9fedfc8066 Switch types to be final. 2015-04-12 14:29:18 -04:00
Jesse Wilson
41b3b0acde Merge pull request #36 from square/jw/token
Make token a nested type of the reader.
2015-04-12 06:07:07 -04:00
Jake Wharton
47cd73df89 Make token a nested type of the reader.
This is the only class which uses these tokens and it does not deserve a top-level type.
2015-04-12 00:57:14 -04:00
Jake Wharton
5e757e6f39 Correct Javadoc code usage. 2015-04-12 00:25:07 -04:00
Jake Wharton
8af08de19e Clean up warnings for Java 7 language level. 2015-03-27 00:37:01 -04:00
jwilson
144f57ad4c JsonAdapterFactories can lookup types they create.
Without this, things fail with stack overflow exceptions.
2015-03-24 23:54:31 -04:00
jwilson
795f262106 Map adapter.
Limited to string keys for now.
2015-03-23 23:15:03 -04:00
jwilson
08becc119a Big start into ClassAdapter.
This borrows from Gson's UnsafeAllocator. I didn't actually
borrow much from Gson's reflective type adapter, but I'll need
to review that in follow up to see if I forgot anything that
Gson covers.

Most interesting design decision here is that fields are
serialized in alphabetical order. Also we're pretty nice
around detecting field collisiosn and failing early.
2015-03-23 00:13:04 -04:00