package com.bitmonlab.osiris.api.core.map.dao.impl;
import java.io.InputStream;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.data.mongodb.core.MongoTemplate;
import com.bitmonlab.osiris.api.core.map.dao.api.MapFileRepositoryCustom;
import com.bitmonlab.osiris.api.core.map.exceptions.MapFileNotExistsException;
import com.mongodb.DB;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
@Named
public class MapFileRepositoryCustomImpl implements MapFileRepositoryCustom{
@Inject
@Named("mongoTemplate")
private MongoTemplate mongoTemplate;
private String collectionNameMap = "files_map";
@Override
public InputStream getMapFileByAppId(String appIdentifier) throws MapFileNotExistsException{
// TODO Auto-generated method stub
GridFS gridFS = getGridFS(collectionNameMap);
InputStream fileMap=getMapFileByAppId(gridFS,appIdentifier);
return fileMap;
}
private GridFS getGridFS(String collectionName){
DB db=mongoTemplate.getDb();
GridFS gridFS = new GridFS(db, collectionName);
return gridFS;
}
private InputStream getMapFileByAppId(GridFS gridFS,String appIdentifier) throws MapFileNotExistsException{
InputStream fileMap=null;
GridFSDBFile gridFSFileMap = gridFS.findOne(appIdentifier);
if(gridFSFileMap==null){
throw new MapFileNotExistsException();
}
fileMap=gridFSFileMap.getInputStream();
return fileMap;
}
}