1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
using System;
using System.Collections.Generic;
using org.apache.qpid.client ;
namespace org.apache.qpid.console
{
public class XMLUtil
{
public static string CommonAttributes(SchemaVariable var) {
string returnString = "" ;
if (var.Description != null){
returnString = returnString + String.Format(" desc='{0}'", var.Description) ;
}
if (var.RefPackage != null){
returnString = returnString + String.Format(" refPackage='{0}'", var.RefPackage) ;
}
if (var.RefClass != null){
returnString = returnString + String.Format(" refClass='{0}'", var.RefClass) ;
}
if (var.Unit != null){
returnString = returnString + String.Format(" unit='{0}'", var.Unit) ;
}
if (var.Min != null){
returnString = returnString + String.Format(" min='{0}'", var.Min) ;
}
if (var.Max != null){
returnString = returnString + String.Format(" max='{0}'", var.Max) ;
}
if (var.MaxLength != null){
returnString = returnString + String.Format(" maxLength='{0}'", var.MaxLength) ;
}
return returnString ;
}
public static string SchemaXML(Session sess, string packageName) {
string returnValue = String.Format("<schema package='{0}'>\n", packageName) ;
foreach (ClassKey key in sess.GetClasses(packageName)) {
SchemaClass schema = sess.GetSchema(key) ;
if (schema.Kind == 1) {
if (schema.SuperType == null)
returnValue += String.Format("\t<class name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()) ;
else
returnValue += String.Format("\t<class name='{0}' hash='{1}' extends='{2}'>\n", key.ClassName, key.GetHashString(), schema.SuperType.GetKeyString()) ;
foreach (SchemaProperty prop in schema.Properties) {
object[] attributes = new object[5] ;
attributes[0] = prop.Name ;
attributes[1] = Util.TypeName(prop.Type) ;
attributes[2] = Util.AccessName(prop.Access) ;
attributes[3] = prop.Optional ;
attributes[4] = XMLUtil.CommonAttributes(prop);
returnValue += String.Format("\t\t<property name='{0}' type='{1}' access='{2}' optional='{3}'{4}/>\n", attributes) ;
}
foreach (SchemaMethod meth in schema.Methods) {
returnValue += String.Format("\t\t<method name='{0}'/>\n", meth.Name) ;
foreach (SchemaArgument arg in meth.Arguments) {
object[] attributes = new object[4] ;
attributes[0] = arg.Name ;
attributes[1] = arg.Direction ;
attributes[2] = Util.TypeName(arg.Type) ;
attributes[3] = XMLUtil.CommonAttributes(arg);
returnValue += String.Format("\t\t\t<arg name='{0}' dir='{1}' type='{2}'{3}/>\n", attributes) ;
}
returnValue += String.Format("\t\t</method>\n") ;
}
returnValue += String.Format("\t</class>\n") ;
} else {
returnValue += String.Format("\t<event name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()) ;
foreach (SchemaArgument arg in schema.Arguments) {
object[] attributes = new object[4] ;
attributes[0] = arg.Name ;
attributes[1] = Util.TypeName(arg.Type) ;
attributes[2] = XMLUtil.CommonAttributes(arg);
returnValue += String.Format("\t\t\t<arg name='{0}' type='{1}'{2}/>\n", attributes) ;
}
returnValue += String.Format("\t</event>\n") ;
}
}
returnValue += String.Format("</schema>\n") ;
return returnValue ;
}
public static string SchemaXML(Session sess, string[] packageNames) {
string returnValue = "<schemas>\n" ;
foreach (string package in packageNames) {
returnValue += XMLUtil.SchemaXML(sess, package) ;
returnValue += "\n" ;
}
returnValue += "</schemas>\n" ;
return returnValue ;
}
protected XMLUtil()
{
}
}
}
|