package com.bitmonlab.osiris.imports.map.dao.impl; import java.io.File; import java.io.IOException; import javax.inject.Inject; import javax.inject.Named; import org.springframework.data.mongodb.core.MongoTemplate; import com.bitmonlab.osiris.imports.map.dao.api.ImportFilesRepositoryCustom; import com.mongodb.DB; import com.mongodb.gridfs.GridFS; import com.mongodb.gridfs.GridFSDBFile; import com.mongodb.gridfs.GridFSInputFile; @Named public class ImportFilesRepositoryCustomImpl implements ImportFilesRepositoryCustom{ @Inject @Named("mongoTemplate") private MongoTemplate mongoTemplate; private String collectionNameMap = "files_map"; private String collectionNameOSM = "files_osm"; private String collectionNameObj = "files_obj"; @Override public void saveFileMap(String appIdentifier, File map) throws IOException{ // TODO Auto-generated method stub GridFS gridFS = getGridFS(collectionNameMap); removeFile(appIdentifier,gridFS); saveFile(appIdentifier,map,gridFS); } @Override public void saveFileOSM(String appIdentifier, File osm) throws IOException{ // TODO Auto-generated method stub GridFS gridFS = getGridFS(collectionNameOSM); removeFile(appIdentifier,gridFS); saveFile(appIdentifier,osm,gridFS); } @Override public void saveFileObj(String appIdentifier, File obj) throws IOException{ // TODO Auto-generated method stub GridFS gridFS = getGridFS(collectionNameObj); removeFile(appIdentifier,gridFS); saveFile(appIdentifier,obj,gridFS); } private GridFS getGridFS(String collectionName){ DB db=mongoTemplate.getDb(); GridFS gridFS = new GridFS(db, collectionName); return gridFS; } private void saveFile(String appIdentifier, File file, GridFS gridFS) throws IOException{ GridFSInputFile gridFSInputFile = gridFS.createFile(file); gridFSInputFile.setFilename(appIdentifier); gridFSInputFile.save(); } private void removeFile(String appIdentifier,GridFS gridFS){ GridFSDBFile gridFSFileRemoveFile = gridFS.findOne(appIdentifier); if(gridFSFileRemoveFile!=null){ gridFS.remove(gridFSFileRemoveFile); } } }