diff --git a/src/main/java/net/frozenorb/apiv3/APIv3.java b/src/main/java/net/frozenorb/apiv3/APIv3.java index 7954d0c..b3b5346 100644 --- a/src/main/java/net/frozenorb/apiv3/APIv3.java +++ b/src/main/java/net/frozenorb/apiv3/APIv3.java @@ -11,6 +11,7 @@ import com.mongodb.ServerAddress; import lombok.Getter; import net.frozenorb.apiv3.model.*; import net.frozenorb.apiv3.weirdStuff.ExcludeFromReplies; +import net.frozenorb.apiv3.weirdStuff.FollowAnnotationExclusionStrategy; import net.frozenorb.apiv3.weirdStuff.ObjectIdTypeAdapter; import org.bson.types.ObjectId; import org.mongodb.morphia.Datastore; @@ -23,19 +24,7 @@ import static spark.Spark.*; public final class APIv3 { @Getter private static Datastore datastore; - private final Gson gson = new GsonBuilder().registerTypeAdapter(ObjectId.class, new ObjectIdTypeAdapter()).setExclusionStrategies(new ExclusionStrategy() { - - @Override - public boolean shouldSkipField(FieldAttributes fieldAttributes) { - return fieldAttributes.getAnnotation(ExcludeFromReplies.class) != null; - } - - @Override - public boolean shouldSkipClass(Class aClass) { - return false; - } - - }).create(); + private final Gson gson = new GsonBuilder().registerTypeAdapter(ObjectId.class, new ObjectIdTypeAdapter()).setExclusionStrategies(new FollowAnnotationExclusionStrategy()).create(); APIv3() { setupDatabase(); diff --git a/src/main/java/net/frozenorb/apiv3/weirdStuff/FollowAnnotationExclusionStrategy.java b/src/main/java/net/frozenorb/apiv3/weirdStuff/FollowAnnotationExclusionStrategy.java new file mode 100644 index 0000000..acd49b7 --- /dev/null +++ b/src/main/java/net/frozenorb/apiv3/weirdStuff/FollowAnnotationExclusionStrategy.java @@ -0,0 +1,18 @@ +package net.frozenorb.apiv3.weirdStuff; + +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; + +public final class FollowAnnotationExclusionStrategy implements ExclusionStrategy { + + @Override + public boolean shouldSkipField(FieldAttributes fieldAttributes) { + return fieldAttributes.getAnnotation(ExcludeFromReplies.class) != null; + } + + @Override + public boolean shouldSkipClass(Class aClass) { + return false; + } + +} \ No newline at end of file