JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / javajs / util / XmlUtil.js
1 Clazz.declarePackage ("javajs.util");
2 Clazz.load (null, "javajs.util.XmlUtil", ["javajs.util.PT"], function () {
3 c$ = Clazz.declareType (javajs.util, "XmlUtil");
4 Clazz.makeConstructor (c$, 
5 function () {
6 });
7 c$.openDocument = Clazz.defineMethod (c$, "openDocument", 
8 function (data) {
9 data.append ("<?xml version=\"1.0\"?>\n");
10 }, "javajs.util.SB");
11 c$.openTag = Clazz.defineMethod (c$, "openTag", 
12 function (sb, name) {
13 sb.append ("<").append (name).append (">\n");
14 }, "javajs.util.SB,~S");
15 c$.openTagAttr = Clazz.defineMethod (c$, "openTagAttr", 
16 function (sb, name, attributes) {
17 javajs.util.XmlUtil.appendTagAll (sb, name, attributes, null, false, false);
18 sb.append ("\n");
19 }, "javajs.util.SB,~S,~A");
20 c$.closeTag = Clazz.defineMethod (c$, "closeTag", 
21 function (sb, name) {
22 sb.append ("</").append (name).append (">\n");
23 }, "javajs.util.SB,~S");
24 c$.appendTagAll = Clazz.defineMethod (c$, "appendTagAll", 
25 function (sb, name, attributes, data, isCdata, doClose) {
26 var closer = ">";
27 if (name.endsWith ("/")) {
28 name = name.substring (0, name.length - 1);
29 if (data == null) {
30 closer = "/>\n";
31 doClose = false;
32 }}sb.append ("<").append (name);
33 if (attributes != null) for (var i = 0; i < attributes.length; i++) {
34 var o = attributes[i];
35 if (o == null) continue;
36 if (Clazz.instanceOf (o, Array)) for (var j = 0; j < (o).length; j += 2) javajs.util.XmlUtil.appendAttrib (sb, (o)[j], (o)[j + 1]);
37
38  else javajs.util.XmlUtil.appendAttrib (sb, o, attributes[++i]);
39 }
40 sb.append (closer);
41 if (data != null) {
42 if (isCdata) data = javajs.util.XmlUtil.wrapCdata (data);
43 sb.appendO (data);
44 }if (doClose) javajs.util.XmlUtil.closeTag (sb, name);
45 }, "javajs.util.SB,~S,~A,~O,~B,~B");
46 c$.wrapCdata = Clazz.defineMethod (c$, "wrapCdata", 
47 function (data) {
48 var s = "" + data;
49 return (s.indexOf ("&") < 0 && s.indexOf ("<") < 0 ? (s.startsWith ("\n") ? "" : "\n") + s : "<![CDATA[" + javajs.util.PT.rep (s, "]]>", "]]]]><![CDATA[>") + "]]>");
50 }, "~O");
51 c$.unwrapCdata = Clazz.defineMethod (c$, "unwrapCdata", 
52 function (s) {
53 return (s.startsWith ("<![CDATA[") && s.endsWith ("]]>") ? javajs.util.PT.rep (s.substring (9, s.length - 3), "]]]]><![CDATA[>", "]]>") : s);
54 }, "~S");
55 c$.appendTagObj = Clazz.defineMethod (c$, "appendTagObj", 
56 function (sb, name, attributes, data) {
57 javajs.util.XmlUtil.appendTagAll (sb, name, attributes, data, false, true);
58 }, "javajs.util.SB,~S,~A,~O");
59 c$.appendTag = Clazz.defineMethod (c$, "appendTag", 
60 function (sb, name, data) {
61 if (Clazz.instanceOf (data, Array)) javajs.util.XmlUtil.appendTagAll (sb, name, data, null, false, true);
62  else javajs.util.XmlUtil.appendTagAll (sb, name, null, data, false, true);
63 }, "javajs.util.SB,~S,~O");
64 c$.appendCdata = Clazz.defineMethod (c$, "appendCdata", 
65 function (sb, name, attributes, data) {
66 javajs.util.XmlUtil.appendTagAll (sb, name, attributes, data, true, true);
67 }, "javajs.util.SB,~S,~A,~S");
68 c$.appendAttrib = Clazz.defineMethod (c$, "appendAttrib", 
69 function (sb, name, value) {
70 if (value == null) return;
71 sb.append (" ").appendO (name).append ("=\"").appendO (value).append ("\"");
72 }, "javajs.util.SB,~O,~O");
73 });