You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2002/02/01 16:01:33 UTC

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

vgritsenko    02/02/01 07:01:33

  Modified:    src/java/org/apache/cocoon/transformation
                        FragmentExtractorTransformer.java
  Log:
  Make constants final; prevent (possible in future) reconfiguration bugs
  
  Revision  Changes    Path
  1.7       +47 -45    xml-cocoon2/src/java/org/apache/cocoon/transformation/FragmentExtractorTransformer.java
  
  Index: FragmentExtractorTransformer.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/FragmentExtractorTransformer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FragmentExtractorTransformer.java	31 Jan 2002 11:16:11 -0000	1.6
  +++ FragmentExtractorTransformer.java	1 Feb 2002 15:01:33 -0000	1.7
  @@ -17,6 +17,7 @@
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.parameters.Parameters;
  +
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.caching.CacheValidity;
   import org.apache.cocoon.caching.Cacheable;
  @@ -26,6 +27,7 @@
   import org.apache.cocoon.generation.FragmentExtractorGenerator;
   import org.apache.cocoon.xml.dom.DOMBuilder;
   import org.apache.cocoon.xml.dom.DOMFactory;
  +
   import org.w3c.dom.Document;
   import org.xml.sax.Attributes;
   import org.xml.sax.SAXException;
  @@ -37,13 +39,14 @@
   import java.util.Map;
   
   
  -/** The transformation half of the FragmentExtractor.
  - * This transformer sieves an incoming stream of xml
  +/** 
  + * The transformation half of the FragmentExtractor.
  + * This transformer sieves an incoming stream of xml 
    * and replaces fragments with an xlink locator pointing to the fragments.
    * <p>
    * The extracted fragments are idendified by their element name and namespace URI.
    * The default is to extract SVG images ("svg" elements in namespace
  - * "http://www.w3.org/2000/svg"), but this can be overriden in the configuration :
  + * "http://www.w3.org/2000/svg"), but this can be overriden in the configuration:
    * <pre>
    *   &lt;extract-uri&gt;http://my/namespace/uri&lt;/extract-uri&gt;
    *   &lt;extract-element&gt;my-element&lt;/extract-element&gt;
  @@ -53,19 +56,22 @@
    * and the associated generator are very likely to fail on a clustered server.</b>
    *
    * @author <a href="mailto:paul@luminas.co.uk">Paul Russell</a>
  - * @version CVS $Revision: 1.6 $ $Date: 2002/01/31 11:16:11 $
  + * @version CVS $Revision: 1.7 $ $Date: 2002/02/01 15:01:33 $
    */
   public class FragmentExtractorTransformer extends AbstractTransformer
       implements Composable, Disposable, Cacheable, Poolable, Configurable {
   
  -    private String extractURI = "http://www.w3.org/2000/svg";
  -    private String extractElement = "svg";
  +    private static final String EXTRACT_URI_NAME = "extract-uri";
  +    private static final String EXTRACT_ELEMENT_NAME = "extract-element";
  +
  +    private static final String EXTRACT_URI = "http://www.w3.org/2000/svg";
  +    private static final String EXTRACT_ELEMENT = "svg";
   
  -    private final static String EXTRACT_URI_NAME = "extract-uri";
  -    private final static String EXTRACT_ELEMENT_NAME = "extract-element";
  +    private static final String FE_URI = "http://apache.org/cocoon/fragmentextractor/2.0";
  +    private static final String XLINK_URI = "http://www.w3c.org/1999/xlink";
   
  -    private static String FE_URI = "http://apache.org/cocoon/fragmentextractor/2.0";
  -    private static String XLINK_URI = "http://www.w3c.org/1999/xlink";
  +    private String extractURI;
  +    private String extractElement;
   
       private static String generatorClass = "org.apache.cocoon.generation.FragmentExtractorGenerator";
   
  @@ -87,16 +93,13 @@
           this.documentFactory = (DOMFactory) this.manager.lookup(Parser.ROLE);
       }
   
  -     /**
  +    /**
        * Configure this transformer.
        */
  -    public void configure( Configuration conf )
  -            throws ConfigurationException {
  -        if ( conf != null ) {
  -
  -            this.extractURI = conf.getChild(EXTRACT_URI_NAME).getValue(this.extractURI);
  -            this.extractElement = conf.getChild(EXTRACT_ELEMENT_NAME).getValue(this.extractElement);
  -
  +    public void configure(Configuration conf) throws ConfigurationException {
  +        if (conf != null) {
  +            this.extractURI = conf.getChild(EXTRACT_URI_NAME).getValue(EXTRACT_URI);
  +            this.extractElement = conf.getChild(EXTRACT_ELEMENT_NAME).getValue(EXTRACT_ELEMENT);
               if (getLogger().isDebugEnabled()) {
                   getLogger().debug("Extraction URI is " + this.extractURI);
                   getLogger().debug("Extraction element is " + this.extractElement);
  @@ -104,8 +107,7 @@
           }
       }
   
  -    /** Setup the transformer.
  -     */
  +    /** Setup the transformer. */
       public void setup(SourceResolver resolver, Map objectModel, String src, Parameters parameters)
               throws ProcessingException, SAXException, IOException {
           extractLevel = 0;
  @@ -136,16 +138,14 @@
       /**
        * Receive notification of the beginning of a document.
        */
  -    public void startDocument()
  -    throws SAXException {
  +    public void startDocument() throws SAXException {
           super.startDocument();
       }
   
       /**
        * Receive notification of the end of a document.
        */
  -    public void endDocument()
  -    throws SAXException {
  +    public void endDocument() throws SAXException {
           super.endDocument();
       }
   
  @@ -157,7 +157,7 @@
        */
       public void startPrefixMapping(String prefix, String uri)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.startPrefixMapping(prefix,uri);
               prefixMap.put(prefix,uri);
           } else {
  @@ -172,7 +172,7 @@
        */
       public void endPrefixMapping(String prefix)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.endPrefixMapping(prefix);
               prefixMap.remove(prefix);
           } else {
  @@ -195,7 +195,7 @@
        */
       public void startElement(String uri, String loc, String raw, Attributes a)
       throws SAXException {
  -        if ( this.extractURI.equals(uri) && this.extractElement.equals(loc) ) {
  +        if (this.extractURI.equals(uri) && this.extractElement.equals(loc)) {
               extractLevel++;
               fragmentID++;
               getLogger().debug("FragmentExtractorTransformer extractLevel now " + extractLevel + ".");
  @@ -204,7 +204,7 @@
               this.currentBuilder = new DOMBuilder(documentFactory);
               this.currentBuilder.startDocument();
               Iterator itt = prefixMap.entrySet().iterator();
  -            while ( itt.hasNext() ) {
  +            while (itt.hasNext()) {
                   Map.Entry entry = (Map.Entry)itt.next();
                   this.currentBuilder.startPrefixMapping(
                       (String)entry.getKey(),
  @@ -213,7 +213,7 @@
               }
           }
   
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.startElement(uri,loc,raw,a);
           } else {
               this.currentBuilder.startElement(uri,loc,raw,a);
  @@ -234,18 +234,18 @@
        */
       public void endElement(String uri, String loc, String raw)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.endElement(uri,loc,raw);
           } else {
               this.currentBuilder.endElement(uri,loc,raw);
  -            if ( this.extractURI.equals(uri) && this.extractElement.equals(loc) ) {
  +            if (this.extractURI.equals(uri) && this.extractElement.equals(loc)) {
                   extractLevel--;
                   getLogger().debug("FragmentExtractorTransformer extractLevel now " + extractLevel + ".");
   
  -                if ( extractLevel == 0 ) {
  +                if (extractLevel == 0) {
                       // finish building the DOM. remove existing prefix mappings.
                       Iterator itt = prefixMap.entrySet().iterator();
  -                    while ( itt.hasNext() ) {
  +                    while (itt.hasNext()) {
                           Map.Entry entry = (Map.Entry) itt.next();
                           this.currentBuilder.endPrefixMapping(
                               (String)entry.getKey()
  @@ -258,7 +258,7 @@
                       getLogger().debug("FragmentExtractorTransformer stored document " + id + ".");
   
                       // Insert ref.
  -                    super.startPrefixMapping("fe",FE_URI);
  +                    super.startPrefixMapping("fe", FE_URI);
                       AttributesImpl atts = new AttributesImpl();
                       atts.addAttribute(null,"fragment-id","fragment-id","CDATA",id);
                       super.startElement(FE_URI,"fragment","fe:fragment",atts);
  @@ -278,7 +278,7 @@
        */
       public void characters(char c[], int start, int len)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.characters(c,start,len);
           } else {
               this.currentBuilder.characters(c,start,len);
  @@ -294,7 +294,7 @@
        */
       public void ignorableWhitespace(char c[], int start, int len)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.ignorableWhitespace(c,start,len);
           } else {
               this.currentBuilder.ignorableWhitespace(c,start,len);
  @@ -310,7 +310,7 @@
        */
       public void processingInstruction(String target, String data)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.processingInstruction(target,data);
           } else {
               this.currentBuilder.processingInstruction(target,data);
  @@ -325,7 +325,7 @@
        */
       public void skippedEntity(String name)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.skippedEntity(name);
           } else {
               this.currentBuilder.skippedEntity(name);
  @@ -343,7 +343,7 @@
        */
       public void startDTD(String name, String publicId, String systemId)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.startDTD(name,publicId,systemId);
           } else {
               throw new SAXException(
  @@ -357,7 +357,7 @@
        */
       public void endDTD()
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.endDTD();
           } else {
               throw new SAXException(
  @@ -374,7 +374,7 @@
        */
       public void startEntity(String name)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.startEntity(name);
           } else {
               this.currentBuilder.startEntity(name);
  @@ -388,7 +388,7 @@
        */
       public void endEntity(String name)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.endEntity(name);
           } else {
               this.currentBuilder.endEntity(name);
  @@ -400,7 +400,7 @@
        */
       public void startCDATA()
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.startCDATA();
           } else {
               this.currentBuilder.startCDATA();
  @@ -412,7 +412,7 @@
        */
       public void endCDATA()
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.endCDATA();
           } else {
               this.currentBuilder.endCDATA();
  @@ -428,7 +428,7 @@
        */
       public void comment(char ch[], int start, int len)
       throws SAXException {
  -        if ( extractLevel == 0 ) {
  +        if (extractLevel == 0) {
               super.comment(ch,start,len);
           } else {
               this.currentBuilder.comment(ch,start,len);
  @@ -441,5 +441,7 @@
       public void dispose() {
           if(this.documentFactory!=null) this.manager.release((Component) this.documentFactory);
           this.documentFactory = null;
  +
  +        this.manager = null;
       }
   }
  
  
  

----------------------------------------------------------------------
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