vgritsenko    02/01/24 19:38:37

  Modified:    src/java/org/apache/cocoon/components/language/markup
                        AbstractMarkupLanguage.java Logicsheet.java
                        LogicsheetCodeGenerator.java
  Log:
   - some code formatting
   - added FIXME: recycle source
  
  Revision  Changes    Path
  1.2       +85 -87    
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java
  
  Index: AbstractMarkupLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractMarkupLanguage.java       3 Jan 2002 12:31:09 -0000       1.1
  +++ AbstractMarkupLanguage.java       25 Jan 2002 03:38:36 -0000      1.2
  @@ -38,13 +38,13 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ovidiu Predescu</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/25 03:38:36 $
    */
   public abstract class AbstractMarkupLanguage extends AbstractLoggable
     implements MarkupLanguage, Composable, Configurable
   {
  -  /** The 'file' URL protocol. */
  -  private static final String FILE = "file:";
  +    /** The 'file' URL protocol. */
  +    private static final String FILE = "file:";
     
       /** The supported language table */
       protected Hashtable languages;
  @@ -64,10 +64,10 @@
       /** Prefix for cache keys to avoid name clash with the XSLTProcessor */
       private static final String CACHE_PREFIX = "logicsheet:";
   
  -  /**
  -   * The URL factory used to resolve URIs.
  -   */
  -  URLFactory urlFactory;
  +    /**
  +     * The URL factory used to resolve URIs.
  +     */
  +    URLFactory urlFactory;
   
       /**
        * Set the global component manager.
  @@ -172,57 +172,57 @@
       return logicsheet;
     }
   
  -  /**
  -   * Return the source document's encoding. This can be <code>null</code> for
  -   * the platform's default encoding. The default implementation returns
  -   * <code>null, but derived classes may override it if encoding applies to
  -   * their concrete languages. FIXME: There should be a way to get the
  -   * XML document's encoding as seen by the parser; unfortunately, this
  -   * information is not returned by current DOM or SAX parsers...
  -   * @return The document-specified encoding
  -   */
  -  public String getEncoding() {
  -    return null;
  -  }
  -
  -  /**
  -   * Returns a filter that chains on the fly the requested
  -   * transformers for source code generation. This method scans the
  -   * input SAX events for built-in logicsheet declared as namespace
  -   * attribute on the root element. Derived class should overide
  -   * this method and the public inner class in order to add more
  -   * specif action and to build a more specific transformer chain.
  -   *
  -   * @param logicsheetMarkupGenerator the logicsheet markup generator
  -   * @param resolver the entity resolver
  -   * @return XMLFilter the filter that build on the fly the transformer chain
  -   */
  -  protected TransformerChainBuilderFilter getTranformerChainBuilder
  -    (LogicsheetCodeGenerator logicsheetMarkupGenerator,
  -     SourceResolver resolver)
  -  {
  -    return new TransformerChainBuilderFilter(logicsheetMarkupGenerator,
  -                                             resolver);
  -  }
  +    /**
  +     * Return the source document's encoding. This can be <code>null</code> for
  +     * the platform's default encoding. The default implementation returns
  +     * <code>null, but derived classes may override it if encoding applies to
  +     * their concrete languages. FIXME: There should be a way to get the
  +     * XML document's encoding as seen by the parser; unfortunately, this
  +     * information is not returned by current DOM or SAX parsers...
  +     * @return The document-specified encoding
  +     */
  +    public String getEncoding() {
  +        return null;
  +    }
  +    
  +    /**
  +     * Returns a filter that chains on the fly the requested
  +     * transformers for source code generation. This method scans the
  +     * input SAX events for built-in logicsheet declared as namespace
  +     * attribute on the root element. Derived class should overide
  +     * this method and the public inner class in order to add more
  +     * specif action and to build a more specific transformer chain.
  +     *
  +     * @param logicsheetMarkupGenerator the logicsheet markup generator
  +     * @param resolver the entity resolver
  +     * @return XMLFilter the filter that build on the fly the transformer chain
  +     */
  +    protected TransformerChainBuilderFilter getTranformerChainBuilder
  +        (LogicsheetCodeGenerator logicsheetMarkupGenerator,
  +         SourceResolver resolver)
  +    {
  +      return new TransformerChainBuilderFilter(logicsheetMarkupGenerator,
  +                                               resolver);
  +    }
   
  -  /**
  -   * Prepare the input source for logicsheet processing and code
  -   * generation with a preprocess filter.  The return
  -   * <code>XMLFilter</code> object is the first filter on the
  -   * transformer chain.  The default implementation does nothing by
  -   * returning a identity filter, but derived classes should (at
  -   * least) use the passed programming language to quote
  -   * <code>Strings</code>
  -   *
  -   * @param filename The source filename
  -   * @param language The target programming language
  -   * @return The preprocess filter
  -   */
  -  protected XMLFilter getPreprocessFilter(String filename,
  -                                          ProgrammingLanguage language)
  -  {
  -    return new XMLFilterImpl();
  -  }
  +    /**
  +     * Prepare the input source for logicsheet processing and code
  +     * generation with a preprocess filter.  The return
  +     * <code>XMLFilter</code> object is the first filter on the
  +     * transformer chain.  The default implementation does nothing by
  +     * returning a identity filter, but derived classes should (at
  +     * least) use the passed programming language to quote
  +     * <code>Strings</code>
  +     *
  +     * @param filename The source filename
  +     * @param language The target programming language
  +     * @return The preprocess filter
  +     */
  +    protected XMLFilter getPreprocessFilter(String filename,
  +                                            ProgrammingLanguage language)
  +    {
  +        return new XMLFilterImpl();
  +    }
   
       /**
        * Add a dependency on an external file to the document for inclusion in
  @@ -252,26 +252,26 @@
        * @exception Exception If an error occurs during code generation
        */
       public String generateCode(InputSource input, String filename, 
ProgrammingLanguage programmingLanguage,
  -        SourceResolver resolver) throws Exception {
  -            String languageName = programmingLanguage.getLanguageName();
  -            LanguageDescriptor language = 
(LanguageDescriptor)this.languages.get(languageName);
  -            if (language == null) {
  -                throw new IllegalArgumentException("Unsupported programming 
language: " + languageName);
  -            }
  -            // Create a XMLReader
  -            XMLReader reader = XMLReaderFactory.createXMLReader();
  -            // Get the needed preprocess filter
  -            XMLFilter preprocessFilter = this.getPreprocessFilter(filename, 
programmingLanguage);
  -            preprocessFilter.setParent(reader);
  -            // Create code generator
  -            LogicsheetCodeGenerator codeGenerator = new LogicsheetCodeGenerator();
  -            codeGenerator.setLogger(getLogger());
  -            codeGenerator.initialize();
  -            // set the transformer chain builder filter
  -            TransformerChainBuilderFilter tranBuilder = 
getTranformerChainBuilder(codeGenerator, resolver);
  -            tranBuilder.setLanguageDescriptor(language);
  -            tranBuilder.setParent(preprocessFilter);
  -            return codeGenerator.generateCode(tranBuilder, input, filename);
  +                               SourceResolver resolver) throws Exception {
  +        String languageName = programmingLanguage.getLanguageName();
  +        LanguageDescriptor language = 
(LanguageDescriptor)this.languages.get(languageName);
  +        if (language == null) {
  +            throw new IllegalArgumentException("Unsupported programming language: " 
+ languageName);
  +        }
  +        // Create a XMLReader
  +        XMLReader reader = XMLReaderFactory.createXMLReader();
  +        // Get the needed preprocess filter
  +        XMLFilter preprocessFilter = this.getPreprocessFilter(filename, 
programmingLanguage);
  +        preprocessFilter.setParent(reader);
  +        // Create code generator
  +        LogicsheetCodeGenerator codeGenerator = new LogicsheetCodeGenerator();
  +        codeGenerator.setLogger(getLogger());
  +        codeGenerator.initialize();
  +        // set the transformer chain builder filter
  +        TransformerChainBuilderFilter tranBuilder = 
getTranformerChainBuilder(codeGenerator, resolver);
  +        tranBuilder.setLanguageDescriptor(language);
  +        tranBuilder.setParent(preprocessFilter);
  +        return codeGenerator.generateCode(tranBuilder, input, filename);
       }
   
       LinkedList logicSheetList = new LinkedList();
  @@ -318,24 +318,22 @@
       throws MalformedURLException, IOException, SAXException, ProcessingException
     {
       Logicsheet logicsheet = (Logicsheet)logicsheetCache.get(CACHE_PREFIX + 
logicsheetLocation);
  -    String logicsheetName;
  -
  -    getLogger().debug("AbstractMarkupLanguage addLogicsheetToList: "
  -                      + "logicsheetLocation " + logicsheetLocation
  -                      + ", logicsheet instance " + logicsheet);
   
  +    String logicsheetName;
       if (logicsheet == null) {
         Source inputSource = resolver.resolve(logicsheetLocation);
         logicsheet = new Logicsheet(inputSource, manager, resolver);
         logicsheetName = logicsheet.getSystemId();
  -
         logicsheetCache.store(CACHE_PREFIX + logicsheetName, logicsheet);
  -    }
  -    else
  +      // FIXME(VG): inputSource.recylce() !!!
  +    } else {
         logicsheetName = logicsheet.getSystemId();
  +    }
   
       getLogger().debug("AbstractMarkupLanguage addLogicsheetToList: "
  -                      + "logicsheetName " + logicsheetName);
  +                      + "name: " + logicsheetName
  +                      + ", location: " + logicsheetLocation
  +                      + ", instance: " + logicsheet);
       
       if (logicsheetName.startsWith(FILE)) {
         String filename = logicsheetName.substring(FILE.length());
  @@ -437,7 +435,7 @@
   
   
       /**
  -     * a XMLFilter that build the chain of transformers on the fly.
  +     * An XMLFilter that build the chain of transformers on the fly.
        * Each time a stylesheet is found, a call to the code generator is done
        * to add the new transformer at the end of the current transformer chain.
        */
  
  
  
  1.2       +1 -2      
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/Logicsheet.java
  
  Index: Logicsheet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/Logicsheet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Logicsheet.java   3 Jan 2002 12:31:09 -0000       1.1
  +++ Logicsheet.java   25 Jan 2002 03:38:36 -0000      1.2
  @@ -41,7 +41,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ovidiu Predescu</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/25 03:38:36 $
    */
   public class Logicsheet extends AbstractLoggable
   {
  @@ -203,5 +203,4 @@
         super.startElement(namespaceURI, localName, qName, atts);
       }
     }
  -
   }
  
  
  
  1.2       +7 -6      
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/LogicsheetCodeGenerator.java
  
  Index: LogicsheetCodeGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/LogicsheetCodeGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LogicsheetCodeGenerator.java      3 Jan 2002 12:31:09 -0000       1.1
  +++ LogicsheetCodeGenerator.java      25 Jan 2002 03:38:36 -0000      1.2
  @@ -12,6 +12,9 @@
   import org.xml.sax.ContentHandler;
   import org.xml.sax.InputSource;
   import org.xml.sax.XMLReader;
  +import org.xml.sax.Locator;
  +import org.xml.sax.SAXException;
  +import org.xml.sax.Attributes;
   
   import javax.xml.transform.OutputKeys;
   import javax.xml.transform.TransformerConfigurationException;
  @@ -28,7 +31,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/25 03:38:36 $
    */
   public class LogicsheetCodeGenerator extends AbstractLoggable implements 
MarkupCodeGenerator {
   
  @@ -46,8 +49,8 @@
       private SAXTransformerFactory tfactory = null;
   
       /**
  -    * Initialize the LogicsheetCodeGenerator.
  -    */
  +     * Initialize the LogicsheetCodeGenerator.
  +     */
       public void initialize() {
   
           Properties format = new Properties();
  @@ -90,7 +93,7 @@
       * @param logicsheet The logicsheet to be added
       */
       public void addLogicsheet(Logicsheet logicsheet) {
  -        if (this.currentParent==null) {
  +        if (this.currentParent == null) {
               // Setup the first transformer of the chain.
               this.currentParent = logicsheet.getTransformerHandler();
   
  @@ -130,6 +133,4 @@
           this.rootReader.parse(input);
           return this.writer.toString();
       }
  -
   }
  -
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to