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.RoleFilterTransformer
All Implemented Interfaces:
CacheableProcessingComponent, Component, ContentHandler, LexicalHandler, LogEnabled, Poolable, Recyclable, SitemapModelComponent, Transformer, XMLConsumer, XMLConsumer, XMLPipe, XMLProducer

public class RoleFilterTransformer
extends AbstractTransformer
implements CacheableProcessingComponent

Version:
CVS $Id: RoleFilterTransformer.java 433543 2006-08-22 06:22:54Z crossley $
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.xml.AbstractXMLProducer
contentHandler, EMPTY_CONTENT_HANDLER, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.cocoon.transformation.Transformer
ROLE
 
Constructor Summary
RoleFilterTransformer()
           
 
Method Summary
 void characters(char[] c, int start, int len)
          Receive notification of character data.
 void comment(char[] ch, int start, int len)
          Report an XML comment anywhere in the document.
 void endCDATA()
          Report the end of a CDATA section.
 void endElement(String uri, String loc, String raw)
          Receive notification of the end of an element.
 void endEntity(String name)
          Report the end of an entity.
 Serializable getKey()
          Disable caching
 SourceValidity getValidity()
          Generate the validity object.
 void processingInstruction(String target, String data)
          Receive notification of a processing instruction.
 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)
          Set the SourceResolver, objectModel Map, the source and sitemap Parameters used to process the request.
 void startCDATA()
          Report the start of a CDATA section.
 void startElement(String uri, String loc, String raw, Attributes a)
          Receive notification of the beginning of an element.
 void startEntity(String name)
          Report the beginning of an entity.
 
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 interface: SitemapModelComponent
Set the SourceResolver, objectModel Map, the source and sitemap Parameters used to process the request.

Specified by:
setup in interface SitemapModelComponent
Throws:
ProcessingException
SAXException
IOException

getKey

public Serializable getKey()
Disable caching

Specified by:
getKey in interface CacheableProcessingComponent
Returns:
The generated key or null 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: AbstractXMLPipe
Receive notification of the beginning of an element.

Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class 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.
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 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.
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

startEntity

public void startEntity(String name)
                 throws SAXException
Description copied from class: AbstractXMLPipe
Report the beginning of an entity.

Specified by:
startEntity in interface LexicalHandler
Overrides:
startEntity in class AbstractXMLPipe
Parameters:
name - The name of the entity. If it is a parameter entity, the name will begin with '%'.
Throws:
SAXException

endEntity

public void endEntity(String name)
               throws SAXException
Description copied from class: AbstractXMLPipe
Report the end of an entity.

Specified by:
endEntity in interface LexicalHandler
Overrides:
endEntity in class AbstractXMLPipe
Parameters:
name - The name of the entity that is ending.
Throws:
SAXException

comment

public void comment(char[] ch,
                    int start,
                    int len)
             throws SAXException
Description copied from class: AbstractXMLPipe
Report an XML comment anywhere in the document.

Specified by:
comment in interface LexicalHandler
Overrides:
comment in class AbstractXMLPipe
Parameters:
ch - An array holding the characters in the comment.
start - The starting position in the array.
len - The number of characters to use from the array.
Throws:
SAXException

characters

public void characters(char[] c,
                       int start,
                       int len)
                throws SAXException
Description copied from class: AbstractXMLPipe
Receive notification of character data.

Specified by:
characters in interface ContentHandler
Overrides:
characters in class AbstractXMLPipe
Parameters:
c - The characters from the XML document.
start - The start position in the array.
len - The number of characters to read from the array.
Throws:
SAXException

startCDATA

public void startCDATA()
                throws SAXException
Description copied from class: AbstractXMLPipe
Report the start of a CDATA section.

Specified by:
startCDATA in interface LexicalHandler
Overrides:
startCDATA in class AbstractXMLPipe
Throws:
SAXException

processingInstruction

public void processingInstruction(String target,
                                  String data)
                           throws SAXException
Description copied from class: AbstractXMLPipe
Receive notification of a processing instruction.

Specified by:
processingInstruction in interface ContentHandler
Overrides:
processingInstruction in class AbstractXMLPipe
Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none was supplied.
Throws:
SAXException

getValidity

public SourceValidity getValidity()
Description copied from interface: CacheableProcessingComponent
Generate the validity object. Before this method can be invoked the getKey() method must be invoked.

Specified by:
getValidity in interface CacheableProcessingComponent
Returns:
The generated validity object or null if the component is currently not cacheable.

endCDATA

public void endCDATA()
              throws SAXException
Description copied from class: AbstractXMLPipe
Report the end of a CDATA section.

Specified by:
endCDATA in interface LexicalHandler
Overrides:
endCDATA in class AbstractXMLPipe
Throws:
SAXException


Copyright © 1999-2006 The Apache Software Foundation. All Rights Reserved.