diff options
Diffstat (limited to 'qpid/dotnet/client-010/management/console/XMLUtil.cs')
-rw-r--r-- | qpid/dotnet/client-010/management/console/XMLUtil.cs | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/qpid/dotnet/client-010/management/console/XMLUtil.cs b/qpid/dotnet/client-010/management/console/XMLUtil.cs new file mode 100644 index 0000000000..b24ad51747 --- /dev/null +++ b/qpid/dotnet/client-010/management/console/XMLUtil.cs @@ -0,0 +1,127 @@ +/* + * + * 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() + { + } + } +} |