Author: mfranklin
Date: Tue Oct 16 17:22:59 2012
New Revision: 1398891
URL: http://svn.apache.org/viewvc?rev=1398891&view=rev
Log:
Added support for update
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoModelTemplate.java
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java?rev=1398891&r1=1398890&r2=1398891&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
Tue Oct 16 17:22:59 2012
@@ -23,6 +23,7 @@ import org.apache.rave.portal.model.Page
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.Widget;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
@@ -30,11 +31,12 @@ import java.util.List;
*/
public interface MongoModelOperations<T> {
long count(Query query);
- void remove(Query query);
T findOne(Query query);
List<T> find(Query query);
T get(long id);
T save(T item);
+ void remove(Query query);
+ int update(Query query, Update update);
public static interface MongoPageOperations extends
MongoModelOperations<Page> {}
public static interface MongoUserOperations extends
MongoModelOperations<User> {}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java?rev=1398891&r1=1398890&r2=1398891&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
Tue Oct 16 17:22:59 2012
@@ -26,7 +26,6 @@ import org.apache.rave.portal.model.*;
import org.apache.rave.portal.repository.MongoModelOperations;
import org.apache.rave.portal.repository.PersonRepository;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
@@ -35,6 +34,7 @@ import java.util.HashMap;
import java.util.List;
import static org.springframework.data.mongodb.core.query.Criteria.where;
+import static org.springframework.data.mongodb.core.query.Query.query;
/**
*/
@@ -200,11 +200,6 @@ public class MongoDbPersonRepository imp
return query(where("username").is(username));
}
-
- private Query query(Criteria criteria) {
- return new Query(criteria);
- }
-
private void removeAssociation(MongoDbUser friend, MongoDbUser person) {
for(MongoDbPersonAssociation association : person.getFriends()) {
if(association.getPersonId().equals(friend.getId())) {
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java?rev=1398891&r1=1398890&r2=1398891&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
Tue Oct 16 17:22:59 2012
@@ -24,13 +24,13 @@ import org.apache.rave.portal.model.User
import org.apache.rave.portal.repository.MongoModelOperations;
import org.apache.rave.portal.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import static org.springframework.data.mongodb.core.query.Criteria.where;
+import static org.springframework.data.mongodb.core.query.Query.query;
/**
@@ -107,10 +107,6 @@ public class MongoDbUserRepository imple
template.remove(query(where("_id").is(item.getId())));
}
- private Query query(Criteria criteria) {
- return new Query(criteria);
- }
-
private Query getSearchQuery(String searchTerm) {
return
query(where("username").is(searchTerm).orOperator(where("email").is(searchTerm)));
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java?rev=1398891&r1=1398890&r2=1398891&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
Tue Oct 16 17:22:59 2012
@@ -33,6 +33,8 @@ import java.util.List;
import java.util.Map;
import static org.springframework.data.mongodb.core.query.Criteria.where;
+import static org.springframework.data.mongodb.core.query.Query.query;
+import static org.springframework.data.mongodb.core.query.Update.update;
/**
@@ -125,17 +127,18 @@ public class MongoDbWidgetRepository imp
@Override
public List<Widget> getWidgetsByTag(String tagKeyWord, int offset, int
pageSize) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return
template.find(getTagQuery(tagKeyWord).limit(pageSize).skip(offset));
}
@Override
public int getCountByTag(String tagKeyword) {
- return 0; //To change body of implemented methods use File | Settings
| File Templates.
+ return (int)template.count(getTagQuery(tagKeyword));
}
@Override
public int unassignWidgetOwner(long userId) {
- return 0; //To change body of implemented methods use File | Settings
| File Templates.
+ Query query = query(where("ownerId").is(userId));
+ return template.update(query, update("ownerId", null));
}
@Override
@@ -171,6 +174,10 @@ public class MongoDbWidgetRepository imp
}
private Query getQueryByOwner(User owner) {
- return new Query(where("ownerId").is(owner.getId()));
+ return query(where("ownerId").is(owner.getId()));
+ }
+
+ private Query getTagQuery(String tagKeyWord) {
+ return
query(where("tags").elemMatch(where("tag.keyword").is(tagKeyWord)));
}
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoModelTemplate.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoModelTemplate.java?rev=1398891&r1=1398890&r2=1398891&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoModelTemplate.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoModelTemplate.java
Tue Oct 16 17:22:59 2012
@@ -19,12 +19,14 @@
package org.apache.rave.portal.repository.impl;
+import com.mongodb.WriteResult;
import org.apache.rave.portal.model.conversion.HydratingConverterFactory;
import org.apache.rave.portal.repository.MongoModelOperations;
import org.apache.rave.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
@@ -85,6 +87,12 @@ public class MongoModelTemplate<T, E ext
return hydrate(mongoTemplate.find(query, dbType, collection));
}
+ @Override
+ public int update(Query query, Update update) {
+ WriteResult result = mongoTemplate.updateMulti(query, update,
collection);
+ return result.getN();
+ }
+
private List<T> hydrate(List<E> mongoDbTs) {
for(E p : mongoDbTs) {
hydrate(p);