|
@@ -4,23 +4,27 @@ import com.mongodb.client.MongoCollection;
|
|
|
import com.mongodb.client.MongoDatabase;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.bson.Document;
|
|
|
+import org.bson.conversions.Bson;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
import org.ssssssss.magicapi.config.MagicModule;
|
|
|
import org.ssssssss.magicapi.model.Constants;
|
|
|
+import org.ssssssss.script.convert.ClassImplicitConvert;
|
|
|
import org.ssssssss.script.reflection.JavaInvoker;
|
|
|
import org.ssssssss.script.reflection.JavaReflection;
|
|
|
+import org.ssssssss.script.runtime.Variables;
|
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* mongo模块
|
|
|
*
|
|
|
* @author mxd
|
|
|
*/
|
|
|
-public class MongoModule extends HashMap<String, MongoModule.MongoDataBaseGetter> implements MagicModule {
|
|
|
+public class MongoModule extends HashMap<String, MongoModule.MongoDataBaseGetter> implements MagicModule, ClassImplicitConvert {
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(MongoModule.class);
|
|
|
|
|
@@ -46,6 +50,7 @@ public class MongoModule extends HashMap<String, MongoModule.MongoDataBaseGetter
|
|
|
} else {
|
|
|
logger.error("mongo模块初始化失败");
|
|
|
}
|
|
|
+ JavaReflection.registerImplicitConvert(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -66,6 +71,16 @@ public class MongoModule extends HashMap<String, MongoModule.MongoDataBaseGetter
|
|
|
return "mongo";
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean support(Class<?> from, Class<?> to) {
|
|
|
+ return Map.class.isAssignableFrom(from) && (Bson.class.isAssignableFrom(to));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object convert(Variables variables, Object source, Class<?> target) {
|
|
|
+ return new Document((Map<String, Object>) source);
|
|
|
+ }
|
|
|
+
|
|
|
public static class MongoDataBaseGetter extends HashMap<String, MongoCollection<Document>> {
|
|
|
|
|
|
MongoDatabase database;
|