示例#1
0
  public MongoStoreImpl(
      DB database, boolean clearCollectionsOnStartup, Class<?>[] managedEntityTypes) {
    this.database = database;

    mapperRegistry = new MapperRegistry();

    for (Class<?> simpleMapperClass : SIMPLE_TYPES) {
      SimpleMapper mapper = new SimpleMapper(simpleMapperClass);
      mapperRegistry.addAppObjectMapper(mapper);
      mapperRegistry.addDBObjectMapper(mapper);
    }

    // Specific converter for ArrayList is added just for performance purposes to avoid recursive
    // converter lookup (most of list idm will be ArrayList)
    mapperRegistry.addAppObjectMapper(new ListMapper(mapperRegistry, ArrayList.class));
    mapperRegistry.addAppObjectMapper(new ListMapper(mapperRegistry, List.class));
    mapperRegistry.addDBObjectMapper(new BasicDBListMapper(mapperRegistry));

    mapperRegistry.addAppObjectMapper(new MapMapper(HashMap.class));
    mapperRegistry.addAppObjectMapper(new MapMapper(Map.class));
    mapperRegistry.addDBObjectMapper(new BasicDBObjectToMapMapper());

    // Enum converters
    mapperRegistry.addAppObjectMapper(new EnumToStringMapper());
    mapperRegistry.addDBObjectMapper(new StringToEnumMapper());

    for (Class<?> type : managedEntityTypes) {
      getEntityInfo(type);
      mapperRegistry.addAppObjectMapper(new MongoEntityMapper(this, mapperRegistry, type));
      mapperRegistry.addDBObjectMapper(new BasicDBObjectMapper(this, mapperRegistry, type));
    }

    if (clearCollectionsOnStartup) {
      // dropDatabase();
      clearManagedCollections(managedEntityTypes);
    }

    initManagedCollections(managedEntityTypes);
  }
示例#2
0
 public void addDBObjectConverter(Mapper<?, ?> mapper) {
   mapperRegistry.addDBObjectMapper(mapper);
 }