Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * (C) Copyright 2013 Kurento (http://kurento.org/)
   *
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the GNU Lesser General Public License
   * (LGPL) version 2.1 which accompanies this distribution, and is available at
   * http://www.gnu.org/licenses/lgpl-2.1.html
   *
   * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  */
 
 package com.kurento.kmf.repository.internal.repoimpl.mongo;
 
 import java.util.List;
 import java.util.Map;
 
 
 import  org.springframework.beans.factory.annotation.Autowired;
 import  org.springframework.data.mongodb.core.MongoTemplate;
 
 import  com.mongodb.BasicDBObject;
 import  com.mongodb.DBObject;
 import  com.mongodb.gridfs.GridFS;
 import  com.mongodb.gridfs.GridFSDBFile;
 import  com.mongodb.gridfs.GridFSInputFile;
 import  com.mongodb.util.JSON;
 
 public class MongoRepository implements RepositoryWithHttp {
 
 	private final Logger log = LoggerFactory.getLogger(MongoRepository.class);
 
 	@Autowired
 	private MongoTemplate mongoTemplate;
 
 	private GridFS gridFS;
 
 	@Autowired
 
 	private void postConstruct() {
 		 = new GridFS(.getDb());
 	}
 
 	// TODO Define ways to let users access to low level mongo backend. I prefer
 	// using Spring with @Autowired, but can be useful to let users access
 	// mongo from repository.
 	public GridFS getGridFS() {
 		return ;
 	}
 
 
 		List<GridFSDBFile> dbFiles = .find(idQuery(id));
 
 		if (dbFiles.size() > 0) {
 
 			if (dbFiles.size() > 1) {
 				.warn("There are several files with the same "
 						+ "filename and should be only one");
 			}
 
 			return createRepositoryItem(dbFiles.get(0));
 		}
 
 		throw new NoSuchElementException("The repository item with id \"" + id
 				+ "\" does not exist");
 	}
 
 	private DBObject idQuery(String id) {
 		return new BasicDBObject("_id"id);
 	}
 
 	private RepositoryItem createRepositoryItem(GridFSInputFile dbFile) {
 		return new MongoRepositoryItem(thisdbFile);
 	}
 
 	private MongoRepositoryItem createRepositoryItem(GridFSDBFile dbFile) {
 
 		MongoRepositoryItem item = new MongoRepositoryItem(thisdbFile);
 
 		Map<StringStringmetadata = new HashMap<>();
 		DBObject object = dbFile.getMetaData();
 		for (String key : object.keySet()) {
			metadata.put(keyobject.get(key).toString());
		}
		item.setMetadata(metadata);
		return item;
	}
		GridFSInputFile dbFile = .createFile();
		dbFile.setFilename(dbFile.getId().toString());
		return createRepositoryItem(dbFile);
	}
		// TODO The file is not written until outputstream is closed. There is a
		// potentially data race with this unique test
		if (!.find(idQuery(id)).isEmpty()) {
			throw new DuplicateItemException(id);
		}
		GridFSInputFile dbFile = .createFile(id);
		dbFile.setId(id);
		return createRepositoryItem(dbFile);
	}
		return ;
	}
	public void remove(RepositoryItem item) {
				"Repository Item removed");
		.remove(idQuery(item.getId()));
	}
			String attributeNameString value) {
		String query = "{'metadata." + attributeName + "':'" + value + "'}";
	}
			String attributeNameString regex) {
		String query = "{'metadata." + attributeName + "': { $regex : '"
regex + "'}}";
	}
		List<GridFSDBFile> files = .find((DBObject) JSON.parse(query));
		List<RepositoryItemrepositoryItems = new ArrayList<>();
		for (GridFSDBFile file : files) {
			repositoryItems.add(createRepositoryItem(file));
		}
		return repositoryItems;
	}
New to GrepCode? Check out our FAQ X