Author: mfranklin
Date: Tue Oct 16 19:47:46 2012
New Revision: 1398956

URL: http://svn.apache.org/viewvc?rev=1398956&view=rev
Log:
Added missing repository annotations and added WidgetTagRepository

Added:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
Modified:
    rave/branches/mongo/rave-components/rave-mongodb/pom.xml
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml

Modified: rave/branches/mongo/rave-components/rave-mongodb/pom.xml
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/pom.xml?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/pom.xml (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/pom.xml Tue Oct 16 
19:47:46 2012
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~  or more contributor license agreements.  See the NOTICE file

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
 Tue Oct 16 19:47:46 2012
@@ -29,6 +29,7 @@ public class MongoDbWidgetTag extends Wi
     private UserRepository userRepository;
 
     private Long userId;
+    private Long id;
 
     public Long getUserId() {
         return userId;

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
 Tue Oct 16 19:47:46 2012
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 package org.apache.rave.portal.model.conversion;
 
 import org.apache.rave.model.ModelConverter;

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
 Tue Oct 16 19:47:46 2012
@@ -28,6 +28,7 @@ import org.apache.rave.util.CollectionUt
 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.stereotype.Repository;
 
 import java.util.List;
 
@@ -35,6 +36,7 @@ import static org.springframework.data.m
 
 /**
  */
+@Repository
 public class MongoDbPageTemplateRepository implements PageTemplateRepository {
     public static final String COLLECTION = "pageTemplate";
 

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
 Tue Oct 16 19:47:46 2012
@@ -27,6 +27,7 @@ import org.apache.rave.portal.repository
 import org.apache.rave.portal.repository.RegionWidgetRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -35,6 +36,7 @@ import static org.springframework.data.m
 /**
 
  */
+@Repository
 public class MongoDbRegionWidgetRepository implements RegionWidgetRepository {
 
     @Autowired

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
 Tue Oct 16 19:47:46 2012
@@ -25,6 +25,7 @@ import org.apache.rave.portal.model.Widg
 import org.apache.rave.portal.repository.MongoModelOperations;
 import org.apache.rave.portal.repository.WidgetCommentRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
 
 import java.util.Date;
 import java.util.Iterator;
@@ -34,6 +35,7 @@ import static org.apache.rave.portal.mod
 import static org.springframework.data.mongodb.core.query.Criteria.where;
 import static org.springframework.data.mongodb.core.query.Query.query;
 
+@Repository
 public class MongoDbWidgetCommentRepository implements WidgetCommentRepository 
{
 
     @Autowired

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
 Tue Oct 16 19:47:46 2012
@@ -24,6 +24,7 @@ import org.apache.rave.portal.model.Widg
 import org.apache.rave.portal.repository.MongoModelOperations;
 import org.apache.rave.portal.repository.WidgetRatingRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
 
 import java.util.Iterator;
 import java.util.List;
@@ -32,6 +33,7 @@ import static org.apache.rave.portal.mod
 import static org.springframework.data.mongodb.core.query.Criteria.where;
 import static org.springframework.data.mongodb.core.query.Query.query;
 
+@Repository
 public class MongoDbWidgetRatingRepository implements WidgetRatingRepository {
 
     @Autowired

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java?rev=1398956&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
 Tue Oct 16 19:47:46 2012
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.rave.portal.repository.impl;
+
+import org.apache.rave.exception.NotSupportedException;
+import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.model.WidgetTag;
+import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.WidgetTagRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import java.util.Iterator;
+
+/**
+ */
+@Repository
+public class MongoDbWidgetTagRepository implements WidgetTagRepository {
+    @Autowired
+    private MongoModelOperations.MongoWidgetOperations template;
+
+    @Override
+    public WidgetTag getByWidgetIdAndTag(Long widgetId, String keyword) {
+        Widget widget = template.get(widgetId);
+        return getTagByKeyword(keyword, widget);
+    }
+
+    @Override
+    public Class<? extends WidgetTag> getType() {
+        return WidgetTag.class;
+    }
+
+    @Override
+    public WidgetTag get(long id) {
+        throw new NotSupportedException();
+    }
+
+    @Override
+    public WidgetTag save(WidgetTag item) {
+        Widget widget = template.get(item.getWidgetId());
+        updateOrAddTag(widget, item);
+        Widget saved = template.save(widget);
+        return getTagByKeyword(item.getTag().getKeyword(), saved);
+    }
+
+    private void updateOrAddTag(Widget widget, WidgetTag item) {
+        //The current programming model expects there to be only one instance 
of a tag
+        //consider an update a NOOP unless it is a new tag.
+        WidgetTag tag = getTagByKeyword(item.getTag().getKeyword(), widget);
+        if(tag == null) {
+            widget.getTags().add(item);
+        }
+    }
+
+    @Override
+    public void delete(WidgetTag item) {
+        Widget widget = template.get(item.getWidgetId());
+        removeTag(item.getTag().getKeyword(), widget);
+    }
+
+    private void removeTag(String keyword, Widget widget) {
+        Iterator<WidgetTag> iterator = widget.getTags().iterator();
+        while (iterator.hasNext()) {
+            WidgetTag comment = iterator.next();
+            if (comment.getTag().getKeyword().equals(keyword)) {
+                iterator.remove();
+                return;
+            }
+        }
+    }
+
+    private WidgetTag getTagByKeyword(String keyword, Widget widget) {
+        for(WidgetTag tag : widget.getTags()) {
+            if(tag.getTag().getKeyword().equals(keyword)) {
+                return tag;
+            }
+        }
+        return null;
+    }
+}

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
 Tue Oct 16 19:47:46 2012
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~  or more contributor license agreements.  See the NOTICE file


Reply via email to