bloritsch 01/07/10 12:49:06 Modified: src/org/apache/cocoon/transformation FilterTransformer.java Log: Prepare FilterTransformer to be able to be sublcassed. Also perform some optimizations on configtime. The FilterTransformer does need to support namespaces as well as elements.... Revision Changes Path 1.2 +15 -30 xml-cocoon2/src/org/apache/cocoon/transformation/FilterTransformer.java Index: FilterTransformer.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/FilterTransformer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FilterTransformer.java 2001/06/21 11:07:56 1.1 +++ FilterTransformer.java 2001/07/10 19:49:02 1.2 @@ -12,7 +12,7 @@ import org.xml.sax.helpers.AttributesImpl; /** - * The filter transformer can be used to let only an amount of elements through in + * The filter transformer can be used to let only an amount of elements through in * a given block. * * Usage in sitemap @@ -25,7 +25,7 @@ * Only the 3th block will be shown, containing only 5 row elements. * * @author <a href="mailto:[EMAIL PROTECTED]">Sven Beauprez</a> - * @version CVS $Revision: 1.1 $ $Date: 2001/06/21 11:07:56 $ $Author: dims $ + * @version CVS $Revision: 1.2 $ $Date: 2001/07/10 19:49:02 $ $Author: bloritsch $ */ public class FilterTransformer extends AbstractTransformer implements Poolable { @@ -41,7 +41,7 @@ private int count; private int blocknr; private int currentBlocknr; - private String elementName; + protected String elementName; private String parentName; boolean skip; boolean foundIt; @@ -54,35 +54,20 @@ skip=false; foundIt=false; parentName=null; - elementName = parameters.getParameter(FilterTransformer.ELEMENT,null); - String tmpCount = parameters.getParameter(FilterTransformer.COUNT,""+FilterTransformer.DEFAULT_COUNT); - String tmpBlockNr = parameters.getParameter(FilterTransformer.BLOCKNR,""+FilterTransformer.DEFAULT_BLOCK); - if (elementName==null || tmpCount==null) { - getLogger().error("FilterTransformer: both "+ FilterTransformer.ELEMENT + " and " + - FilterTransformer.COUNT + " parameters need to be specified"); - }else { - try { - count = Integer.parseInt(tmpCount); - getLogger().debug("FilterTransformer: " + FilterTransformer.COUNT + "=" + count); - } catch (NumberFormatException e) { - //set default values so we can move on - count=FilterTransformer.DEFAULT_COUNT; - getLogger().error("FilterTransformer: " + FilterTransformer.COUNT + - " not valid, using default value of "+FilterTransformer.DEFAULT_COUNT); - } - try { - blocknr = Integer.parseInt(tmpBlockNr); - getLogger().debug("FilterTransformer: " + FilterTransformer.BLOCKNR + "=" + blocknr); - } catch (NumberFormatException e) { - //set default values so we can move on - blocknr=FilterTransformer.DEFAULT_BLOCK; - getLogger().error("FilterTransformer: " + FilterTransformer.BLOCKNR + - " not valid, using default value of "+ FilterTransformer.DEFAULT_BLOCK); - } + elementName = parameters.getParameter(FilterTransformer.ELEMENT, ""); + count = parameters.getParameterAsInteger(FilterTransformer.COUNT, FilterTransformer.DEFAULT_COUNT); + blocknr = parameters.getParameterAsInteger(FilterTransformer.BLOCKNR, FilterTransformer.DEFAULT_BLOCK); + if (elementName == null || count == 0) { + getLogger().warn("FilterTransformer: both "+ FilterTransformer.ELEMENT + " and " + + FilterTransformer.COUNT + " parameters need to be specified"); } } /** END SitemapComponent methods **/ + protected boolean isSkipping() { + return skip; + } + /** BEGIN SAX ContentHandler handlers **/ public void startElement(String uri, String name, String raw, Attributes attributes) throws SAXException { @@ -114,8 +99,8 @@ public void endElement(String uri,String name,String raw) throws SAXException { - if (name.equalsIgnoreCase(parentName) && foundIt) { - + if (name.equals(parentName) && foundIt) { + super.contentHandler.endElement(uri,FilterTransformer.BLOCK,FilterTransformer.BLOCK); super.contentHandler.endElement(uri,name,raw); foundIt=false; ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]