127 lines
4.7 KiB
C#
127 lines
4.7 KiB
C#
/*
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
*/
|
|
|
|
|
|
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()
|
|
{
|
|
}
|
|
}
|
|
}
|