@@ -127,6 +127,26 @@ public void encode(final BsonWriter writer, final Document document) {
127127 writer .writeEndDocument ();
128128 }
129129
130+ @ Override
131+ public Document decode (final BsonReader reader ) {
132+ Document document = new Document ();
133+
134+ reader .readStartDocument ();
135+ while (reader .readBSONType () != BsonType .END_OF_DOCUMENT ) {
136+ String fieldName = reader .readName ();
137+ document .put (fieldName , readValue (reader ));
138+ }
139+
140+ reader .readEndDocument ();
141+
142+ return document ;
143+ }
144+
145+ @ Override
146+ public Class <Document > getEncoderClass () {
147+ return Document .class ;
148+ }
149+
130150 private void beforeFields (final BsonWriter bsonWriter , final Document document ) {
131151 if (document .containsKey (ID_FIELD_NAME )) {
132152 bsonWriter .writeName (ID_FIELD_NAME );
@@ -139,7 +159,7 @@ private boolean skipField(final String key) {
139159 }
140160
141161 @ SuppressWarnings ({"unchecked" , "rawtypes" })
142- protected void writeValue (final BsonWriter writer , final Object value ) {
162+ private void writeValue (final BsonWriter writer , final Object value ) {
143163 if (value == null ) {
144164 writer .writeNull ();
145165 } else {
@@ -148,22 +168,7 @@ protected void writeValue(final BsonWriter writer, final Object value) {
148168 }
149169 }
150170
151- @ Override
152- public Document decode (final BsonReader reader ) {
153- Document document = new Document ();
154-
155- reader .readStartDocument ();
156- while (reader .readBSONType () != BsonType .END_OF_DOCUMENT ) {
157- String fieldName = reader .readName ();
158- document .put (fieldName , readValue (reader , fieldName ));
159- }
160-
161- reader .readEndDocument ();
162-
163- return document ;
164- }
165-
166- protected Object readValue (final BsonReader reader , final String fieldName ) {
171+ private Object readValue (final BsonReader reader ) {
167172 BsonType bsonType = reader .getCurrentBsonType ();
168173 if (bsonType == BsonType .NULL ) {
169174 reader .readNull ();
@@ -172,10 +177,4 @@ protected Object readValue(final BsonReader reader, final String fieldName) {
172177 return registry .get (bsonTypeClassMap .get (bsonType )).decode (reader );
173178 }
174179 }
175-
176- @ Override
177- public Class <Document > getEncoderClass () {
178- return Document .class ;
179- }
180-
181180}
0 commit comments