fd783ff6691cbfbd75fe568070498c2b413868a5
[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.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.helptools.external;
14
15 import org.xml.sax.Attributes;
16 import org.xml.sax.Locator;
17 import org.scilab.modules.helptools.DocbookTagConverter;
18
19 public abstract class ExternalXMLHandler {
20
21     private DocbookTagConverter converter;
22     protected int compt = 1;
23
24     public abstract StringBuilder startExternalXML(String localName, Attributes attributes, Locator locator);
25
26     public abstract String endExternalXML(String localName);
27
28     public abstract String getURI();
29
30     public final DocbookTagConverter getConverter() {
31         return converter;
32     }
33
34     public final void setConverter(DocbookTagConverter converter) {
35         this.converter = converter;
36     }
37
38     public final void resetCompt() {
39         compt = 1;
40     }
41
42     public String getScilabURI() {
43         return "http://www.scilab.org";
44     }
45
46     public void recreateTag(StringBuilder buf, String localName, Attributes attrs) {
47         if (attrs != null) {
48             buf.append("<");
49             buf.append(localName);
50             int len = attrs.getLength();
51             for (int i = 0; i < len; i++) {
52                 String at = attrs.getLocalName(i);
53                 if (at != null && at.length() > 0) {
54                     buf.append(" ");
55                     buf.append(at);
56                     buf.append("=\'");
57                     buf.append(attrs.getValue(i));
58                     buf.append("\'");
59                 }
60             }
61         } else {
62             buf.append("</");
63             buf.append(localName);
64         }
65
66         buf.append(">");
67     }
68 }