![JAR search and dependency download from the Maven repository](/logo.png)
gr.iti.mklab.framework.common.domain.JSONable Maven / Gradle / Ivy
package gr.iti.mklab.framework.common.domain;
import java.io.Serializable;
import org.mongodb.morphia.Morphia;
import org.mongodb.morphia.annotations.Id;
import org.mongodb.morphia.annotations.Property;
import com.mongodb.DBObject;
import com.mongodb.util.JSON;
/**
*
* @author manosetro - [email protected]
*/
public class JSONable implements Serializable, Comparable {
/**
*
*/
private static final long serialVersionUID = -3056665779688434226L;
private static Morphia morphia = new Morphia();
// Unique id of an instance with the following structure: StreamName#internalId
@Id
@Property("id")
protected String id;
protected Double score;
public double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Override
public String toString() {
synchronized(morphia) {
morphia.map(JSONable.class);
DBObject obj = morphia.toDBObject(this);
return obj.toString();
}
}
public DBObject toDBObject() {
synchronized(morphia) {
morphia.map(JSONable.class);
DBObject obj = morphia.toDBObject(this);
return obj;
}
}
public static K toObject(String json, Class clazz) {
synchronized(morphia) {
morphia.map(clazz);
DBObject obj = (DBObject) JSON.parse(json);
return morphia.fromDBObject(clazz, obj);
}
}
public static K toObject(DBObject obj, Class clazz) {
synchronized(morphia) {
morphia.map(clazz);
return morphia.fromDBObject(clazz, obj);
}
}
@Override
public int compareTo(JSONable other) {
if(this.score > other.score) {
return 1;
}
else {
return -1;
}
}
public static void mapClass(Class> c) {
morphia.map(c);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy