You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by dr...@apache.org on 2020/03/23 21:01:38 UTC

[gora] 06/07: GORA-649 Use Codec interface instead of DefaultDBEncoder

This is an automated email from the ASF dual-hosted git repository.

drazzib pushed a commit to branch GORA-649-replace-deprecated-mongo-api
in repository https://gitbox.apache.org/repos/asf/gora.git

commit 890af43708d7121266330e55911f09a38542701c
Author: Damien Raude-Morvan <dr...@drazzib.com>
AuthorDate: Mon Mar 23 21:58:52 2020 +0100

    GORA-649 Use Codec interface instead of DefaultDBEncoder
---
 .../utils/{GoraDBEncoder.java => Utf8Codec.java}   | 42 +++++++++-------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java b/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java
similarity index 54%
rename from gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java
rename to gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java
index 587968a..60d5b31 100644
--- a/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java
+++ b/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java
@@ -17,40 +17,30 @@
  */
 package org.apache.gora.mongodb.utils;
 
-import java.nio.ByteBuffer;
-
 import org.apache.avro.util.Utf8;
-
-import com.mongodb.DBEncoder;
-import com.mongodb.DBEncoderFactory;
-import com.mongodb.DefaultDBEncoder;
+import org.bson.BsonReader;
+import org.bson.BsonWriter;
+import org.bson.codecs.Codec;
+import org.bson.codecs.DecoderContext;
+import org.bson.codecs.EncoderContext;
 
 /**
- * BSON encoder for BSONObject instances.
+ * BSON encoder for {@link Utf8} instances.
  */
-public class GoraDBEncoder extends DefaultDBEncoder {
+public class Utf8Codec implements Codec<Utf8> {
 
-  public static DBEncoderFactory FACTORY = new DefaultFactory();
-
-  @Override
-  protected boolean putSpecial(String name, Object val) {
-    if (val instanceof Utf8) {
-      putString(name, val.toString());
-      return true;
-    } else if (val instanceof ByteBuffer) {
-      putBinary(name, ((ByteBuffer) val).array());
-      return true;
-    } else {
-      return super.putSpecial(name, val);
+    @Override
+    public Utf8 decode(BsonReader reader, DecoderContext decoderContext) {
+        return new Utf8(reader.readString());
     }
-  }
-
-  static class DefaultFactory implements DBEncoderFactory {
 
     @Override
-    public DBEncoder create() {
-      return new GoraDBEncoder();
+    public void encode(BsonWriter writer, Utf8 value, EncoderContext encoderContext) {
+        writer.writeString(value.toString());
     }
-  }
 
+    @Override
+    public Class<Utf8> getEncoderClass() {
+        return Utf8.class;
+    }
 }