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;
+ }
}