org.apache.cocoon.transformation
Class RoleFilterTransformer

java.lang.Object
  |
  +--org.apache.avalon.framework.logger.AbstractLoggable
        |
        +--org.apache.cocoon.xml.AbstractXMLProducer
              |
              +--org.apache.cocoon.xml.AbstractXMLPipe
                    |
                    +--org.apache.cocoon.transformation.AbstractTransformer
                          |
                          +--org.apache.cocoon.transformation.FilterTransformer
                                |
                                +--org.apache.cocoon.transformation.RoleFilterTransformer
All Implemented Interfaces:
Cacheable, org.apache.avalon.framework.component.Component, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.apache.avalon.framework.logger.Loggable, org.apache.avalon.excalibur.pool.Poolable, org.apache.avalon.excalibur.pool.Recyclable, SitemapModelComponent, Transformer, XMLConsumer, XMLPipe, XMLProducer

public class RoleFilterTransformer
extends FilterTransformer

Filter XML fragments based on a user's role. This will help in the development of smart forms that must only show information to people who are logged in and have the correct role. The Role is specified by the Request semantics. You can specify multiple roles by using comma delimiting.

   <root xmlns:roles="http://apache.org/cocoon/role-filter/1.0">
     <textbox name="identifier" roles:restricted="admin,boss"/>
     <textbox name="name" roles:read-only="admin,boss"/>
   </root>
 
The previous example will only show the "identifier" textbox for the roles "admin" and "boss". It will pass role:read-only="" if the roles "admin" or "boss" are accessing the page. That way you can specify any special processing by testing for the read-only attribute. This filter does not care about the prefix, only the namespace URI. That means you can reassign the namespace to another prefix and all will work as expected.

Version:
CVS $Id: RoleFilterTransformer.java,v 1.6 2002/02/22 07:03:56 cziegeler Exp $
Author:
Berin Loritsch

Fields inherited from class org.apache.cocoon.transformation.FilterTransformer
blocknr, count, counter, currentBlocknr, elementName, foundIt, parentName, skip
 
Fields inherited from class org.apache.cocoon.xml.AbstractXMLProducer
contentHandler, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.cocoon.transformation.Transformer
ROLE
 
Constructor Summary
RoleFilterTransformer()
           
 
Method Summary
 void endElement(java.lang.String uri, java.lang.String loc, java.lang.String raw)
          Receive notification of the end of an element.
 long generateKey()
          Disable caching
 void recycle()
          Recycle the producer by removing references
 void setup(SourceResolver resolver, java.util.Map objectModel, java.lang.String src, org.apache.avalon.framework.parameters.Parameters params)
          BEGIN SitemapComponent methods
 void startElement(java.lang.String uri, java.lang.String loc, java.lang.String raw, org.xml.sax.Attributes a)
          BEGIN SAX ContentHandler handlers
 
Methods inherited from class org.apache.cocoon.transformation.FilterTransformer
characters, comment, endCDATA, endEntity, generateValidity, processingInstruction, startCDATA, startEntity
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLPipe
endDocument, endDTD, endPrefixMapping, ignorableWhitespace, setDocumentLocator, skippedEntity, startDocument, startDTD, startPrefixMapping
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer
setConsumer, setContentHandler, setLexicalHandler
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable
getLogger, setLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
endDocument, endPrefixMapping, ignorableWhitespace, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping
 
Methods inherited from interface org.xml.sax.ext.LexicalHandler
endDTD, startDTD
 
Methods inherited from interface org.apache.cocoon.xml.XMLProducer
setConsumer
 

Constructor Detail

RoleFilterTransformer

public RoleFilterTransformer()
Method Detail

setup

public final void setup(SourceResolver resolver,
                        java.util.Map objectModel,
                        java.lang.String src,
                        org.apache.avalon.framework.parameters.Parameters params)
                 throws ProcessingException,
                        org.xml.sax.SAXException,
                        java.io.IOException
Description copied from class: FilterTransformer
BEGIN SitemapComponent methods
Overrides:
setup in class FilterTransformer

generateKey

public long generateKey()
Disable caching
Overrides:
generateKey in class FilterTransformer
Following copied from class: org.apache.cocoon.transformation.FilterTransformer
Returns:
The generated key or 0 if the component is currently not cacheable.

startElement

public final void startElement(java.lang.String uri,
                               java.lang.String loc,
                               java.lang.String raw,
                               org.xml.sax.Attributes a)
                        throws org.xml.sax.SAXException
Description copied from class: FilterTransformer
BEGIN SAX ContentHandler handlers
Overrides:
startElement in class FilterTransformer
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.
a - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.

endElement

public final void endElement(java.lang.String uri,
                             java.lang.String loc,
                             java.lang.String raw)
                      throws org.xml.sax.SAXException
Description copied from class: AbstractXMLPipe
Receive notification of the end of an element.
Overrides:
endElement in class FilterTransformer
Following copied from class: org.apache.cocoon.xml.AbstractXMLPipe
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.

recycle

public void recycle()
Description copied from class: AbstractXMLProducer
Recycle the producer by removing references
Overrides:
recycle in class AbstractXMLProducer


Copyright © 1999-2002 Apache Software Foundation. All Rights Reserved.