diff --git a/source/java/org/alfresco/repo/blog/BlogPostInfo.java b/source/java/org/alfresco/repo/blog/BlogPostInfo.java deleted file mode 100644 index b297407eed..0000000000 --- a/source/java/org/alfresco/repo/blog/BlogPostInfo.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2005-2011 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco 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. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ -package org.alfresco.repo.blog; - -import org.alfresco.model.ContentModel; -import org.alfresco.service.cmr.repository.NodeRef; - -/** - * A simple data object for storage of blog-related data. - * - * @author Neil Mc Erlean - * @since 4.0 - */ -public interface BlogPostInfo -{ - /** - * Gets the NodeRef representing this blog-post. - */ - public NodeRef getNodeRef(); - - /** - * Gets the {@link ContentModel#PROP_NAME cm:name} of the blog post. - * @return - */ - public String getName(); -} diff --git a/source/java/org/alfresco/repo/blog/BlogPostInfoImpl.java b/source/java/org/alfresco/repo/blog/BlogPostInfoImpl.java deleted file mode 100644 index 1ee3d79676..0000000000 --- a/source/java/org/alfresco/repo/blog/BlogPostInfoImpl.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2005-2011 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco 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. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ -package org.alfresco.repo.blog; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -import org.alfresco.model.ContentModel; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.namespace.QName; - -/** - * A simple data object responsible for holding information relevant to blog post NodeRefs. - * - * @author Neil Mc Erlean - * @since 4.0 - */ -public class BlogPostInfoImpl implements BlogPostInfo -{ - private NodeRef nodeRef; - private Map properties = new HashMap(); - - BlogPostInfoImpl(NodeRef nodeRef, Map properties) - { - this.nodeRef = nodeRef; - this.properties = properties; - } - - /** - * @see #getNodeRef() - * @see NodeRef#equals(Object) - */ - @Override - public boolean equals(Object obj) - { - if (obj == null) - { - return false; - } - else if (this == obj) - { - return true; - } - else if (obj instanceof BlogPostInfoImpl == false) - { - return false; - } - BlogPostInfoImpl that = (BlogPostInfoImpl) obj; - return (this.getNodeRef().equals(that.getNodeRef())); - } - - /** - * @see #getNodeRef() - * @see NodeRef#hashCode() - */ - @Override - public int hashCode() - { - return getNodeRef().hashCode(); - } - - @Override - public String toString() - { - StringBuilder sb = new StringBuilder(80); - sb.append(BlogPostInfo.class.getSimpleName()) - .append("[name=").append(getName()) - .append(", nodeRef=").append(nodeRef); - sb.append("]"); - return sb.toString(); - } - - @Override - public NodeRef getNodeRef() - { - return nodeRef; - } - - @Override - public String getName() - { - return (String) properties.get(ContentModel.PROP_NAME); - } -} diff --git a/source/java/org/alfresco/repo/blog/BlogService.java b/source/java/org/alfresco/repo/blog/BlogService.java index 0175916e0f..b4a9621196 100644 --- a/source/java/org/alfresco/repo/blog/BlogService.java +++ b/source/java/org/alfresco/repo/blog/BlogService.java @@ -20,6 +20,7 @@ package org.alfresco.repo.blog; import java.util.Date; +import org.alfresco.model.ContentModel; import org.alfresco.query.PagingRequest; import org.alfresco.query.PagingResults; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -119,4 +120,38 @@ public interface BlogService * @return true if it is a draft post, else false. */ boolean isDraftBlogPost(NodeRef blogPostNode); + + /** + * A simple data object for storage of blog-related data. + * + * @author Neil Mc Erlean + * @since 4.0 + */ + public class BlogPostInfo + { + private final NodeRef nodeRef; + private final String name; + + public BlogPostInfo(NodeRef nodeRef, String name) + { + this.nodeRef = nodeRef; + this.name = name; + } + /** + * Gets the NodeRef representing this blog-post. + */ + public NodeRef getNodeRef() + { + return nodeRef; + } + + /** + * Gets the {@link ContentModel#PROP_NAME cm:name} of the blog post. + * @return + */ + public String getName() + { + return name; + } + } } diff --git a/source/java/org/alfresco/repo/blog/BlogServiceImpl.java b/source/java/org/alfresco/repo/blog/BlogServiceImpl.java index 98d47cc2c2..65f24b89cb 100644 --- a/source/java/org/alfresco/repo/blog/BlogServiceImpl.java +++ b/source/java/org/alfresco/repo/blog/BlogServiceImpl.java @@ -19,7 +19,6 @@ package org.alfresco.repo.blog; import java.io.Serializable; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -192,28 +191,36 @@ public class BlogServiceImpl implements BlogService /** * This method creates a paged result set based on the supplied {@link PagingRequest} and {@link CannedQueryResults}. */ - private PagingResults createPagedResults(PagingRequest pagingReq, CannedQueryResults results) + private PagingResults createPagedResults(PagingRequest pagingReq, final CannedQueryResults results) { - List nodeRefs = null; - if (results.getPageCount() > 0) + return new PagingResults() { - nodeRefs = results.getPages().get(0); - } - else - { - nodeRefs = Collections.emptyList(); - } - - // set total count - Pair totalCount = null; - if (pagingReq.getRequestTotalCountMax() > 0) - { - totalCount = results.getTotalResultCount(); - } - - boolean hasMoreItems = results.hasMoreItems(); - - return new PagingBlogPostInfoResultsImpl(nodeRefs, hasMoreItems, totalCount, results.getQueryExecutionId(), true); + @Override + public String getQueryExecutionId() + { + return results.getQueryExecutionId(); + } + @Override + public List getPage() + { + return results.getPage(); + } + @Override + public boolean hasMoreItems() + { + return results.hasMoreItems(); + } + @Override + public Pair getTotalResultCount() + { + return results.getTotalResultCount(); + } + @Override + public boolean permissionsApplied() + { + return results.permissionsApplied(); + } + }; } /* diff --git a/source/java/org/alfresco/repo/blog/BlogServiceImplTest.java b/source/java/org/alfresco/repo/blog/BlogServiceImplTest.java index e8f0e8a5e2..a4196b2cf8 100644 --- a/source/java/org/alfresco/repo/blog/BlogServiceImplTest.java +++ b/source/java/org/alfresco/repo/blog/BlogServiceImplTest.java @@ -31,6 +31,7 @@ import java.util.List; import org.alfresco.model.ContentModel; import org.alfresco.query.PagingRequest; import org.alfresco.query.PagingResults; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.policy.BehaviourFilter; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.site.SiteModel; diff --git a/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQuery.java b/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQuery.java index 00a0b68a53..6272c7e64e 100644 --- a/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQuery.java +++ b/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQuery.java @@ -29,6 +29,7 @@ import org.alfresco.model.ContentModel; import org.alfresco.query.CannedQuery; import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails.SortOrder; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -125,7 +126,7 @@ public class DraftsAndPublishedBlogPostsCannedQuery extends AbstractCannedQueryP if (nextNodeIsAcceptable) { - filteredNodeRefs.add(new BlogPostInfoImpl(nextBlogNode, rawNodeService.getProperties(nextBlogNode))); + filteredNodeRefs.add(new BlogPostInfo(nextBlogNode, (String)rawNodeService.getProperty(nextBlogNode, ContentModel.PROP_NAME))); } } diff --git a/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQueryFactory.java b/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQueryFactory.java index 982cad8e12..d3fb11ff66 100644 --- a/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQueryFactory.java +++ b/source/java/org/alfresco/repo/blog/DraftsAndPublishedBlogPostsCannedQueryFactory.java @@ -31,6 +31,7 @@ import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails; import org.alfresco.query.PagingRequest; import org.alfresco.query.CannedQuerySortDetails.SortOrder; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.NodeRef; diff --git a/source/java/org/alfresco/repo/blog/GetBlogPostsCannedQuery.java b/source/java/org/alfresco/repo/blog/GetBlogPostsCannedQuery.java index 48b1c8f781..f6881d7a63 100644 --- a/source/java/org/alfresco/repo/blog/GetBlogPostsCannedQuery.java +++ b/source/java/org/alfresco/repo/blog/GetBlogPostsCannedQuery.java @@ -29,6 +29,7 @@ import org.alfresco.model.ContentModel; import org.alfresco.query.CannedQuery; import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails.SortOrder; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -134,7 +135,7 @@ public class GetBlogPostsCannedQuery extends AbstractCannedQueryPermissions. - */ -package org.alfresco.repo.blog; - -import org.alfresco.query.PagingResults; - -/** - * @since 4.0 - */ -public interface PagingBlogPostInfoResults extends PagingResults -{ -} diff --git a/source/java/org/alfresco/repo/blog/PagingBlogPostInfoResultsImpl.java b/source/java/org/alfresco/repo/blog/PagingBlogPostInfoResultsImpl.java deleted file mode 100644 index 1616e99cf3..0000000000 --- a/source/java/org/alfresco/repo/blog/PagingBlogPostInfoResultsImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2005-2011 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco 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. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ -package org.alfresco.repo.blog; - -import java.util.List; - -import org.alfresco.query.PermissionedResults; -import org.alfresco.util.Pair; - -/** - * A simple results holder object for data relating to {@link BlogPostInfo blog-posts}, as - * returned by the {@link BlogService} - * - * @since 4.0 - * @author Neil Mc Erlean. - */ -class PagingBlogPostInfoResultsImpl implements PagingBlogPostInfoResults, PermissionedResults -{ - private List blogPosts; - - private boolean hasMoreItems; - private Pair totalResultCount; - private String queryExecutionId; - private boolean permissionsApplied; - - public PagingBlogPostInfoResultsImpl(List nodeInfos, boolean hasMoreItems, Pair totalResultCount, String queryExecutionId, boolean permissionsApplied) - { - this.blogPosts = nodeInfos; - this.hasMoreItems = hasMoreItems; - this.totalResultCount = totalResultCount; - this.queryExecutionId = queryExecutionId; - this.permissionsApplied = permissionsApplied; - } - - @Override - public List getPage() - { - return blogPosts; - } - - @Override - public boolean hasMoreItems() - { - return hasMoreItems; - } - - @Override - public Pair getTotalResultCount() - { - return totalResultCount; - } - - @Override - public String getQueryExecutionId() - { - return queryExecutionId; - } - - @Override - public boolean permissionsApplied() - { - return permissionsApplied; - } -} diff --git a/source/java/org/alfresco/repo/blog/PropertyBasedComparator.java b/source/java/org/alfresco/repo/blog/PropertyBasedComparator.java index 7908a45731..c9ec9b9f80 100644 --- a/source/java/org/alfresco/repo/blog/PropertyBasedComparator.java +++ b/source/java/org/alfresco/repo/blog/PropertyBasedComparator.java @@ -20,6 +20,7 @@ package org.alfresco.repo.blog; import java.util.Comparator; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.QName; diff --git a/source/java/org/alfresco/repo/blog/cannedqueries/BlogPostInfoImpl.java b/source/java/org/alfresco/repo/blog/cannedqueries/BlogPostInfoImpl.java deleted file mode 100644 index 4122da6a0d..0000000000 --- a/source/java/org/alfresco/repo/blog/cannedqueries/BlogPostInfoImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2005-2011 Alfresco Software Limited. - * - * This file is part of Alfresco - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco 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. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ -package org.alfresco.repo.blog.cannedqueries; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -import org.alfresco.model.ContentModel; -import org.alfresco.repo.blog.BlogPostInfo; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.namespace.QName; - -/** - * A simple data object responsible for holding information relevant to blog post NodeRefs. - * - * @author Neil Mc Erlean - * @since 4.0 - */ -public class BlogPostInfoImpl implements BlogPostInfo -{ - private NodeRef nodeRef; - private Map properties = new HashMap(); - - BlogPostInfoImpl(NodeRef nodeRef, Map properties) - { - this.nodeRef = nodeRef; - this.properties = properties; - } - - /** - * @see #getNodeRef() - * @see NodeRef#equals(Object) - */ - @Override - public boolean equals(Object obj) - { - if (obj == null) - { - return false; - } - else if (this == obj) - { - return true; - } - else if (obj instanceof BlogPostInfoImpl == false) - { - return false; - } - BlogPostInfoImpl that = (BlogPostInfoImpl) obj; - return (this.getNodeRef().equals(that.getNodeRef())); - } - - /** - * @see #getNodeRef() - * @see NodeRef#hashCode() - */ - @Override - public int hashCode() - { - return getNodeRef().hashCode(); - } - - @Override - public String toString() - { - StringBuilder sb = new StringBuilder(80); - sb.append(BlogPostInfo.class.getSimpleName()) - .append("[name=").append(getName()) - .append(", nodeRef=").append(nodeRef); - sb.append("]"); - return sb.toString(); - } - - @Override - public NodeRef getNodeRef() - { - return nodeRef; - } - - @Override - public String getName() - { - return (String) properties.get(ContentModel.PROP_NAME); - } -} diff --git a/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQuery.java b/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQuery.java index b3b02a98c6..e56e40424a 100644 --- a/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQuery.java +++ b/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQuery.java @@ -29,8 +29,8 @@ import org.alfresco.model.ContentModel; import org.alfresco.query.CannedQuery; import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails.SortOrder; -import org.alfresco.repo.blog.BlogPostInfo; import org.alfresco.repo.blog.BlogService; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -127,7 +127,7 @@ public class DraftsAndPublishedBlogPostsCannedQuery extends AbstractCannedQueryP if (nextNodeIsAcceptable) { - filteredNodeRefs.add(new BlogPostInfoImpl(nextBlogNode, rawNodeService.getProperties(nextBlogNode))); + filteredNodeRefs.add(new BlogPostInfo(nextBlogNode, (String)rawNodeService.getProperty(nextBlogNode, ContentModel.PROP_NAME))); } } diff --git a/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQueryFactory.java b/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQueryFactory.java index 517ddb59da..804737d477 100644 --- a/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQueryFactory.java +++ b/source/java/org/alfresco/repo/blog/cannedqueries/DraftsAndPublishedBlogPostsCannedQueryFactory.java @@ -31,7 +31,7 @@ import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails; import org.alfresco.query.PagingRequest; import org.alfresco.query.CannedQuerySortDetails.SortOrder; -import org.alfresco.repo.blog.BlogPostInfo; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.NodeRef; diff --git a/source/java/org/alfresco/repo/blog/cannedqueries/GetBlogPostsCannedQuery.java b/source/java/org/alfresco/repo/blog/cannedqueries/GetBlogPostsCannedQuery.java index af6e3c2dd5..ddbf3b2d36 100644 --- a/source/java/org/alfresco/repo/blog/cannedqueries/GetBlogPostsCannedQuery.java +++ b/source/java/org/alfresco/repo/blog/cannedqueries/GetBlogPostsCannedQuery.java @@ -29,8 +29,8 @@ import org.alfresco.model.ContentModel; import org.alfresco.query.CannedQuery; import org.alfresco.query.CannedQueryParameters; import org.alfresco.query.CannedQuerySortDetails.SortOrder; -import org.alfresco.repo.blog.BlogPostInfo; import org.alfresco.repo.blog.BlogService; +import org.alfresco.repo.blog.BlogService.BlogPostInfo; import org.alfresco.repo.security.permissions.impl.acegi.AbstractCannedQueryPermissions; import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -136,7 +136,7 @@ public class GetBlogPostsCannedQuery extends AbstractCannedQueryPermissions