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); }
public void addDBObjectConverter(Mapper<?, ?> mapper) { mapperRegistry.addDBObjectMapper(mapper); }