@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<BulkOperable> getOperations(){
		List<BulkOperable> operationList = new ArrayList<BulkOperable>();
		List<Bulkeable> bulkList = bulk.getOperationsList();
		for(Bulkeable bulkeable:bulkList){
				BulkOperation operation = bulkeable.getOperation();
				BulkFind find = !BulkOperation.INSERT.equals(bulkeable.getOperation()) ? (BulkFind) bulkeable : null;
		        switch (operation) {
		        case REMOVE:
		        	BasicDBObject removeQuery = new MongoQuery(find.getQuery()).getQuery();
		            BulkRemoveOperation removeInstance = new BulkRemoveOperation(removeQuery);
		            operationList.add(removeInstance);
		            break;
		        case REMOVE_ONE:
		        	BasicDBObject removeOneQuery = new MongoQuery(find.getQuery()).getQuery();
		            BulkRemoveOneOperation removeOneInstance = new BulkRemoveOneOperation(removeOneQuery);
		            operationList.add(removeOneInstance);
		            break;
		        case UPDATE:
		        	BasicDBObject updateFindQuery = new MongoQuery(find.getQuery()).getQuery();
		        	BasicDBObject updateQuery = new MongoUpdate(find.getUpdate()).getUpdate();
		            BulkUpdateOperation updateInstance = new BulkUpdateOperation(updateFindQuery,updateQuery);
		            operationList.add(updateInstance);
		            break;
		        case UPDATE_ONE:
		        	BasicDBObject updateFindOneQuery = new MongoQuery(find.getQuery()).getQuery();
		        	BasicDBObject updateOneQuery = new MongoUpdate(find.getUpdate()).getUpdate();
		            BulkUpdateOneOperation updateOneInstance = new BulkUpdateOneOperation(updateFindOneQuery,updateOneQuery);
		            operationList.add(updateOneInstance);
		            break;
		        case REPLACE_ONE:
		        	BasicDBObject replaceFindOneQuery = new MongoQuery(find.getQuery()).getQuery();
		            BulkReplaceOneOperation replaceOneInstance = new BulkReplaceOneOperation(replaceFindOneQuery,find.getEntity());
		            operationList.add(replaceOneInstance);
		            break;
				case INSERT:
					BulkInsertOperation bulkInsertOperation = new BulkInsertOperation(((BulkInsert) bulkeable).getEntity());
					operationList.add(bulkInsertOperation);
					break;
		        }
			}
		return operationList;
	}