You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/06/22 22:48:04 UTC
svn commit: r416467 -
/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java
Author: snoopdave
Date: Thu Jun 22 13:48:03 2006
New Revision: 416467
URL: http://svn.apache.org/viewvc?rev=416467&view=rev
Log:
Separated weblog model into page model and feed model, renamed PageModel to RenderModel, still more work to do on pagers
Added:
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java
Added: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java?rev=416467&view=auto
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java (added)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/FeedRenderModel.java Thu Jun 22 13:48:03 2006
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. 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. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.ui.rendering.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.roller.RollerException;
+import org.apache.roller.model.Roller;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.model.WeblogManager;
+import org.apache.roller.pojos.CommentData;
+import org.apache.roller.pojos.WeblogEntryData;
+import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.pojos.wrapper.CommentDataWrapper;
+import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
+import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
+import org.apache.roller.ui.rendering.util.WeblogFeedRequest;
+
+/**
+ * Model provide information needed to render a feed.
+ */
+public class FeedRenderModel extends PageRenderModel {
+ private HttpServletRequest request = null;
+ private WebsiteData weblog = null;
+ private String categoryPath = null;
+
+ public FeedRenderModel() {
+ }
+
+ /** Init page model based on request */
+ public void init(Map map) throws RollerException {
+ HttpServletRequest request = (HttpServletRequest)map.get("request");
+ WeblogFeedRequest parsed = new WeblogFeedRequest(request);
+ categoryPath = parsed.getWeblogCategory();
+ Roller roller = RollerFactory.getRoller();
+ UserManager umgr = roller.getUserManager();
+ weblog = umgr.getWebsiteByHandle(parsed.getWeblogHandle(), Boolean.TRUE);
+ }
+
+ /**
+ * Get weblog being displayed.
+ */
+ public WebsiteDataWrapper getWeblog() {
+ return WebsiteDataWrapper.wrap(weblog);
+ }
+
+ /**
+ * Get category path or name specified by request.
+ */
+ public String getCategoryPath() {
+ return categoryPath;
+ }
+
+ /**
+ * Gets most recent entries limited by: weblog and category specified in
+ * request plus the weblog.entryDisplayCount.
+ */
+ public List getWeblogEntries() {
+ List results = new ArrayList();
+ try {
+ Roller roller = RollerFactory.getRoller();
+ WeblogManager wmgr = roller.getWeblogManager();
+ List entries = wmgr.getWeblogEntries(weblog,
+ null, null, new Date(), categoryPath, WeblogEntryData.PUBLISHED,
+ "pubTime", 0, weblog.getEntryDisplayCount());
+ for (Iterator it = entries.iterator(); it.hasNext();) {
+ WeblogEntryData entry = (WeblogEntryData) it.next();
+ results.add(WeblogEntryDataWrapper.wrap(entry));
+ }
+ } catch (Exception e) {
+ log.error("ERROR: fetching weblog list", e);
+ }
+ return results;
+ }
+
+ /**
+ * Gets most recent entries limited by: weblog specified in request and
+ * the weblog.entryDisplayCount.
+ */
+ public List getComments() {
+ List recentComments = new ArrayList();
+ try {
+ WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+ List recent = wmgr.getComments(
+ weblog,
+ null, // weblog entry
+ null, // search String
+ null, // startDate
+ new Date(), // endDate
+ null, // pending
+ Boolean.TRUE, // approved only
+ Boolean.FALSE, // no spam
+ true, // we want reverse chrono order
+ 0, // offset
+ weblog.getEntryDisplayCount()); // length
+
+ // wrap pojos
+ recentComments = new ArrayList(recent.size());
+ Iterator it = recent.iterator();
+ while(it.hasNext()) {
+ recentComments.add(CommentDataWrapper.wrap((CommentData) it.next()));
+ }
+ } catch (RollerException e) {
+ log.error("ERROR: getting comments", e);
+ }
+ return recentComments;
+ }
+}