You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by bl...@apache.org on 2001/07/10 21:49:06 UTC

cvs commit: xml-cocoon2/src/org/apache/cocoon/transformation FilterTransformer.java

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:sven.beauprez@the-ecorp.com">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:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org