org.apache.cocoon.transformation
Class RoleFilterTransformer

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.apache.cocoon.xml.AbstractXMLProducer
          extended byorg.apache.cocoon.xml.AbstractXMLPipe
              extended byorg.apache.cocoon.transformation.AbstractTransformer
                  extended byorg.apache.cocoon.transformation.FilterTransformer
                      extended byorg.apache.cocoon.transformation.RoleFilterTransformer
All Implemented Interfaces:
CacheableProcessingComponent, ContentHandler, LexicalHandler, LogEnabled, Poolable, Recyclable, SitemapModelComponent, Transformer, XMLConsumer, XMLConsumer, XMLPipe, XMLProducer

public class RoleFilterTransformer
extends FilterTransformer

Version:
CVS $Id: RoleFilterTransformer.java 30941 2004-07-29 19:56:58Z vgritsenko $
Author:
Berin Loritsch
Cocoon.sitemap.component.documentation:
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.
Cocoon.sitemap.component.logger:
sitemap.transformer.role-filter 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.
Cocoon.sitemap.component.name:
role-filter

Field Summary
 
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, EMPTY_CONTENT_HANDLER, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.cocoon.transformation.Transformer
ROLE
 
Constructor Summary
RoleFilterTransformer()
           
 
Method Summary
 void endElement(String uri, String loc, String raw)
          Receive notification of the end of an element.
 Serializable getKey()
          Disable caching
 void recycle()
          Recycle the producer by removing references, and resetting handlers to null (empty) implementations.
 void setup(SourceResolver resolver, Map objectModel, String src, Parameters params)
          BEGIN SitemapComponent methods
 void startElement(String uri, String loc, String raw, Attributes a)
          BEGIN SAX ContentHandler handlers
 
Methods inherited from class org.apache.cocoon.transformation.FilterTransformer
characters, comment, endCDATA, endEntity, getValidity, 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.AbstractLogEnabled
enableLogging, getLogger, 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,
                        Map objectModel,
                        String src,
                        Parameters params)
                 throws ProcessingException,
                        SAXException,
                        IOException
Description copied from class: FilterTransformer
BEGIN SitemapComponent methods

Specified by:
setup in interface SitemapModelComponent
Overrides:
setup in class FilterTransformer
Throws:
ProcessingException
SAXException
IOException

getKey

public Serializable getKey()
Disable caching

Specified by:
getKey in interface CacheableProcessingComponent
Overrides:
getKey in class FilterTransformer
Returns:
The generated key or 0 if the component is currently not cacheable.

startElement

public final void startElement(String uri,
                               String loc,
                               String raw,
                               Attributes a)
                        throws SAXException
Description copied from class: FilterTransformer
BEGIN SAX ContentHandler handlers

Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class FilterTransformer
Throws:
SAXException

endElement

public final void endElement(String uri,
                             String loc,
                             String raw)
                      throws SAXException
Description copied from class: AbstractXMLPipe
Receive notification of the end of an element.

Specified by:
endElement in interface ContentHandler
Overrides:
endElement in class FilterTransformer
Throws:
SAXException

recycle

public void recycle()
Description copied from class: AbstractXMLProducer
Recycle the producer by removing references, and resetting handlers to null (empty) implementations.

Specified by:
recycle in interface Recyclable
Overrides:
recycle in class AbstractXMLProducer


Copyright ? 1999-2005 The Apache Software Foundation. All Rights Reserved.