Help generation: add the ability to generate an image from inlined Scilab code
[scilab.git] / scilab / modules / helptools / src / java / org / scilab / modules / helptools / external / ExternalXMLHandler.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - Calixte DENIZET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.helptools.external;
14
15 import org.xml.sax.Attributes;
16
17 import org.scilab.modules.helptools.DocbookTagConverter;
18
19 public abstract class ExternalXMLHandler {
20
21     private DocbookTagConverter converter;
22
23     public abstract StringBuilder startExternalXML(String localName, Attributes attributes);
24
25     public abstract String endExternalXML(String localName);
26
27     public abstract String getURI();
28
29     public DocbookTagConverter getConverter() {
30         return converter;
31     }
32
33     public void setConverter(DocbookTagConverter converter) {
34         this.converter = converter;
35     }
36
37     public void recreateTag(StringBuilder buf, String localName, Attributes attrs) {
38         if (attrs != null) {
39             buf.append("<");
40             buf.append(localName);
41             int len = attrs.getLength();
42             for (int i = 0; i < len; i++) {
43                 String at = attrs.getLocalName(i);
44                 if (at != null && at.length() > 0) {
45                     buf.append(" ");
46                     buf.append(at);
47                     buf.append("=\'");
48                     buf.append(attrs.getValue(i));
49                     buf.append("\'");
50                 }
51             }
52         } else {
53             buf.append("</");
54             buf.append(localName);
55         }
56
57         buf.append(">");
58     }
59 }