shannon 2002/07/04 11:47:13 Modified: src/scratchpad/src/org/apache/cocoon/transformation/pagination Tag: cocoon_2_0_3_branch PageRules.java Pagesheet.java Paginator.java Added: src/scratchpad/src/org/apache/cocoon/transformation/pagination Tag: cocoon_2_0_3_branch Paginator.xconf Log: Applied patches based on NPEs and namespace glitches, already fixed in HEAD, without touching any code related to store. Revision Changes Path No revision No revision 1.3.2.1 +10 -5 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/PageRules.java Index: PageRules.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/PageRules.java,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -r1.3 -r1.3.2.1 --- PageRules.java 22 Feb 2002 16:48:56 -0000 1.3 +++ PageRules.java 4 Jul 2002 18:47:13 -0000 1.3.2.1 @@ -59,8 +59,8 @@ */ public class PageRules { - public String elementName = ""; - public String elementURI = ""; + public String elementName; + public String elementURI; public int elementCount = 1; public int charCount = 0; public int unitLinks = 0; @@ -68,10 +68,15 @@ public boolean store = false; public boolean match(String element, String namespace) { - return (this.elementName.equals(element) && this.elementURI.equals(namespace)); + boolean elementMatches = ((this.elementName != null) && this.elementName.equals(element)); + if (this.elementURI == null) { + return elementMatches; + } else { + return elementMatches && this.elementURI.equals(namespace); + } } public boolean match(String namespace) { - return this.elementURI.equals(namespace); + return ((this.elementURI != null) && (this.elementURI.equals(namespace))); } } 1.5.2.1 +9 -1 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Pagesheet.java Index: Pagesheet.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Pagesheet.java,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -u -r1.5 -r1.5.2.1 --- Pagesheet.java 29 Mar 2002 20:12:08 -0000 1.5 +++ Pagesheet.java 4 Jul 2002 18:47:13 -0000 1.5.2.1 @@ -233,6 +233,7 @@ } else if (loc.equals("items")) { if (this.itemGroupsPerName == null) this.itemGroupsPerName = new HashMap(2); if (this.itemGroupsPerElement == null) this.itemGroupsPerElement = new HashMap(2); + return; } break; case 3: @@ -255,6 +256,7 @@ } else { throw new SAXException("Syntax error: count type not supported."); } + return; } else if (loc.equals("link")) { if (a.getValue("type").equals("unit")) { try { @@ -271,6 +273,7 @@ } else { throw new SAXException("Syntax error: link type not supported."); } + return; } else if (loc.equals("group")) { String name = a.getValue("name"); String elementName = a.getValue("element"); @@ -352,11 +355,13 @@ } public int getTotalItems(String itemGroup) { + if (this.itemListsPerName == null) return 0; ItemList list = (ItemList) this.itemListsPerName.get(itemGroup); return (list == null) ? 0 : list.size(); } public int getPageForItem(int item, String itemGroup) { + if (this.itemListsPerName == null) return 0; ItemList list = (ItemList) this.itemListsPerName.get(itemGroup); return (list == null) ? 0 : list.getPageForItem(item); } @@ -367,11 +372,13 @@ } public int itemCount(String elementURI, String elementName) { + if (this.itemListsPerElement == null) return 0; ItemList list = (ItemList) this.itemListsPerElement.get(elementURI+elementName); return (list == null) ? 0 : list.size(); } public String getItemGroupName(String elementURI, String elementName) { + if (this.itemListsPerElement == null) return null; return ((ItemGroup) this.itemGroupsPerElement.get(elementURI+elementName)).getName(); } @@ -382,6 +389,7 @@ Page p = (Page) pages.get(page); return (p != null) && (p.validInPage(counter)); } else { + if (this.itemListsPerElement == null) return false; ItemList list = (ItemList) this.itemListsPerName.get(itemGroup); return (list != null) && (list.valid(item)); } 1.7.2.2 +13 -4 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Paginator.java Index: Paginator.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Paginator.java,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -u -r1.7.2.1 -r1.7.2.2 --- Paginator.java 11 Jun 2002 23:54:54 -0000 1.7.2.1 +++ Paginator.java 4 Jul 2002 18:47:13 -0000 1.7.2.2 @@ -51,16 +51,24 @@ package org.apache.cocoon.transformation.pagination; +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.component.Component; +import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.Composable; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.cocoon.Constants; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.caching.CacheValidity; import org.apache.cocoon.caching.Cacheable; import org.apache.cocoon.caching.CompositeCacheValidity; +import org.apache.cocoon.caching.ParametersCacheValidity; import org.apache.cocoon.caching.TimeStampCacheValidity; import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.components.store.Store; @@ -68,15 +76,16 @@ import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Source; import org.apache.cocoon.environment.SourceResolver; -import org.apache.cocoon.transformation.AbstractTransformer; import org.apache.cocoon.util.HashUtil; +import org.apache.cocoon.xml.ContentHandlerWrapper; +import org.apache.cocoon.xml.XMLConsumer; +import org.apache.cocoon.transformation.AbstractTransformer; import org.xml.sax.Attributes; import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.helpers.AttributesImpl; -import java.io.IOException; -import java.util.Map; /** * A paginating transformer. No revision No revision 1.2.2.1 +4 -7 xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Paginator.xconf Index: Paginator.xconf =================================================================== RCS file: /home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/pagination/Paginator.xconf,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- Paginator.xconf 2 Jul 2002 12:40:20 -0000 1.2 +++ Paginator.xconf 4 Jul 2002 18:47:13 -0000 1.2.2.1 @@ -1,11 +1,8 @@ <?xml version="1.0"?> -<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.transformation.pagination.Paginator']"> +<xconf xpath="/cocoon" unless="component[paginator]"> - <!-- ======================= Paginator =========================== --> - <component - class="org.apache.cocoon.transformation.pagination.Paginator" - role="org.apache.cocoon.transformation.pagination.Paginator" - logger="core.paginator"/> - + <!-- ======================= Paginator =========================== --> + <component role="org.apache.cocoon.transformation.pagination.Paginator" + class="org.apache.cocoon.transformation.pagination.Paginator"/> </xconf>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]