+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.project
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.project Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+
+
+ WodenWSDLParser
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.settings/org.eclipse.jdt.core.prefs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.settings/org.eclipse.jdt.core.prefs Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,12 @@
+#Tue May 25 18:05:22 EDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/CovertToWSDL2.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/CovertToWSDL2.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/lsdis/WSDLParserDriver.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/lsdis/WSDLParserDriver.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.dom
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.dom Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,71 @@
+This license came from:
+http://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+
+W3C® SOFTWARE NOTICE AND LICENSE
+Copyright © 1994-2001 World
+Wide Web Consortium, World
+Wide Web Consortium , (Massachusetts Institute of
+Technology , Institut National de
+Recherche en Informatique et en Automatique , Keio University ). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:
+Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification, for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:
+
+The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.
+
+Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"
+
+Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide
+URIs to the location from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.
+____________________________________
+This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the older formulation for the
+policy prior to this date. Please see our Copyright FAQ for common
+questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw.
+Other questions about this notice can be
+directed to site-policy@w3.org.
+
+webmaster
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.sax
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.sax Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,20 @@
+This license came from: http://www.megginson.com/SAX/copying.html
+ However please note future versions of SAX may be covered
+ under http://saxproject.org/?selected=pd
+
+
+This page is now out of date -- see the new SAX site at
+http://www.saxproject.org/ for more up-to-date
+releases and other information. Please change your bookmarks.
+
+
+SAX2 is Free!
+
+I hereby abandon any property rights to SAX 2.0 (the Simple API for
+XML), and release all of the SAX 2.0 source code, compiled code, and
+documentation contained in this distribution into the Public Domain.
+SAX comes with NO WARRANTY or guarantee of fitness for any
+purpose.
+
+David Megginson, david@megginson.com
+2000-05-05
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.wsdl4j.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.wsdl4j.html Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,229 @@
+
+
+Body
+
+
+
+Common Public License - v 1.0
+
+
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.
+
+
1. DEFINITIONS
+
"Contribution" means:
+
a) in the case of the initial Contributor, the initial code
+ and documentation distributed under this Agreement, and b) in
+ the case of each subsequent Contributor:
+i) changes to the Program, and
+ii) additions to the Program;
+where such changes and/or additions to the Program originate
+ from and are distributed by that particular Contributor. A
+ Contribution 'originates' from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include additions to the Program
+ which: (i) are separate modules of software distributed in conjunction with
+ the Program under their own license agreement, and (ii) are not derivative
+ works of the Program.
+
+
"Contributor" means any person or entity that distributes the
+Program.
+
+
"Licensed Patents " mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.
+
+
"Program" means the Contributions
+distributed in accordance with this Agreement.
+
+
"Recipient" means anyone who receives the Program under this
+Agreement, including all Contributors.
+
+
2. GRANT OF RIGHTS
+
a) Subject to the
+ terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free copyright license
+ to reproduce, prepare
+ derivative works of, publicly display, publicly perform, distribute and
+ sublicense the Contribution of such Contributor, if any, and such derivative
+ works, in source code and object code form.
+
+b) Subject to the terms of this
+ Agreement, each Contributor hereby grants Recipient a
+ non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell,
+ offer to sell, import and otherwise transfer the Contribution of such
+ Contributor, if any, in source code and object code form. This patent license
+ shall apply to the combination of the Contribution and the Program if, at the
+ time the Contribution is added by the Contributor, such addition of the
+ Contribution causes such combination to be covered by the Licensed Patents.
+ The patent license shall not apply to any other combinations which include the
+ Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor
+ grants the licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the patent or
+ other intellectual property rights of any other entity. Each Contributor
+ disclaims any liability to Recipient for claims brought by any other entity
+ based on infringement of intellectual property rights or otherwise. As a
+ condition to exercising the rights and licenses granted hereunder, each
+ Recipient hereby assumes sole responsibility to secure any other intellectual
+ property rights needed, if any. For example, if a third party patent license
+ is required to allow Recipient to distribute the Program, it is Recipient's
+ responsibility to acquire that license before distributing the
+Program.
+
+d) Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant the
+ copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
A Contributor may choose to distribute the Program in
+object code form under its own license agreement, provided that:
+
a) it complies with the terms and conditions of this
+ Agreement; and
+b) its license agreement:
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express
+ and implied, including warranties or conditions of title and non-infringement,
+ and implied warranties or conditions of merchantability and fitness for a
+ particular purpose;
+ii) effectively excludes on behalf of
+ all Contributors all liability for damages, including direct, indirect,
+ special, incidental and consequential damages, such as lost profits;
+
+iii) states that
+ any provisions which differ from this Agreement are offered by that
+ Contributor alone and not by any other party; and
+iv) states that source code for the Program is available from
+ such Contributor, and informs licensees how to obtain it in a reasonable
+ manner on or through a medium customarily used for software
+ exchange.
+
+When the Program is made available in source code form:
+
a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy
+ of the Program.
+
+
Contributors
+may not remove or alter any copyright notices contained within the Program.
+
+
+
Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent Recipients
+to identify the originator of the Contribution.
+
+
4. COMMERCIAL DISTRIBUTION
+
Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the like.
+While this license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product offering should
+do so in a manner which does not create potential liability for other
+Contributors. Therefore, if a Contributor includes the Program in a commercial
+product offering, such Contributor ("Commercial Contributor") hereby agrees to
+defend and indemnify every other Contributor ("Indemnified Contributor") against
+any losses, damages and costs (collectively "Losses") arising from claims,
+lawsuits and other legal actions brought by a third party against the
+Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a
+commercial product offering. The obligations in this section do not apply to any
+claims or Losses relating to any actual or alleged intellectual property
+infringement. In order to qualify, an Indemnified Contributor must: a) promptly
+notify the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial Contributor
+in, the defense and any related settlement negotiations. The Indemnified
+Contributor may participate in any such claim at its own expense.
+
+
For example, a Contributor might include the Program in a
+commercial product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance claims, or
+offers warranties related to Product X, those performance claims and warranties
+are such Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+
5. NO WARRANTY
+
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
+CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not
+limited to the risks and costs of program errors, compliance with applicable
+laws, damage to or loss of data, programs or equipment, and
+unavailability or interruption of operations .
+
+
6. DISCLAIMER OF LIABILITY
+
EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR
+THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES.
+
+
7. GENERAL
+
If any provision of this Agreement is
+invalid or unenforceable under applicable law, it shall not affect the validity
+or enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+
If Recipient institutes patent litigation against a Contributor
+with respect to a patent applicable to software (including a cross-claim or
+counterclaim in a lawsuit), then any patent licenses granted by that Contributor
+to such Recipient under this Agreement shall terminate as of the date such
+litigation is filed. In addition, if Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed.
+
+
All Recipient's rights under this Agreement shall terminate if
+it fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time after
+becoming aware of such noncompliance. If all Recipient's rights under this
+Agreement terminate, Recipient agrees to cease use and distribution of the
+Program as soon as reasonably practicable. However, Recipient's obligations
+under this Agreement and any licenses granted by Recipient relating to the
+Program shall continue and survive.
+
+
Everyone is permitted
+to copy and distribute copies of this Agreement, but in order to avoid
+inconsistency the Agreement is copyrighted and may only be modified in the
+following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to
+ time. No one other than the Agreement
+Steward has the right to modify this Agreement. IBM is the initial Agreement
+Steward. IBM may assign the responsibility to serve as the Agreement Steward to
+a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version.
+ Except as expressly stated in Sections 2(a) and 2(b) above,
+Recipient receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by
+implication, estoppel or otherwise . All
+rights in the Program not expressly granted under this Agreement are
+reserved.
+
+
This Agreement is governed by the laws of the State of New York
+and the intellectual property laws of the United States of America. No party to
+this Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.xerces
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.xerces Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/XmlSchema-1.4.2.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/XmlSchema-1.4.2.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/axis-wsdl4j-1.3.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/axis-wsdl4j-1.3.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-api-1.0M8.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-api-1.0M8.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-impl-dom-1.0M8.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-impl-dom-1.0M8.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xercesImpl.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xercesImpl.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xml-apis.jar
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xml-apis.jar has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/CovertToWSDL2.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/CovertToWSDL2.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,28 @@
+import java.io.IOException;
+
+import javax.wsdl.WSDLException;
+
+import org.apache.woden.tool.converter.Convert;
+
+
+public class CovertToWSDL2 {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ // TODO Auto-generated method stub
+ Convert convert = new Convert();
+ try{
+ try {
+ String convertFile = convert.convertFile("http://www.ebi.ac.uk/ws/services/WSDbfetch", "/home/ganjoo/parser/woden-dom-1.0M8/wsdl/WSDbfetch.wsdl", "/home/ganjoo/parser/woden-dom-1.0M8/wsdl/wsdl2/", true, true);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }catch(WSDLException e){
+ e.printStackTrace();
+ }
+ }
+
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,209 @@
+package lsdis;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Scanner;
+
+import org.apache.woden.WSDLException;
+import org.apache.woden.WSDLFactory;
+import org.apache.woden.WSDLReader;
+import org.apache.woden.wsdl20.Description;
+import org.apache.woden.wsdl20.ElementDeclaration;
+import org.apache.woden.wsdl20.Endpoint;
+import org.apache.woden.wsdl20.InterfaceMessageReference;
+import org.apache.woden.wsdl20.InterfaceOperation;
+import org.apache.woden.wsdl20.Service;
+import org.apache.woden.wsdl20.Interface;
+import org.apache.woden.wsdl20.extensions.rpc.Direction;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
+import org.apache.ws.commons.schema.XmlSchemaAll;
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaGroupBase;
+import org.apache.ws.commons.schema.XmlSchemaParticle;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaType;
+import org.w3c.dom.NamedNodeMap;
+
+import java.net.URI;
+
+import javax.xml.namespace.QName;
+
+public class WSDLParserDriver {
+
+ private List completeMethodList = new ArrayList();
+ private List url = new ArrayList();
+ private List paramList = new ArrayList();
+ private List paramTypeList = new ArrayList();
+ private String WSDLtype;
+ private BindingElement[] bindingElement = new BindigElement();
+
+ public List getCompleteMethodList() {
+ return completeMethodList;
+ }
+
+ public List getUrl() {
+ return url;
+ }
+
+ public List getParamList() {
+ return paramList;
+ }
+ public List getParamTypeList() {
+ return paramTypeList;
+ }
+
+ public static void main(String[] args) {
+ /*Scanner keyboard = new Scanner(System.in);
+
+ System.out.println("Enter the wsdl url: ");
+ String wsdlurl = keyboard.next();*/
+ WSDLParserDriver a = new WSDLParserDriver();
+ a.parse("/home/ganjoo/parser/bookstore-sample/booklist.wsdl");
+ for(InterfaceOperation oper:a.getCompleteMethodList()){
+ a.getParameters(oper);
+ }
+ }
+
+ public void parse(String wsdlurl){
+
+ try {
+
+ WSDLFactory factory;
+ factory = WSDLFactory.newInstance();
+ WSDLReader reader = factory.newWSDLReader();
+ reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
+ Description desc = reader.readWSDL(wsdlurl);
+ Service[] services = desc.getServices();
+ BindingElement[]
+ for(int i=0;i completeMethodList = new ArrayList();
+ private List url = new ArrayList();
+ private List paramList = new ArrayList();
+ private List paramTypeList = new ArrayList();
+ private String WSDLtype;
+ private BindingElement[] bindingElement = new BindigElement();
+
+ public List getCompleteMethodList() {
+ return completeMethodList;
+ }
+
+ public List getUrl() {
+ return url;
+ }
+
+ public List getParamList() {
+ return paramList;
+ }
+ public List getParamTypeList() {
+ return paramTypeList;
+ }
+
+ public static void main(String[] args) {
+ /*Scanner keyboard = new Scanner(System.in);
+
+ System.out.println("Enter the wsdl url: ");
+ String wsdlurl = keyboard.next();*/
+ WSDLParserDriver a = new WSDLParserDriver();
+ a.parse("/home/ganjoo/parser/bookstore-sample/booklist.wsdl");
+ for(InterfaceOperation oper:a.getCompleteMethodList()){
+ a.getParameters(oper);
+ }
+ }
+
+ public boolean isWSDL2()
+ {
+
+ }
+ public void parse(String wsdlurl){
+
+ try {
+
+ WSDLFactory factory;
+ factory = WSDLFactory.newInstance();
+ WSDLReader reader = factory.newWSDLReader();
+ reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
+ Description desc = reader.readWSDL(wsdlurl);
+ Service[] services = desc.getServices();
+ BindingElement []
+ for(int i=0;i')
+ paramtypes[l]=newPar
+
+
+
+# print ofwhat
+## for p in ofwhat:
+## if isinstance(p, ZSI.TC.ComplexType):
+## print 'complextype', p
+## elif isinstance(p, ZSI.TC.Array) :
+## print 'arraytype', p
+## elif isinstance(p,ZSI.TC.String):
+## print 'String',p
+## elif isinstance(p,ZSI.TC.Integer):
+## print 'Integer',p
+## else:
+## parameters[getattr(p, 'aname')]=None
+##
+ #print parameters
+ return parameters
+ #return paramtypes
+ #find input parameters from message class : instrospect an instace
+# msinstance=inputClass()u can
+## print dir(msinstance)
+# parameters=[]
+# for i in dir(msinstance):
+## print i, type(getattr(msinstance, i))
+# if (type(getattr(msinstance, i)) is NoneType) and i!='__doc__':
+# parameters.append(i)
+## print parameters
+# return parameters
+
+ def path2service(self, modulePath):
+ '''given module path,
+ return return service instance
+ instead of: dbfetchSrv = WSDBFetchServerLegacyServiceLocator().getWSDBFetchServerLegacy()'''
+
+ allclass=self.path2Class(modulePath)
+
+ locator=''
+ for c in allclass.keys():
+ if c[len(c)-7:len(c)]=='Locator':
+ locator=c
+
+ locatorClassOb=allclass[locator]
+ for obname in dir(locatorClassOb):
+ obtemp=getattr(locatorClassOb, obname)
+ if (type(obtemp) is MethodType)and not obtemp.__name__.endswith('Address'):
+ serverMethod=obtemp
+ break
+ # Create a service interface
+ service=serverMethod(locatorClassOb())
+ return service
+
+ def invokeOp(self, opName, modulePath, inputs):
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+ else:
+ # Create a service interface
+ serviceInstance=self.path2service(modulePath)
+
+ #get input class object of given opName
+ inputClass=self.opname2inputClassOb(opName, modulePath)
+
+ mshandler=MessageHandler()
+ if len(inputs) != 0:
+ inputClassInstance=mshandler.msAssign(inputClass(), inputs)
+ else:
+ inputClassInstance= inputClass()
+ #get input name list of given opName
+# inputNames=self.opname2inputs(opName, modulePath)
+
+ #set value for inputs
+ #request._query = 'UNIPROT:ADH1A_HUMAN'
+ #request._format = 'fasta'
+# #request._style = 'raw'
+# if inputNames!= None:
+# for inName in inputs.keys():
+# if inName not in inputNames:
+# raise TypeError, 'the input name is wrong!!!!'
+# #return None
+# else:
+# setattr(inputClassInstance, inName, inputs[inName])
+
+
+ #get dictionary of operation name:object(def)
+ opDict=self.path2Ops(modulePath)
+
+ #get operation object(def)
+ opOb=opDict[opName]
+
+ #invoke operation: response = dbfetchSrv.fetchData(request)
+ responseInstance=opOb(serviceInstance, inputClassInstance)
+
+ #get output from outputmessage: result = response._fetchDataReturn
+ resultDict={}
+ resultDict=mshandler.flatten(responseInstance) #mshandler.msParser(responseInstance)
+ flat = nested2flatDict(resultDict)
+# outputNames=self.opname2outputs(opName, modulePath)
+# for out in outputNames:
+# resultDict[out]=getattr(responseInstance, out)
+
+ #return flat#resultDict
+ return responseInstance
+
+#testing this module
+if __name__=="__main__":
+ test=ClientCreator()
+
+ #picr web service
+# print 'all operations of picr: \n', test.path2Ops('picr.AccessionMapperService_client').keys()
+# print 'inputs of picr \n', test.opname2inputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+# print 'outputs of picr \n', test.opname2outputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+
+
+ seq = """>Q8E5Q5_STRA3
+MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+SIIGYSYLWIYGGDILKNFLN"""
+# inp = {'_content': [{'_type': 'sequence', '_content': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}, {'_type': 'sequence', '_content': 'MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI'}], '_params': {'_database': 'swissprot', '_email': 'chaitanya@gmail.com', '_program': 'blastp'}}
+ inp = {'_parameters': {'_stype': 'protein', '_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI','_database':{ '_string' : ['uniprotkb','uniprotkb_swissprot']}, '_program': 'blastp'}, '_email': 'chaitanya@gmail.com'}
+ inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}]}
+# inputDict = {}
+ inputs ={'_jobId':'wublast-S20110517-051830-0552-49531676-oy','_type':'out'}
+ inp = {}
+ #print test.invokeOp('run', 'wublast.wublast_services', inp)
+ print test.invokeOp('getParameters', 'wublast.wublast_services', inp)
+ #print test.opname2inputs('getResult','wublast.wublast_services')
+# print 'all operations: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+# print 'inputs of runWUBlast \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+# print 'outputs of runWUBlast \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+
+
+# modul=test.path2Module('ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print dir(modul)
+# print 'all operations: \n', test.path2Ops('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print 'all classes:\n', test.path2Class('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'service instance ob:\n', test.path2service('ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print 'outputs of fetchData:\n', test.opname2outputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+# print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+#dbfetch.WSDBFetchServerLegacyService_client
+# print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict).values()[0]
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,308 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+from types import *
+import copy
+import ZSI.TC
+from introspect import *
+from msHandler import *
+from paramConverter import *
+
+__author__="Rui Wang"
+
+class ClientCreator(Introspector):
+ """all method to introspect module
+ to return operations&inputs
+ and to invoke operation"""
+
+
+
+ def path2Ops(self, modulePath ):
+ '''given module(the service python file generated by wsdl2py) path,
+ return dictionary of operation name: object (functions of class-**SOAP)'''
+ allclass=self.path2Class(modulePath)
+ #locator=''
+ opclass=''
+ for c in allclass.keys():
+ if c[len(c)-4:len(c)]=='SOAP':
+ opclass=c
+
+
+ #class object of which holds all ops
+ opclassOb=allclass[opclass]
+ #list of names of all ops
+ allattr=dir(opclassOb)
+ #print allattr
+ allops={}
+ for opt in allattr:
+ #every operation object
+ optemp=getattr(opclassOb, opt)
+ #whether it's def and not private such as __init__
+ if callable(optemp) and optemp.__name__.startswith('__')==False:
+ allops[optemp.__name__]=optemp
+
+ return allops
+
+ def path2messageClassOb(self, modulePath):
+ '''given module path,
+ return all message class object'''
+
+
+ allclassOb=self.path2Class(modulePath)
+
+ #find all message classes: has 'typecode', type(obtemp)==ClassType
+ allmsOb=[]
+ for c in allclassOb.values():
+ if hasattr(c,'typecode'):
+ allmsOb.append(c)
+ return allmsOb
+
+ def opname2inputClassOb(self, opName, modulePath):
+ '''given operation name, module path,
+ return input class object'''
+
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+
+ else:
+ #find all message classes: has 'typecode', type(obtemp)==ClassType
+ allmsOb=self.path2messageClassOb(modulePath)
+ #find input message class of given operation: typecode has pname=operation name
+ for ms in allmsOb:
+ pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+ if opName==str(pnameOb):
+ inputClass=ms
+ break
+
+ return inputClass
+
+ def opname2outputClassOb(self, opName, modulePath):
+ '''given operation name, module path,
+ return output class object'''
+
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+
+ else:
+ #find all message classes: has 'typecode', type(obtemp)==ClassType
+ allmsOb=self.path2messageClassOb(modulePath)
+
+ #find output message class of given operation: typecode has pname=operation name+'Response'
+ for ms in allmsOb:
+ pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+ if opName+'Response'==str(pnameOb):
+ outputClass=ms
+ break
+
+ return outputClass
+
+ def opname2outputs(self, opName, modulePath):
+ '''given operation name, module path,
+ return a list of output nemes of the operation in the module'''
+
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+
+ else:
+ #get input class object
+ outputClass=self.opname2outputClassOb(opName, modulePath)
+ #find input parameters from message class : instrospect an instace
+ msinstance=outputClass()
+
+ parameters={}
+ mshandler=MessageHandler()
+ parameters=mshandler.msParser(msinstance)
+
+ return parameters
+
+ def opname2inputs(self, opName, modulePath):
+ '''given operation name, module path,
+ return a list of all inputs name of the operation in the given module'''
+
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+ else:
+ #get input class object
+ inputClass=self.opname2inputClassOb(opName, modulePath)
+
+ parameters={}
+ mshandler=MessageHandler()
+ parameters=mshandler.msParser(inputClass()) #mshandler.flatten(inputClass())
+
+ print 'The parametrrs after flattening : ',parameters
+
+ ofwhat=getattr(getattr(inputClass, 'typecode'), 'ofwhat')
+ paramtypes={}
+ i=0
+ for k in parameters.keys():
+ paramtypes[k]=str(ofwhat[i])
+ i=i+1
+ for l in paramtypes.keys():
+ print "paramters",l
+ origPar=paramtypes[l]
+ copyPar=paramtypes[l]
+ #print copyPar#[-23:-1]
+ newPar=origPar.replace(copyPar[-23:-1],'').strip('<>')
+ paramtypes[l]=newPar
+
+
+
+# print ofwhat
+## for p in ofwhat:
+## if isinstance(p, ZSI.TC.ComplexType):
+## print 'complextype', p
+## elif isinstance(p, ZSI.TC.Array) :
+## print 'arraytype', p
+## elif isinstance(p,ZSI.TC.String):
+## print 'String',p
+## elif isinstance(p,ZSI.TC.Integer):
+## print 'Integer',p
+## else:
+## parameters[getattr(p, 'aname')]=None
+##
+ #print parameters
+ return parameters
+ #return paramtypes
+ #find input parameters from message class : instrospect an instace
+# msinstance=inputClass()u can
+## print dir(msinstance)
+# parameters=[]
+# for i in dir(msinstance):
+## print i, type(getattr(msinstance, i))
+# if (type(getattr(msinstance, i)) is NoneType) and i!='__doc__':
+# parameters.append(i)
+## print parameters
+# return parameters
+
+ def path2service(self, modulePath):
+ '''given module path,
+ return return service instance
+ instead of: dbfetchSrv = WSDBFetchServerLegacyServiceLocator().getWSDBFetchServerLegacy()'''
+
+ allclass=self.path2Class(modulePath)
+
+ locator=''
+ for c in allclass.keys():
+ if c[len(c)-7:len(c)]=='Locator':
+ locator=c
+
+ locatorClassOb=allclass[locator]
+ for obname in dir(locatorClassOb):
+ obtemp=getattr(locatorClassOb, obname)
+ if (type(obtemp) is MethodType)and not obtemp.__name__.endswith('Address'):
+ serverMethod=obtemp
+ break
+ # Create a service interface
+ service=serverMethod(locatorClassOb())
+ return service
+
+ def invokeOp(self, opName, modulePath, inputs):
+ allopNames=self.path2Ops(modulePath)
+ if opName not in allopNames:
+ raise NameError, 'Warning: No operation has the given name!!'
+ else:
+ # Create a service interface
+ serviceInstance=self.path2service(modulePath)
+
+ #get input class object of given opName
+ inputClass=self.opname2inputClassOb(opName, modulePath)
+
+ mshandler=MessageHandler()
+ if len(inputs) != 0:
+ inputClassInstance=mshandler.msAssign(inputClass(), inputs)
+ else:
+ inputClassInstance= inputClass()
+ #get input name list of given opName
+# inputNames=self.opname2inputs(opName, modulePath)
+
+ #set value for inputs
+ #request._query = 'UNIPROT:ADH1A_HUMAN'
+ #request._format = 'fasta'
+# #request._style = 'raw'
+# if inputNames!= None:
+# for inName in inputs.keys():
+# if inName not in inputNames:
+# raise TypeError, 'the input name is wrong!!!!'
+# #return None
+# else:
+# setattr(inputClassInstance, inName, inputs[inName])
+
+
+ #get dictionary of operation name:object(def)
+ opDict=self.path2Ops(modulePath)
+
+ #get operation object(def)
+ opOb=opDict[opName]
+
+ #invoke operation: response = dbfetchSrv.fetchData(request)
+ responseInstance=opOb(serviceInstance, inputClassInstance)
+
+ #get output from outputmessage: result = response._fetchDataReturn
+ resultDict={}
+ resultDict=mshandler.flatten(responseInstance) #mshandler.msParser(responseInstance)
+ flat = nested2flatDict(resultDict)
+# outputNames=self.opname2outputs(opName, modulePath)
+# for out in outputNames:
+# resultDict[out]=getattr(responseInstance, out)
+
+ return flat#resultDict
+ #return responseInstance
+
+#testing this module
+if __name__=="__main__":
+ test=ClientCreator()
+
+ #picr web service
+# print 'all operations of picr: \n', test.path2Ops('picr.AccessionMapperService_client').keys()
+# print 'inputs of picr \n', test.opname2inputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+# print 'outputs of picr \n', test.opname2outputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+
+
+ seq = """>Q8E5Q5_STRA3
+MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+SIIGYSYLWIYGGDILKNFLN"""
+# inp = {'_content': [{'_type': 'sequence', '_content': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}, {'_type': 'sequence', '_content': 'MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI'}], '_params': {'_database': 'swissprot', '_email': 'chaitanya@gmail.com', '_program': 'blastp'}}
+ inp = {'_parameters': {'_stype': 'protein', '_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI','_database':{ '_string' : ['uniprotkb','uniprotkb_swissprot']}, '_program': 'blastp'}, '_email': 'chaitanya@gmail.com'}
+ inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}]}
+# inputDict = {}
+ inputs ={'_jobId':'wublast-S20110517-051830-0552-49531676-oy','_type':'out'}
+ inp = {}
+ #print test.invokeOp('run', 'wublast.wublast_services', inp)
+ print test.invokeOp('getParameters', 'wublast.wublast_services', inp)
+ #print test.opname2inputs('getResult','wublast.wublast_services')
+# print 'all operations: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+# print 'inputs of runWUBlast \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+# print 'outputs of runWUBlast \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+
+
+# modul=test.path2Module('ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print dir(modul)
+# print 'all operations: \n', test.path2Ops('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print 'all classes:\n', test.path2Class('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'service instance ob:\n', test.path2service('ebiDbfetch.WSDBFetchServerLegacyService_services')
+# print 'outputs of fetchData:\n', test.opname2outputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+# print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_services').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+#dbfetch.WSDBFetchServerLegacyService_client
+# print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+# print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+# inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+# print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict).values()[0]
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorTest.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorTest.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,40 @@
+from creatorEngineComplex import *
+from wsdl2path import *
+
+
+if __name__=="__main__":
+# filename='testforrindex.py'
+# print filename[0:filename.rindex('.py')]
+
+ test1=wsdlLoader()
+ print 'stub file path generated by wsdl2py: \n', test1.wsdlUrl2path('http://webservices.daehosting.com/services/TemperatureConversions.wso?WSDL', 'Temp')
+
+## print 'stub file path generated by wsdl2py: \n', test1.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl', 'dbfetch')
+ # print 'stub file path generated by wsdl2py: \n', test1.wsdlFile2path('../wsdl/WSDbfetch.wsdl', 'dbfetch')
+
+ test=ClientCreator()
+
+## print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+## print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+## inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+## print 'invoke the fetchData operation of web service and return: \n',test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict)
+ print 'all operations: \n', test.path2Ops('Temp.TemperatureConversions_client').keys()
+ print 'inputs of fetchData:\n', test.opname2inputs('WindChillInCelcius', 'Temp.TemperatureConversions_client')
+ inputDict={'_nWindSpeed': 90, '_nCelcius': 40}
+ print 'invoke the fetchData operation of web service and return: \n',
+ result=test.invokeOp('WindChillInCelcius', 'Temp.TemperatureConversions_client', inputDict)
+ for r in result:
+ print r,':',result[r]
+##
+# print 'all operations of wublast: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+# print 'inputs of runWUBlast operation \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+# print 'outputs of runWUBlast operation \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+#
+# seq = """>Q8E5Q5_STRA3
+# MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+# VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+# MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+# SIIGYSYLWIYGGDILKNFLN"""
+# inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':seq}]}
+# print 'invoke runWUBlast operation and return: \n', test.invokeOp('runWUBlast', 'blast.WSWUBlast_client', inputDict)
+
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,120 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+import sys, os, imp
+#import buildin types
+from types import *
+import os
+import sys
+import warnings
+
+__author__="Rui Wang"
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+class Introspector:
+ '''introspect module,
+ to import module,
+ to find classes in the module,
+ '''
+ #os.chdir('/home/tuxdistro/galaxy_dist/webservice')
+ def path2Module(self, modulePath):
+ '''given modulePath=package.module, return module object'''
+
+ #dynamic import module, e.g.'ebiDbfetch.WSDBFetchServerLegacyService_services'
+ path=modulePath
+ #print 'ModulePath:',path
+ #path='/home/tuxdistro/galaxy_dist/webservice/'+modulePath
+ #print os.getcwd()
+ #print dir()
+ print 'the path is : ',path #added
+ moduRoot=__import__(path)
+ components = path.split('.')
+ modu=getattr(moduRoot,components[-1])
+ #list all object in the module file
+# allOB=dir(modu)
+# print "all objects in module: "
+# print allOB
+# print dir(moduRoot)
+# print moduRoot
+ return modu
+
+
+ def path2Class(self, modulePath):
+ '''given module path, return dict of all class name:object'''
+ modu=self.path2Module(modulePath)
+# print 'module====', modu
+# modu=self.loadModule(modulePath)
+ #list all object in the service file
+ allOB=dir(modu)
+# print allOB
+ #find classes type(obtemp)==ClassType
+ allclass={}
+ for ob in allOB:
+ obtemp=getattr(modu, ob)
+ #print obtemp, "----", type(obtemp).__name__
+ if type(obtemp) is ClassType:
+ allclass[obtemp.__name__]=obtemp
+
+ return allclass
+
+ def loadModule(self, name):
+ """
+ Load a module given by name.
+ name -- The fully qualified name of a module
+ """
+ modNames = name.split('.');
+ module = None;
+# currDir = [self.baseDir];
+ idx = sys.argv[0].rindex(os.path.sep);
+ path = str(sys.argv[0])[0:idx]
+ currDir = [path];
+
+ name = None;
+ for mod in modNames:
+ if name :
+ name += '.' + mod;
+ else :
+ name = mod;
+ fp, path, desc = imp.find_module(mod, currDir);
+ try :
+ #define the module
+ module = self.__lm(name, fp, path, desc);
+
+ #If the attr doesn't exist this is the last module to load
+ if hasattr(module, '__path__') :
+ currDir = module.__path__;
+ finally :
+ if fp:
+ fp.close();
+ return module;
+
+ def __lm(self, name, openfp, path, descTuple):
+ if descTuple[2] == imp.PKG_DIRECTORY :
+ #define package
+ package = imp.load_module(name, openfp, path, descTuple);
+ #load the __init__ module to make changes
+ initfp, initpath, initdesc = imp.find_module('__init__', [path]);
+ try :
+ imp.load_module(name + ".__init__", initfp, initpath, initdesc);
+ finally :
+ if initfp :
+ initfp.close();
+ #return the package
+ return package;
+ else :
+ return imp.load_module(name, openfp, path, descTuple);
+
+
+
+#testing this module
+if __name__=="__main__":
+ test=Introspector()
+ print test.path2Module('blast.WSWUBlast_server')
+# print test.loadModule('blast.WSWUBlast_client')
+# test.path2Module('wublastTest')
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,120 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+import sys, os, imp
+#import buildin types
+from types import *
+import os
+import sys
+import warnings
+
+__author__="Rui Wang"
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+class Introspector:
+ '''introspect module,
+ to import module,
+ to find classes in the module,
+ '''
+ #os.chdir('/home/tuxdistro/galaxy_dist/webservice')
+ def path2Module(self, modulePath):
+ '''given modulePath=package.module, return module object'''
+
+ #dynamic import module, e.g.'ebiDbfetch.WSDBFetchServerLegacyService_services'
+ path=modulePath
+ #print 'ModulePath:',path
+ #path='/home/tuxdistro/galaxy_dist/webservice/'+modulePath
+ #print os.getcwd()
+ #print dir()
+ print 'the path is : ',path #added
+ moduRoot=__import__(path)
+ components = path.split('.')
+ modu=getattr(moduRoot,components[-1])
+ #list all object in the module file
+# allOB=dir(modu)
+# print "all objects in module: "
+# print allOB
+# print dir(moduRoot)
+# print moduRoot
+ return modu
+
+
+ def path2Class(self, modulePath):
+ '''given module path, return dict of all class name:object'''
+ modu=self.path2Module(modulePath)
+# print 'module====', modu
+# modu=self.loadModule(modulePath)
+ #list all object in the service file
+ allOB=dir(modu)
+# print allOB
+ #find classes type(obtemp)==ClassType
+ allclass={}
+ for ob in allOB:
+ obtemp=getattr(modu, ob)
+ #print obtemp, "----", type(obtemp).__name__
+ if type(obtemp) is ClassType:
+ allclass[obtemp.__name__]=obtemp
+
+ return allclass
+
+ def loadModule(self, name):
+ """
+ Load a module given by name.
+ name -- The fully qualified name of a module
+ """
+ modNames = name.split('.');
+ module = None;
+# currDir = [self.baseDir];
+ idx = sys.argv[0].rindex(os.path.sep);
+ path = str(sys.argv[0])[0:idx]
+ currDir = [path];
+
+ name = None;
+ for mod in modNames:
+ if name :
+ name += '.' + mod;
+ else :
+ name = mod;
+ fp, path, desc = imp.find_module(mod, currDir);
+ try :
+ #define the module
+ module = self.__lm(name, fp, path, desc);
+
+ #If the attr doesn't exist this is the last module to load
+ if hasattr(module, '__path__') :
+ currDir = module.__path__;
+ finally :
+ if fp:
+ fp.close();
+ return module;
+
+ def __lm(self, name, openfp, path, descTuple):
+ if descTuple[2] == imp.PKG_DIRECTORY :
+ #define package
+ package = imp.load_module(name, openfp, path, descTuple);
+ #load the __init__ module to make changes
+ initfp, initpath, initdesc = imp.find_module('__init__', [path]);
+ try :
+ imp.load_module(name + ".__init__", initfp, initpath, initdesc);
+ finally :
+ if initfp :
+ initfp.close();
+ #return the package
+ return package;
+ else :
+ return imp.load_module(name, openfp, path, descTuple);
+
+
+
+#testing this module
+if __name__=="__main__":
+ test=Introspector()
+ print test.path2Module('blast.WSWUBlast_server')
+# print test.loadModule('blast.WSWUBlast_client')
+# test.path2Module('wublastTest')
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,199 @@
+##################################################
+# PhylipService_services.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class PhylipServiceLocator:
+ Phylip_address = "http://pathport.bioinformatics.vt.edu:6565/axis/services/phylip"
+ def getPhylipAddress(self):
+ return PhylipServiceLocator.Phylip_address
+ def getPhylip(self, url=None, **kw):
+ return phylipSoapBindingSOAP(url or PhylipServiceLocator.Phylip_address, **kw)
+
+# Methods
+class phylipSoapBindingSOAP:
+ def __init__(self, url, **kw):
+ kw.setdefault("readerclass", None)
+ kw.setdefault("writerclass", None)
+ # no resource properties
+ self.binding = client.Binding(url=url, **kw)
+ # no ws-addressing
+
+ # op: protpars
+ def protpars(self, request):
+ if isinstance(request, protparsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=protparsResponse.typecode.ofwhat, pyclass=protparsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: dnapars
+ def dnapars(self, request):
+ if isinstance(request, dnaparsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=dnaparsResponse.typecode.ofwhat, pyclass=dnaparsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: codeml
+ def codeml(self, request):
+ if isinstance(request, codemlRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=codemlResponse.typecode.ofwhat, pyclass=codemlResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: dnaml
+ def dnaml(self, request):
+ if isinstance(request, dnamlRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=dnamlResponse.typecode.ofwhat, pyclass=dnamlResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: aboutService
+ def aboutService(self, request):
+ if isinstance(request, aboutServiceRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=aboutServiceResponse.typecode.ofwhat, pyclass=aboutServiceResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: aboutOperations
+ def aboutOperations(self, request):
+ if isinstance(request, aboutOperationsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=aboutOperationsResponse.typecode.ofwhat, pyclass=aboutOperationsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: acknowledge
+ def acknowledge(self, request):
+ if isinstance(request, acknowledgeRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=acknowledgeResponse.typecode.ofwhat, pyclass=acknowledgeResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+class protparsRequest:
+ def __init__(self):
+ self._in0 = None
+ self._in1 = None
+ return
+protparsRequest.typecode = Struct(pname=("urn:phylip","protpars"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=protparsRequest, encoded="urn:phylip")
+
+class protparsResponse:
+ def __init__(self):
+ self._protparsReturn = None
+ return
+protparsResponse.typecode = Struct(pname=("urn:phylip","protparsResponse"), ofwhat=[ZSI.TC.String(pname="protparsReturn", aname="_protparsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=protparsResponse, encoded="urn:phylip")
+
+class dnaparsRequest:
+ def __init__(self):
+ self._in0 = None
+ self._in1 = None
+ return
+dnaparsRequest.typecode = Struct(pname=("urn:phylip","dnapars"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnaparsRequest, encoded="urn:phylip")
+
+class dnaparsResponse:
+ def __init__(self):
+ self._dnaparsReturn = None
+ return
+dnaparsResponse.typecode = Struct(pname=("urn:phylip","dnaparsResponse"), ofwhat=[ZSI.TC.String(pname="dnaparsReturn", aname="_dnaparsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnaparsResponse, encoded="urn:phylip")
+
+class codemlRequest:
+ def __init__(self):
+ self._in0 = None
+ self._in1 = None
+ return
+codemlRequest.typecode = Struct(pname=("urn:phylip","codeml"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=codemlRequest, encoded="urn:phylip")
+
+class codemlResponse:
+ def __init__(self):
+ self._codemlReturn = None
+ return
+codemlResponse.typecode = Struct(pname=("urn:phylip","codemlResponse"), ofwhat=[ZSI.TC.String(pname="codemlReturn", aname="_codemlReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=codemlResponse, encoded="urn:phylip")
+
+class dnamlRequest:
+ def __init__(self):
+ self._in0 = None
+ self._in1 = None
+ return
+dnamlRequest.typecode = Struct(pname=("urn:phylip","dnaml"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnamlRequest, encoded="urn:phylip")
+
+class dnamlResponse:
+ def __init__(self):
+ self._dnamlReturn = None
+ return
+dnamlResponse.typecode = Struct(pname=("urn:phylip","dnamlResponse"), ofwhat=[ZSI.TC.String(pname="dnamlReturn", aname="_dnamlReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnamlResponse, encoded="urn:phylip")
+
+class aboutServiceRequest:
+ def __init__(self):
+ return
+aboutServiceRequest.typecode = Struct(pname=("urn:phylip","aboutService"), ofwhat=[], pyclass=aboutServiceRequest, encoded="urn:phylip")
+
+class aboutServiceResponse:
+ def __init__(self):
+ self._aboutServiceReturn = None
+ return
+aboutServiceResponse.typecode = Struct(pname=("urn:phylip","aboutServiceResponse"), ofwhat=[ZSI.TC.String(pname="aboutServiceReturn", aname="_aboutServiceReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=aboutServiceResponse, encoded="urn:phylip")
+
+class aboutOperationsRequest:
+ def __init__(self):
+ return
+aboutOperationsRequest.typecode = Struct(pname=("urn:phylip","aboutOperations"), ofwhat=[], pyclass=aboutOperationsRequest, encoded="urn:phylip")
+
+class aboutOperationsResponse:
+ def __init__(self):
+ self._aboutOperationsReturn = None
+ return
+aboutOperationsResponse.typecode = Struct(pname=("urn:phylip","aboutOperationsResponse"), ofwhat=[ZSI.TC.String(pname="aboutOperationsReturn", aname="_aboutOperationsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=aboutOperationsResponse, encoded="urn:phylip")
+
+class acknowledgeRequest:
+ def __init__(self):
+ self._in0 = None
+ self._in1 = None
+ return
+acknowledgeRequest.typecode = Struct(pname=("urn:phylip","acknowledge"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=acknowledgeRequest, encoded="urn:phylip")
+
+class acknowledgeResponse:
+ def __init__(self):
+ self._acknowledgeReturn = None
+ return
+acknowledgeResponse.typecode = Struct(pname=("urn:phylip","acknowledgeResponse"), ofwhat=[ZSI.TC.String(pname="acknowledgeReturn", aname="_acknowledgeReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=acknowledgeResponse, encoded="urn:phylip")
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services_types.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services_types.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,9 @@
+##################################################
+# PhylipService_services_types.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/__init__.py
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,380 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+
+import ZSI.TC
+import copy
+
+__author__="Rui Wang, Chaitanya Guttula"
+
+class MessageHandler:
+ '''handle message class'''
+
+ def msAssign(self, msInstance, nameValueDic):
+ '''given message class instance, _name:value tree structure dictionary,
+ assign the values to the correct leaves in the message tree,
+ return message class instance with values'''
+
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+ #_name of part of message
+ partName=getattr(part, 'aname')
+ if partName not in nameValueDic.keys():
+ continue
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+ partValue=nameValueDic[partName]
+ if isinstance(part, ZSI.TC.ComplexType):
+ complextypeHolderClassInstance=self.complextypeAssign(part, partValue)
+ setattr(msInstance, partName, complextypeHolderClassInstance)
+ elif isinstance(part, ZSI.TC.Array) :
+ subArray=self.arraytypeAssign(part, partValue)
+ setattr(msInstance, partName, subArray)
+ print 'the arraay type is : ',subArray
+ else:
+ #simple type such as string...directly assign the value to the part
+ setattr(msInstance, partName, partValue)
+ return msInstance
+
+ def complextypeAssign(self, complextypeInstance, subNameValueDic):
+ '''given complex type instance, subtree of _name:value dictionary
+ traverse the tree structure recursively,
+ return top complextype holder class instance with values filled in'''
+
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+ for ele in elementList:
+
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ if eleName not in subNameValueDic.keys():
+ continue
+
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+ eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+ subclomplextypeClassInstance=self.complextypeAssign(ele, eleValue)
+ setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(ele, ZSI.TC.Array) :
+ subArray=self.arraytypeAssign(ele, eleValue)
+ setattr(complextypeHolderClassInstance, eleName, subArray)
+ else:
+
+ #simple type such as string...directly assign the value to the element
+ setattr(complextypeHolderClassInstance, eleName, eleValue)
+
+ return complextypeHolderClassInstance
+
+ def arraytypeAssign(self,arraytypeInstance, subValueArray):
+ '''given arraytype class instance, [values...],
+ recursively handle values,
+ return [arraytypeInstance filled with values]'''
+
+
+ if not isinstance(arraytypeInstance, ZSI.TC.Array):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ resultArray=[]
+ if subValueArray is None:
+ return None
+ if subValueArray is []:
+ return []
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ for eleValue in subValueArray:
+ subclomplextypeClassInstance=self.complextypeAssign(copy.deepcopy(elementInstance), eleValue)
+ resultArray.append(subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+ for eleValue in subValueArray:
+ subArray=self.arraytypeAssign(copy.deepcopy(elementInstance), eleValue)
+ resultArray.append(subArray)
+
+ else:
+
+ #simple type such as string...directly return the [value,...]
+ resultArray=subValueArray
+
+ return resultArray
+
+ def msParser(self, msInstance):
+ '''given message class instance,
+ parse the message class tree,
+ return message tree of _name:value dictionary'''
+
+ nameValueDic={}
+
+
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+
+ #_name of part of message
+ partName=getattr(part, 'aname')
+ partValueDefault=getattr(msInstance, partName)
+
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# partValue=nameValueDic[partName]
+# nameValueDic[partName]=None
+ if isinstance(part, ZSI.TC.ComplexType):
+ nameValueDic[partName]=self.complextypeParser(part)
+ elif isinstance(part, ZSI.TC.Array) :
+ nameValueDic[partName]=self.arraytypeParser(part, partValueDefault)
+ else:
+ #simple type such as string...directly retrieve the value of the part
+ nameValueDic[partName]=partValueDefault
+ return nameValueDic
+
+ def complextypeParser(self, complextypeInstance):
+ '''given complex type class instance,
+ traverse the tree structure recursively,
+ return subtree of _name:value dictionary'''
+
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ subNameValueDic={}
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+ for ele in elementList:
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ eleValueDefault=getattr(complextypeHolderClassInstance,eleName)
+ print eleName
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+ if(getattr(ele,'maxOccurs')=='unbounded'): # Handling element with maxOccurances as unbounded and type as complextype
+ print 'arraytype',eleName
+ tempArray=[]
+ sub = self.complextypeParser(ele)
+ tempArray.append(sub)
+ print 'array is : ',tempArray
+ subNameValueDic[eleName]=tempArray #tempArray.append(sub)#self.arraytypeParser(ele, eleValueDefault)
+ else:
+ print 'complextype', eleName
+ subNameValueDic[eleName]=self.complextypeParser(ele)
+ elif isinstance(ele, ZSI.TC.Array):
+ print 'arraytype', eleValueDefault
+ subNameValueDic[eleName]=self.arraytypeParser(ele, eleValueDefault)
+ else:
+ subNameValueDic[eleName] = eleValueDefault
+
+ return subNameValueDic
+
+
+ def arraytypeParser(self,arraytypeInstance, defaultValueArray):
+ '''given arraytype class instance, and its default value [defaultvalues...]
+ if element of array is not simple type then recursively handle traverse the type tree,
+ return [values...]
+ else return defaultValueArray[defaultvalues...]'''
+
+
+ if (not isinstance(arraytypeInstance, ZSI.TC.Array)): #or (getattr(arraytypeInstance,'maxOccurs')!='unbounded') :
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ subValueArray=[]
+
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ if defaultValueArray is None:
+ subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+ subValueArray.append(subclomplextypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ subclomplextypeClassInstance=self.complextypeParser(eleValue)
+ subValueArray.append(subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+ if defaultValueArray is None:
+ subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+ subValueArray.append(subarraytypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+ subValueArray.append(subArray)
+
+ else:
+ #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
+ subValueArray=defaultValueArray
+
+ return subValueArray
+
+
+ def flatten(self,obj):
+ if obj is None:
+ return None
+ elif hasattr(obj, '__dict__') and obj.__dict__:
+ return dict([(k, self.flatten(v)) for (k, v) in obj.__dict__.items()])
+ if isinstance(obj, (dict,)):
+ return dict([(k, self.flatten(v)) for (k, v) in obj.items()])
+ elif isinstance(obj, (list,)):
+ return [self.flatten(x) for x in obj]
+ elif isinstance(obj, (tuple,)):
+ return tuple([flatten(x) for x in obj])
+ else:
+ return obj
+
+ def getParameter(self, msInstance,param):
+ '''given message class instance, and parameter
+ parse the message class tree,
+ return the element '''
+ nameValueDic={}
+ plist = []
+ if(param.find('|0|')>-1):
+ s = param.split('|0|')
+ print 'found |0|',s
+ for l in s:
+ if(l.find('|')>-1):
+ t = l.split('|')
+ print 'found |',t
+ for i in t:
+ print 'i',i
+ plist.append(i)
+ else:
+ plist.append(l)
+ elif(param.find('|')>-1):
+ plist = param.split('|')
+ else:
+ partlist = getattr(getattr(msInstance , 'typecode'),'ofwhat')
+ for part in partlist:
+ if param == getattr(part,'aname'):
+ print part
+ return part
+
+
+ element = None
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+ #_name of part of message
+ partName=getattr(part, 'aname')
+
+ if(partName == plist[0]):
+
+ partname=getattr(part,'pname')
+ partValueDefault=getattr(msInstance, partName)
+ break
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# partValue=nameValueDic[partName]
+# nameValueDic[partName]=None
+ if isinstance(part, ZSI.TC.ComplexType):
+ print 'complextype', getattr(part,'aname')#plist[-1]
+ sp = ( self.complextypParser(part,plist[-1]))
+ if(sp !=None):
+ element = sp
+
+ elif isinstance(part, ZSI.TC.Array) :
+ element = self.arraytypParser(part, partValueDefault,plist[-1])
+ #nameValueDic[partName]=self.arraytypeParser(part, partValueDefault,param)
+ else:
+ #simple type such as string...directly retrieve the value of the part
+ if(partName == plist[-1]):
+ element = part
+ print 'spart',element
+ res = getattr(element,'nillable')
+ print res
+ return element
+
+ def complextypParser(self, complextypeInstance,param):
+ '''given complex type class instance, and paramater name
+ traverse the tree structure recursively,
+ return the element with parameter name'''
+ part =None
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ subNameValueDic={}
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+
+ for ele in elementList:
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ eleValueDefault=getattr(complextypeHolderClassInstance, eleName)
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+
+ if getattr(ele,'aname') == param:
+ print 'returning the middle complex type'
+ return ele
+ else:
+ part = self.complextypParser(ele,param)
+ return part
+ #subNameValueDic[eleName]=self.complextypeParser(ele)
+# setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(ele, ZSI.TC.Array) :
+ part = self.arraytypParser(ele, eleValueDefault,param)
+ return part
+
+ else:
+ if(param == eleName):
+ print 'matched',param
+ part = (ele)
+ return part
+ #simple type such as string...directly retrieve the value of the element
+ subNameValueDic[eleName]=eleValueDefault
+ return None#subNameValueDic
+
+
+
+ def arraytypParser(self,arraytypeInstance, defaultValueArray,param):
+ '''given arraytype class instance, and its default value [defaultvalues...]
+ if element of array is not simple type then recursively handle traverse the type tree,
+ return [values...]
+ else return defaultValueArray[defaultvalues...]'''
+
+
+ if not isinstance(arraytypeInstance, ZSI.TC.Array):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ subValueArray=[]
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ if defaultValueArray is None:
+ part = self.complextypParser(elementInstance,param)
+ return part
+ # subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+ # subValueArray.append(subclomplextypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ part = self.complextypParser(eleValue,defaulValueArray,param)
+ subclomplextypeClassInstance=self.complextypeParser(eleValue)
+ # subValueArray.append(subclomplextypeClassInstance)
+# setattr(elementInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+# print 'arraytype', elementInstance
+ if defaultValueArray is None:
+ part = self.arraytypParser(elementInstance, None,param)
+ # subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+ # subValueArray.append(subarraytypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ part = self.arraytypParser(copy.deepcopy(elementInstance), eleValue,param)
+ # subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+ # subValueArray.append(subArray)
+
+ else:
+ #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
+ return elementInstance
+ return None
+
+
+
+#if __name__=="__main__":
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,380 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+
+import ZSI.TC
+import copy
+
+__author__="Rui Wang, Chaitanya Guttula"
+
+class MessageHandler:
+ '''handle message class'''
+
+ def msAssign(self, msInstance, nameValueDic):
+ '''given message class instance, _name:value tree structure dictionary,
+ assign the values to the correct leaves in the message tree,
+ return message class instance with values'''
+
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+ #_name of part of message
+ partName=getattr(part, 'aname')
+ if partName not in nameValueDic.keys():
+ continue
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+ partValue=nameValueDic[partName]
+ if isinstance(part, ZSI.TC.ComplexType):
+ complextypeHolderClassInstance=self.complextypeAssign(part, partValue)
+ setattr(msInstance, partName, complextypeHolderClassInstance)
+ elif isinstance(part, ZSI.TC.Array) :
+ subArray=self.arraytypeAssign(part, partValue)
+ setattr(msInstance, partName, subArray)
+ print 'the arraay type is : ',subArray
+ else:
+ #simple type such as string...directly assign the value to the part
+ setattr(msInstance, partName, partValue)
+ return msInstance
+
+ def complextypeAssign(self, complextypeInstance, subNameValueDic):
+ '''given complex type instance, subtree of _name:value dictionary
+ traverse the tree structure recursively,
+ return top complextype holder class instance with values filled in'''
+
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+ for ele in elementList:
+
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ if eleName not in subNameValueDic.keys():
+ continue
+
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+ eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+ subclomplextypeClassInstance=self.complextypeAssign(ele, eleValue)
+ setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(ele, ZSI.TC.Array) :
+ subArray=self.arraytypeAssign(ele, eleValue)
+ setattr(complextypeHolderClassInstance, eleName, subArray)
+ else:
+
+ #simple type such as string...directly assign the value to the element
+ setattr(complextypeHolderClassInstance, eleName, eleValue)
+
+ return complextypeHolderClassInstance
+
+ def arraytypeAssign(self,arraytypeInstance, subValueArray):
+ '''given arraytype class instance, [values...],
+ recursively handle values,
+ return [arraytypeInstance filled with values]'''
+
+
+ if not isinstance(arraytypeInstance, ZSI.TC.Array):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ resultArray=[]
+ if subValueArray is None:
+ return None
+ if subValueArray is []:
+ return []
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ for eleValue in subValueArray:
+ subclomplextypeClassInstance=self.complextypeAssign(copy.deepcopy(elementInstance), eleValue)
+ resultArray.append(subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+ for eleValue in subValueArray:
+ subArray=self.arraytypeAssign(copy.deepcopy(elementInstance), eleValue)
+ resultArray.append(subArray)
+
+ else:
+
+ #simple type such as string...directly return the [value,...]
+ resultArray=subValueArray
+
+ return resultArray
+
+ def msParser(self, msInstance):
+ '''given message class instance,
+ parse the message class tree,
+ return message tree of _name:value dictionary'''
+
+ nameValueDic={}
+
+
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+
+ #_name of part of message
+ partName=getattr(part, 'aname')
+ partValueDefault=getattr(msInstance, partName)
+
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# partValue=nameValueDic[partName]
+# nameValueDic[partName]=None
+ if isinstance(part, ZSI.TC.ComplexType):
+ nameValueDic[partName]=self.complextypeParser(part)
+ elif isinstance(part, ZSI.TC.Array) :
+ nameValueDic[partName]=self.arraytypeParser(part, partValueDefault)
+ else:
+ #simple type such as string...directly retrieve the value of the part
+ nameValueDic[partName]=partValueDefault
+ return nameValueDic
+
+ def complextypeParser(self, complextypeInstance):
+ '''given complex type class instance,
+ traverse the tree structure recursively,
+ return subtree of _name:value dictionary'''
+
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ subNameValueDic={}
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+ for ele in elementList:
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ eleValueDefault=getattr(complextypeHolderClassInstance,eleName)
+ print eleName
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+ if(getattr(ele,'maxOccurs')=='unbounded'): # Handling element with maxOccurances as unbounded and type as complextype
+ print 'arraytype',eleName
+ tempArray=[]
+ sub = self.complextypeParser(ele)
+ tempArray.append(sub)
+ print 'array is : ',tempArray
+ subNameValueDic[eleName]=tempArray #tempArray.append(sub)#self.arraytypeParser(ele, eleValueDefault)
+ else:
+ print 'complextype', eleName
+ subNameValueDic[eleName]=self.complextypeParser(ele)
+ elif isinstance(ele, ZSI.TC.Array):
+ print 'arraytype', eleValueDefault
+ subNameValueDic[eleName]=self.arraytypeParser(ele, eleValueDefault)
+ else:
+ subNameValueDic[eleName] = eleValueDefault
+
+ return subNameValueDic
+
+
+ def arraytypeParser(self,arraytypeInstance, defaultValueArray):
+ '''given arraytype class instance, and its default value [defaultvalues...]
+ if element of array is not simple type then recursively handle traverse the type tree,
+ return [values...]
+ else return defaultValueArray[defaultvalues...]'''
+
+
+ if (not isinstance(arraytypeInstance, ZSI.TC.Array)): #or (getattr(arraytypeInstance,'maxOccurs')!='unbounded') :
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ subValueArray=[]
+
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ if defaultValueArray is None:
+ subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+ subValueArray.append(subclomplextypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ subclomplextypeClassInstance=self.complextypeParser(eleValue)
+ subValueArray.append(subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+ if defaultValueArray is None:
+ subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+ subValueArray.append(subarraytypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+ subValueArray.append(subArray)
+
+ else:
+ #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
+ subValueArray=defaultValueArray
+
+ return subValueArray
+
+
+ def flatten(self,obj):
+ if obj is None:
+ return None
+ elif hasattr(obj, '__dict__') and obj.__dict__:
+ return dict([(k, self.flatten(v)) for (k, v) in obj.__dict__.items()])
+ if isinstance(obj, (dict,)):
+ return dict([(k, self.flatten(v)) for (k, v) in obj.items()])
+ elif isinstance(obj, (list,)):
+ return [self.flatten(x) for x in obj]
+ elif isinstance(obj, (tuple,)):
+ return tuple([flatten(x) for x in obj])
+ else:
+ return obj
+
+ def getParameter(self, msInstance,param):
+ '''given message class instance, and parameter
+ parse the message class tree,
+ return the element '''
+ nameValueDic={}
+ plist = []
+ if(param.find('|0|')>-1):
+ s = param.split('|0|')
+ print 'found |0|',s
+ for l in s:
+ if(l.find('|')>-1):
+ t = l.split('|')
+ print 'found |',t
+ for i in t:
+ print 'i',i
+ plist.append(i)
+ else:
+ plist.append(l)
+ elif(param.find('|')>-1):
+ plist = param.split('|')
+ else:
+ partlist = getattr(getattr(msInstance , 'typecode'),'ofwhat')
+ for part in partlist:
+ if param == getattr(part,'aname'):
+ print part
+ return part
+
+
+ element = None
+ #get the list of all parts of message
+ partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+ for part in partList:
+ #_name of part of message
+ partName=getattr(part, 'aname')
+
+ if(partName == plist[0]):
+
+ partname=getattr(part,'pname')
+ partValueDefault=getattr(msInstance, partName)
+ break
+ #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# partValue=nameValueDic[partName]
+# nameValueDic[partName]=None
+ if isinstance(part, ZSI.TC.ComplexType):
+ print 'complextype', getattr(part,'aname')#plist[-1]
+ sp = ( self.complextypParser(part,plist[-1]))
+ if(sp !=None):
+ element = sp
+
+ elif isinstance(part, ZSI.TC.Array) :
+ element = self.arraytypParser(part, partValueDefault,plist[-1])
+ #nameValueDic[partName]=self.arraytypeParser(part, partValueDefault,param)
+ else:
+ #simple type such as string...directly retrieve the value of the part
+ if(partName == plist[-1]):
+ element = part
+ print 'spart',element
+ res = getattr(element,'nillable')
+ print res
+ return element
+
+ def complextypParser(self, complextypeInstance,param):
+ '''given complex type class instance, and paramater name
+ traverse the tree structure recursively,
+ return the element with parameter name'''
+ part =None
+ if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+ else:
+ subNameValueDic={}
+ complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+ #element instance list of complex type
+ elementList=getattr(complextypeInstance, 'ofwhat')
+
+ for ele in elementList:
+ #_name of element of complex type
+ eleName=getattr(ele, 'aname')
+ eleValueDefault=getattr(complextypeHolderClassInstance, eleName)
+ #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+# eleValue=subNameValueDic[eleName]
+ if isinstance(ele, ZSI.TC.ComplexType):
+
+ if getattr(ele,'aname') == param:
+ print 'returning the middle complex type'
+ return ele
+ else:
+ part = self.complextypParser(ele,param)
+ return part
+ #subNameValueDic[eleName]=self.complextypeParser(ele)
+# setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(ele, ZSI.TC.Array) :
+ part = self.arraytypParser(ele, eleValueDefault,param)
+ return part
+
+ else:
+ if(param == eleName):
+ print 'matched',param
+ part = (ele)
+ return part
+ #simple type such as string...directly retrieve the value of the element
+ subNameValueDic[eleName]=eleValueDefault
+ return None#subNameValueDic
+
+
+
+ def arraytypParser(self,arraytypeInstance, defaultValueArray,param):
+ '''given arraytype class instance, and its default value [defaultvalues...]
+ if element of array is not simple type then recursively handle traverse the type tree,
+ return [values...]
+ else return defaultValueArray[defaultvalues...]'''
+
+
+ if not isinstance(arraytypeInstance, ZSI.TC.Array):
+ raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+ else:
+ subValueArray=[]
+
+ #element instance of array type
+ elementInstance=getattr(arraytypeInstance, 'ofwhat')
+ if isinstance(elementInstance, ZSI.TC.ComplexType):
+ if defaultValueArray is None:
+ part = self.complextypParser(elementInstance,param)
+ return part
+ # subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+ # subValueArray.append(subclomplextypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ part = self.complextypParser(eleValue,defaulValueArray,param)
+ subclomplextypeClassInstance=self.complextypeParser(eleValue)
+ # subValueArray.append(subclomplextypeClassInstance)
+# setattr(elementInstance, eleName, subclomplextypeClassInstance)
+ elif isinstance(elementInstance, ZSI.TC.Array) :
+# print 'arraytype', elementInstance
+ if defaultValueArray is None:
+ part = self.arraytypParser(elementInstance, None,param)
+ # subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+ # subValueArray.append(subarraytypeClassInstance)
+ else:
+ for eleValue in defaultValueArray:
+ part = self.arraytypParser(copy.deepcopy(elementInstance), eleValue,param)
+ # subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+ # subValueArray.append(subArray)
+
+ else:
+ #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
+ return elementInstance
+ return None
+
+
+
+#if __name__=="__main__":
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,198 @@
+'''
+@author Rui Wnag, Chaitanya Guttula
+@see LICENSE (MIT style license file).
+'''
+
+'''
+converter galaxy parameter <-----> user input dictionary for web service
+'|' is the seperator, if the real name contains it, it will cause wrong result in this converter
+'''
+from types import *
+#from galaxy.tools.parameters.basic import *
+
+__author__="Rui Wang"
+
+def nested2flatDict(nestedDic):
+ '''
+ nestedDic is dictionary e.g.{a:{a1:None, a2:None}, b:None, c:[{c1:None, c2:None},{c1:None, c2:None}]},
+ converter it into flatDict e.g.
+ {a|a1:TextToolParameter(), a|a2:TextToolParameter(), b:TextToolParameter(),
+ c|1|c1:TextToolParameter(),c|1|c2:TextToolParameter(), c|2|c1:TextToolParameter(),c|2|c2:TextToolParameter()}
+ seperator is |, not /
+ '''
+ if nestedDic is None or len(nestedDic) == 0:
+ return {};
+ flatDic={}
+
+ for key, value in nestedDic.iteritems():
+ if type(value) is DictType:
+ dicRecur(key, value, flatDic);
+ elif type(value) is ListType:
+ listRecur(key, value, flatDic);
+ elif value is None:
+ flatDic[key]=None#TextToolParameter(None, XML( ' ' ) )
+ else:
+ flatDic[key]=str(value)
+ return flatDic
+
+def dicRecur(prefix, dic, flatDic):
+ '''
+ '''
+ if dic is None or len(dic) == 0:
+ raise ValueError, 'dic is empty'
+ i=0;
+ for key, value in dic.items():
+ if type(value) is DictType:
+ #print key
+ dicRecur(prefix+"|"+key, value, flatDic);
+ elif type(value) is ListType:
+ listRecur(prefix+"|"+key, value, flatDic);
+ elif value is None:
+ #print 'key',key
+ #if (key.find('$')>-1):
+ # vlist = key.split('$')
+ # key = ''.join(vlist)
+
+ #print 'key',key
+ # flatDic[prefix+"|_"+str(i)+"|"+key]=None
+ # i=i+1
+ #else:
+ flatDic[prefix+"|"+key]=None#TextToolParameter(None, XML( ' ' ) )
+ else:
+ #print prefix
+ #if (key.find('$')>-1):
+ # vlist = key.split('$')
+ # key = ''.join(vlist)
+
+ # print 'key',key
+ # flatDic[prefix+"|_"+str(i)+"|"+key]=None
+ # i=i+1
+ #else:
+ flatDic[prefix+"|"+key]=str(value)
+
+def listRecur(prefix, list, flatDic):
+ ''''''
+
+ #You are expecting this list to contain a complexType.
+ #When it doesn't you raise a ValueError.
+ #If the list contains a simpletype then we add |$|
+ # when flatenning.
+ if list is None or len(list)==0:
+ flatDic[prefix+'|$|'] = [];
+ return [];
+ i=0
+ for value in list:
+ if type(value) is DictType:
+ #print prefix
+ dicRecur(prefix+"|"+str(i), value, flatDic);
+ #else:#if type(value) is ListType:
+ # if prefix+'|0|' not in flatDic:
+ # flatDic[prefix+'|0|'] = []
+ # flatDic[prefix+'|0|'].append(value)
+ # return ;
+ i += 1;
+
+def flat2nestedDict(flatDic):
+ '''the flatDic has value in it
+ converter it to nested dictionary'''
+ if flatDic is None or flatDic=={}:
+ raise ValueError, 'flatDic is empty'
+ nestedDic = {};
+ for key, value in flatDic.iteritems() :
+ key_arr = key.split('|');
+ print key_arr
+ last_idx = len(key_arr) - 1;
+ sub_dic = nestedDic;
+ if last_idx != 0 :
+ i = 0;
+ # Iterates over the split values of a single key
+ while i < last_idx :
+
+ try :
+ key_int = int(key_arr[i]); # checking if the split value of key is number (true only if it )
+ if key_int >= len(sub_dic) :
+ for j in range(key_int - len(sub_dic) + 1) :
+ sub_dic.append({});
+ sub_dic = sub_dic[key_int];
+
+ except ValueError :
+
+ #If the split value is not present in thhe subdic
+ if key_arr[i] == '$':
+ print '$ is there'#,nestedDic
+ else:
+ if key_arr[i] not in sub_dic :
+ try :
+ key_int = int(key_arr[i + 1]); # Ckecking of the next split value in key is number
+
+ # Executed if the key is or array type key
+ sub_list = [];
+ sub_dic[key_arr[i]] = sub_list;
+ for j in range(key_int + 1) :
+ sub_list.append({});
+ sub_dic = sub_list[key_int];
+ i += 1;
+
+ except ValueError : # 2 consicutive split values in key are not numerical value (i.e not array)
+ if key_arr[last_idx-1] == '$' :
+ if i == last_idx-2 :
+ print 'Found the value',key_arr[i]
+ else:
+ temp = {};
+ sub_dic[key_arr[i]] = temp;
+ sub_dic = temp;
+
+ else:
+ temp = {};
+ sub_dic[key_arr[i]] = temp;
+ sub_dic = temp;
+
+ # If the split value is present in the subdir then create a new subdic with
+ else :
+ sub_dic = nestedDic[key_arr[i]];
+
+ i += 1;
+ if value == '' :
+ value = None;
+ if key_arr[last_idx-1] == '$':
+ templist=[];
+ if value != []:
+ if value.find(',')>-1:
+ vlist = value.split(',')
+ for l in vlist:
+ templist.append(l);
+ else:
+ templist.append(value);
+ sub_dic[key_arr[last_idx-2]] = templist;
+ else:
+ sub_dic[key_arr[last_idx]] = value;
+
+ # If the leaf node is basic array type
+ #if key_arr[last_idx] == '':
+ # sub_dic[key_arr[last_idx-2]].append(value);
+ #else:
+ # sub_dic[key_arr[last_idx]] = value;
+
+ return nestedDic
+
+#testing this module only, before run below test, please comment line 6,30,33,50,53, and uncomment line 29,32,49,52, since they will use other modules of galaxy
+if __name__=="__main__":
+
+# nestedDic={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+ nestedDic={'_params':{ '_program' : 'blastp', '_database' :{'_string':[]}, '_email' :'riververy@yahoo.com', '_async': '', '_test':[{'_name':'chaithu'},{'_name':'srinivas'}]}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+ #flatdic = nested2flatDict(nestedDic)
+ #print flatdic
+ flatDic={'_parameters|_program': 'blastp', '_parameters|_stype': 'protein', '_parameters|_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFIVAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF', '_email': 'chaitanya.g86@gmail.com', '_parameters|_database|_string|$|': 'uniprotkb,swissprot'}
+#{'_params|_email': 'riververy@yahoo.com', '_params|_database': 'swissprot', '_params|_async': '1', '_content|0|_type': 'sequence', '_content|1|_type': 'ss','_params|_program|0|': 'hrllo', '_content|1|_content':'bbbbbbbbbbbbbbbb', '_content|0|_content': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}
+ print flat2nestedDict(flatDic)
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,198 @@
+'''
+@author Rui Wnag, Chaitanya Guttula
+@see LICENSE (MIT style license file).
+'''
+
+'''
+converter galaxy parameter <-----> user input dictionary for web service
+'|' is the seperator, if the real name contains it, it will cause wrong result in this converter
+'''
+from types import *
+#from galaxy.tools.parameters.basic import *
+
+__author__="Rui Wang"
+
+def nested2flatDict(nestedDic):
+ '''
+ nestedDic is dictionary e.g.{a:{a1:None, a2:None}, b:None, c:[{c1:None, c2:None},{c1:None, c2:None}]},
+ converter it into flatDict e.g.
+ {a|a1:TextToolParameter(), a|a2:TextToolParameter(), b:TextToolParameter(),
+ c|1|c1:TextToolParameter(),c|1|c2:TextToolParameter(), c|2|c1:TextToolParameter(),c|2|c2:TextToolParameter()}
+ seperator is |, not /
+ '''
+ if nestedDic is None or len(nestedDic) == 0:
+ return {};
+ flatDic={}
+
+ for key, value in nestedDic.iteritems():
+ if type(value) is DictType:
+ dicRecur(key, value, flatDic);
+ elif type(value) is ListType:
+ listRecur(key, value, flatDic);
+ elif value is None:
+ flatDic[key]=None#TextToolParameter(None, XML( ' ' ) )
+ else:
+ flatDic[key]=str(value)
+ return flatDic
+
+def dicRecur(prefix, dic, flatDic):
+ '''
+ '''
+ if dic is None or len(dic) == 0:
+ raise ValueError, 'dic is empty'
+ i=0;
+ for key, value in dic.items():
+ if type(value) is DictType:
+ #print key
+ dicRecur(prefix+"|"+key, value, flatDic);
+ elif type(value) is ListType:
+ listRecur(prefix+"|"+key, value, flatDic);
+ elif value is None:
+ #print 'key',key
+ #if (key.find('$')>-1):
+ # vlist = key.split('$')
+ # key = ''.join(vlist)
+
+ #print 'key',key
+ # flatDic[prefix+"|_"+str(i)+"|"+key]=None
+ # i=i+1
+ #else:
+ flatDic[prefix+"|"+key]=None#TextToolParameter(None, XML( ' ' ) )
+ else:
+ #print prefix
+ #if (key.find('$')>-1):
+ # vlist = key.split('$')
+ # key = ''.join(vlist)
+
+ # print 'key',key
+ # flatDic[prefix+"|_"+str(i)+"|"+key]=None
+ # i=i+1
+ #else:
+ flatDic[prefix+"|"+key]=str(value)
+
+def listRecur(prefix, list, flatDic):
+ ''''''
+
+ #You are expecting this list to contain a complexType.
+ #When it doesn't you raise a ValueError.
+ #If the list contains a simpletype then we add |$|
+ # when flatenning.
+ if list is None or len(list)==0:
+ flatDic[prefix+'|$|'] = [];
+ return [];
+ i=0
+ for value in list:
+ if type(value) is DictType:
+ #print prefix
+ dicRecur(prefix+"|"+str(i), value, flatDic);
+ #else:#if type(value) is ListType:
+ # if prefix+'|0|' not in flatDic:
+ # flatDic[prefix+'|0|'] = []
+ # flatDic[prefix+'|0|'].append(value)
+ # return ;
+ i += 1;
+
+def flat2nestedDict(flatDic):
+ '''the flatDic has value in it
+ converter it to nested dictionary'''
+ if flatDic is None or flatDic=={}:
+ raise ValueError, 'flatDic is empty'
+ nestedDic = {};
+ for key, value in flatDic.iteritems() :
+ key_arr = key.split('|');
+ print key_arr
+ last_idx = len(key_arr) - 1;
+ sub_dic = nestedDic;
+ if last_idx != 0 :
+ i = 0;
+ # Iterates over the split values of a single key
+ while i < last_idx :
+
+ try :
+ key_int = int(key_arr[i]); # checking if the split value of key is number (true only if it )
+ if key_int >= len(sub_dic) :
+ for j in range(key_int - len(sub_dic) + 1) :
+ sub_dic.append({});
+ sub_dic = sub_dic[key_int];
+
+ except ValueError :
+
+ #If the split value is not present in thhe subdic
+ if key_arr[i] == '$':
+ print '$ is there'#,nestedDic
+ else:
+ if key_arr[i] not in sub_dic :
+ try :
+ key_int = int(key_arr[i + 1]); # Ckecking of the next split value in key is number
+
+ # Executed if the key is or array type key
+ sub_list = [];
+ sub_dic[key_arr[i]] = sub_list;
+ for j in range(key_int + 1) :
+ sub_list.append({});
+ sub_dic = sub_list[key_int];
+ i += 1;
+
+ except ValueError : # 2 consicutive split values in key are not numerical value (i.e not array)
+ if key_arr[last_idx-1] == '$' :
+ if i == last_idx-2 :
+ print 'Found the value',key_arr[i]
+ else:
+ temp = {};
+ sub_dic[key_arr[i]] = temp;
+ sub_dic = temp;
+
+ else:
+ temp = {};
+ sub_dic[key_arr[i]] = temp;
+ sub_dic = temp;
+
+ # If the split value is present in the subdir then create a new subdic with
+ else :
+ sub_dic = nestedDic[key_arr[i]];
+
+ i += 1;
+ if value == '' :
+ value = None;
+ if key_arr[last_idx-1] == '$':
+ templist=[];
+ if value != []:
+ if value.find(',')>-1:
+ vlist = value.split(',')
+ for l in vlist:
+ templist.append(l);
+ else:
+ templist.append(value);
+ sub_dic[key_arr[last_idx-2]] = templist;
+ else:
+ sub_dic[key_arr[last_idx]] = value;
+
+ # If the leaf node is basic array type
+ #if key_arr[last_idx] == '':
+ # sub_dic[key_arr[last_idx-2]].append(value);
+ #else:
+ # sub_dic[key_arr[last_idx]] = value;
+
+ return nestedDic
+
+#testing this module only, before run below test, please comment line 6,30,33,50,53, and uncomment line 29,32,49,52, since they will use other modules of galaxy
+if __name__=="__main__":
+
+# nestedDic={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+ nestedDic={'_params':{ '_program' : 'blastp', '_database' :{'_string':[]}, '_email' :'riververy@yahoo.com', '_async': '', '_test':[{'_name':'chaithu'},{'_name':'srinivas'}]}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+ #flatdic = nested2flatDict(nestedDic)
+ #print flatdic
+ flatDic={'_parameters|_program': 'blastp', '_parameters|_stype': 'protein', '_parameters|_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFIVAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF', '_email': 'chaitanya.g86@gmail.com', '_parameters|_database|_string|$|': 'uniprotkb,swissprot'}
+#{'_params|_email': 'riververy@yahoo.com', '_params|_database': 'swissprot', '_params|_async': '1', '_content|0|_type': 'sequence', '_content|1|_type': 'ss','_params|_program|0|': 'hrllo', '_content|1|_content':'bbbbbbbbbbbbbbbb', '_content|0|_content': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}
+ print flat2nestedDict(flatDic)
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,599 @@
+
+
+ WU-BLAST stands for Washington University Basic Local Alignment Search Tool. The emphasis of this tool is to find regions of sequence similarity or homology quickly, with minimum loss of sensitivity. This will yield functional and evolutionary clues about the structure and function of your novel sequence. Dr Warren Gish at Washington University released this first "gapped" version of BLAST allowing for gapped alignments and statistics.
+
+
+
+
+
+ Input parameters for the tool
+
+
+
+
+ Program [The BLAST program to be used for the Sequence Similarity Search.]
+
+
+
+
+ Expectation value threshold [Limits the number of scores and alignments reported based on the expectation value. This is the maximum number of times the match is expected to occur by chance.]
+
+
+
+
+ Alignments [Maximum number of match alignments reported in the result output.]
+
+
+
+
+ Scores [Maximum number of match score summaries reported in the result output.]
+
+
+
+
+ Align views [Formating for the alignments]
+
+
+
+
+ Matrix [The comparison matrix to be used to score alignments when searching the database]
+
+
+
+
+ Statistics [The statistical model to use for assessing the significance of the hits found]
+
+
+
+
+ Sensitivity [Increasing the sensitivity will increase the length of the search (longer execution times + more memory required), but increase the specificity of the results. A decrease will significantly speed up the search but decrease the sensitivity of the results.]
+
+
+
+
+ topcomboN [Topcombo processing causes consistent sets of HSPs to be reported, such that any given HSP is allowed to be a member of just one set. Often, one wishes to see just the best set of consistent HSPs without any other "contaminants" in the output. This would be topcomboN=1.]
+
+
+
+
+ View Filtered Sequence [When set to "yes" the query sequence used for the search, post filtering, is shown in the output file.]
+
+
+
+
+ Filter [Filter regions of low sequence complexity. This can avoid issues with low complexity sequences where matches are found due to composition rather than meaningful sequence similarity. However in some cases filtering also masks regions of interest and so should be used with caution.]
+
+
+
+
+ Nucleotide strand [For nucleotide sequences specify the sequence strand to be used for the search. By default both upper (provided) and lower (reverse complement of provided) strands are used, for single stranded sequences searching with only the upper or lower strand may provide better results.]
+
+
+
+
+ Sort [Sorts the scores in the score list of the output file.]
+
+
+
+
+ Sequence type [Indicates if the sequence is protein or DNA/RNA.]
+
+
+
+
+ Sequence [The query sequence can be entered directly into this form. The sequence can be be in GCG, FASTA, EMBL, GenBank, PIR, NBRF, PHYLIP or UniProtKB/Swiss-Prot format. A partially formatted sequence is not accepted. Adding a return to the end of the sequence may help certain applications understand the input. Note that directly using data from word processors may yield unpredictable results as hidden/control characters may be present.]
+
+
+
+
+ Database [Database]
+
+
+
+
+
+
+
+
+
+
+
+ List of renderers available to output the result of the job
+
+
+
+
+
+
+
+ Details about a renderer used to output the result of the job
+
+
+
+
+ A short description of the renderer
+
+
+
+
+ A suggested file suffix to be used when saving the data formatted by the renderer
+
+
+
+
+ The renderer identifier to be used when invoking the getResult() method
+
+
+
+
+ A more appropriate name for the renderer (more meaningful than the identifier)
+
+
+
+
+ The media type (MIME) of the renderer's output
+
+
+
+
+
+
+ A set of parameters passed to a renderer when formatting the data
+
+
+
+
+
+
+
+ A parameter used by the renderer
+
+
+
+
+ The name of the parameter
+
+
+
+
+ The parameter value as an array of String
+
+
+
+
+
+
+ List the names of the tool parameters
+
+
+
+
+
+
+
+ Details about a tool parameter
+
+
+
+
+ The name of the parameter
+
+
+
+
+ A short description of the parameter
+
+
+
+
+ The type of the parameter
+
+
+
+
+ The list of values available for this parameter
+
+
+
+
+
+
+ The list of parameter values
+
+
+
+
+
+
+
+ The details about a parameter values
+
+
+
+
+ A meaningful label for the parameter value
+
+
+
+
+ The real value
+
+
+
+
+ A flag indicating whether this value is a default value or not
+
+
+
+
+ A set of additional properties associated with the parameter value
+
+
+
+
+
+
+ A set of properties
+
+
+
+
+
+
+
+ A key/value pair association of information
+
+
+
+
+
+
+
+
+
+
+
+ User email address
+
+
+
+
+ A title to identify the analysis job
+
+
+
+
+ The list of parameters to be used for launching the analysis
+
+
+
+
+
+
+
+
+
+
+ A unique identifier for the analysis job
+
+
+
+
+
+
+
+
+
+
+ An identifier for the job to check
+
+
+
+
+
+
+
+
+
+
+ The status of the job (FINISHED, ERROR, RUNNING, NOT_FOUND or FAILURE)
+
+
+
+
+
+
+
+
+
+
+ An identifier for the job to check
+
+
+
+
+
+
+
+
+
+
+ The list of renderers available
+
+
+
+
+
+
+
+
+
+
+ An identifier for the job to check
+
+
+
+
+ The renderer to be used to format the output
+
+
+
+
+ A list of parameters to be passed on to the renderer
+
+
+
+
+
+
+
+
+
+
+ Base64 encoded data corresponding to the output of the job formatted by the renderer
+
+
+
+
+
+
+
+
+
+
+ The identifier for the parameter
+
+
+
+
+
+
+
+
+
+
+ The parameter details
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The list of parameter available for this tool
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit an analysis job
+
+
+
+
+ Get the status of a submitted job
+
+
+
+
+ Get the list of renderers available to output a job result (i.e. the list of available output types)
+
+
+
+
+ Get a job result formatted using a particular renderer
+
+
+
+
+ List the names of the parameters available before submission
+
+
+
+
+ Get some details about a parameter (e.g. name, description, values, etc.)
+
+
+
+
+
+
+
+
+ Submit an analysis job
+
+
+
+
+
+
+
+
+
+ Get the status of a submitted job
+
+
+
+
+
+
+
+
+
+ Get the list of renderers available to output a job result (i.e. the list of available output types)
+
+
+
+
+
+
+
+
+
+ Get a job result formatted using a particular renderer
+
+
+
+
+
+
+
+
+
+ List the names of the parameters available before submission
+
+
+
+
+
+
+
+
+
+ Get some details about a parameter (e.g. name, description, values, etc.)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp.wsdl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp.wsdl Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,631 @@
+
+
+
+ WSWUBlast: WU-BLAST sequence similarity searches (see http://www.ebi.ac.uk/Tools/webservices/services/wublast)
+
+
+
+
+ Input parameters for tool, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#inputparams for details.
+
+
+
+
+ Search program.
+
+
+
+
+ Database to search.
+
+
+
+
+ Scoring matrix.
+
+
+
+
+ Expectation threshold.
+
+
+
+
+ Include filtered input sequence in output.
+
+
+
+
+ Low complexity filter for input sequence.
+
+
+
+
+ Maximum number of alignments in output.
+
+
+
+
+ Maximum number of scores in output.
+
+
+
+
+ Search sensitivity.
+
+
+
+
+ Sort order for hits.
+
+
+
+
+ Search statistics.
+
+
+
+
+ Search strand for nucleotide sequences.
+
+
+
+
+ Not used.
+
+
+
+
+ Consistant sets of HSPs to report.
+
+
+
+
+ Generate application XML.
+
+
+
+
+ Asynchronous submission.
+
+
+
+
+ User e-mail address.
+
+
+
+
+
+
+ Input data for tool, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#data for details.
+
+
+
+
+ Input data type.
+
+
+
+
+ Input data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result data type description, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#wsfile for details.
+
+
+
+
+ Result type name.
+
+
+
+
+ File extension for result type
+
+
+
+
+
+
+ Description of input options, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#outdata for details.
+
+
+
+
+ Name to display in a user interface
+
+
+
+
+ Name to be passed as the option value.
+
+
+
+
+ Yes/no flag indicating if this is the default value.
+
+
+
+
+ The type of data being searched.
+
+
+
+
+ The type of input data.
+
+
+
+
+ The type of search performed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit a protein sequence vs. protein database search (blastp) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastp_database_sequence_email
+
+
+
+
+
+
+ Submit a nucleotide sequence vs. nucleotide database search (blastn) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastn_database_sequence_email
+
+
+
+
+
+
+ Get plain text output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getoutput_jobid)
+
+
+
+
+
+
+ Get XML output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxml_jobid)
+
+
+
+
+ Submit a WU-BLAST job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#runwublast_params_content)
+
+
+
+
+
+
+ Get the status of a submited job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#checkstatus_jobid)
+
+
+
+
+ Get the results of a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#poll_jobid_type)
+
+
+
+
+ Get the available result types for a completed job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getresults_jobid)
+
+
+
+
+ Get the hit identifiers from the analysis result (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getids_jobid)
+
+
+
+
+ Get the list of available scoring matrices (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getmatrices)
+
+
+
+
+ Get the list of available analysis programs (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getprograms)
+
+
+
+
+ Get the list of available databases (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getdatabases)
+
+
+
+
+ Get list of available sorting options (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsort)
+
+
+
+
+ Get the list of available statistical methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getstats)
+
+
+
+
+ Get list of options for XML formats (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxmlformats)
+
+
+
+
+ Get list of sensitivity values (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsensitivity)
+
+
+
+
+ Get the list of available input sequence filtering methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getfilters)
+
+
+
+
+ Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#polljob_jobid_outformat)
+
+
+
+
+ Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#dowublast_params_content)
+
+
+
+
+
+
+
+
+ Submit a WU-BLAST job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#runwublast_params_content)
+
+
+
+
+
+
+
+
+
+ Get the results of a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#poll_jobid_type)
+
+
+
+
+
+
+
+
+
+ Get the hit identifiers from the analysis result (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getids_jobid)
+
+
+
+
+
+
+
+
+
+ Get the list of available scoring matrices (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getmatrices)
+
+
+
+
+
+
+
+
+
+ Get the list of available analysis programs (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getprograms)
+
+
+
+
+
+
+
+
+
+ Get the list of available databases (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getdatabases)
+
+
+
+
+
+
+
+
+
+ Get list of available sorting options (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsort)
+
+
+
+
+
+
+
+
+
+ Get the list of available statistical methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getstats)
+
+
+
+
+
+
+
+
+
+ Get list of options for XML formats (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxmlformats)
+
+
+
+
+
+
+
+
+
+ Get list of sensitivity values (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsensitivity)
+
+
+
+
+
+
+
+
+
+ Get the list of available input sequence filtering methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getfilters)
+
+
+
+
+
+
+
+
+
+ Get the status of a submited job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#checkstatus_jobid)
+
+
+
+
+
+
+
+
+
+ Get the available result types for a completed job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getresults_jobid)
+
+
+
+
+
+
+
+
+
+ Get plain text output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getoutput_jobid)
+
+
+
+
+
+
+
+
+
+ Get XML output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxml_jobid)
+
+
+
+
+
+
+
+
+
+ Submit a protein sequence vs. protein database search (blastp) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastp_database_sequence_email
+
+
+
+
+
+
+
+
+
+ Submit a nucleotide sequence vs. nucleotide database search (blastn) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastn_database_sequence_email
+
+
+
+
+
+
+
+
+
+ Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#polljob_jobid_outformat)
+
+
+
+
+
+
+
+
+
+ Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#dowublast_params_content)
+
+
+
+
+
+
+
+
+
+
+ WSWUBlast: sequence similarity searches using WU-BLAST (see http://www.ebi.ac.uk/Tools/webservices/services/wublast).
+
+ Note: this RPC/encoded SOAP service will be retired during 2011, see http://www.ebi.ac.uk/Tools/webservices/services/wublast for details of alternative REST and document/literal SOAP services.
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,81 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+import os
+import sys;
+from ZSI.generate.commands import wsdl2py
+
+__author__="Rui Wang"
+
+class wsdlLoader:
+ '''all methods to load wsdl from file/url'''
+
+ def wsdlUrl2path(self, url, folderName):
+ '''given wsdl url, folder name
+ create a folder under current directory,
+ invoke wsdl2py
+ return the path of generated python file by wsdl2py'''
+
+ path=os.path.join(os.getcwd(), folderName)
+ if not os.path.isdir(path):
+ os.mkdir(path)
+
+ fileOb=open(os.path.join(path,'__init__.py'), 'a')
+ fileOb.close()
+ wsdl2py([url, '-o', path]) #zsi 2.1
+ #wsdl2py(['-u',url, '-o', path]) #zsi 2.0
+
+ #get path required by creatorEngine.py, such as: blast.WSWUBlast_services, WSWUBlast_client
+ pyFileList=os.listdir(path)
+ for f in pyFileList:
+ if f.endswith('_client.py'): #zsi2.1
+ #if f.endswith('_services.py'): #zsi2.0
+ importPath=folderName+'.'+f[:-3]
+ break
+
+ return importPath
+
+ def wsdlFile2path(self, filePath, folderName):
+ '''given wsdl file path, folder name
+ create a folder under current directory,
+ invoke wsdl2py
+ return the path of generated python file by wsdl2py'''
+ path=os.path.join(os.getcwd(), folderName)
+ if not os.path.isdir(path):
+ os.mkdir(path)
+ else:
+ print 'Warning: writing files into an already existed path!!!!'
+
+ fileOb=open(os.path.join(path,'__init__.py'), 'a')
+ fileOb.close()
+ wsdl2py([filePath, '-o', path])
+# wsdl2py(['-f',filePath, '-o', path])
+
+ #get path required by creatorengine.py, such as: blast.WSWUBlast_services
+ pyFileList=os.listdir(path)
+ for f in pyFileList:
+ #if f.endswith('_client.py'): #zsi2.1
+ if f.endswith('_services.py'): #zsi 2.0
+ importPath=folderName+'.'+f[:-3] # f[:-3] will take off the .py extention
+ break
+
+ return importPath
+
+#testing this module
+if __name__=="__main__":
+ test=wsdlLoader()
+ test.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl','blast')
+ #print test.wsdlFile2path('..\\wsdl\\WSWUBlast.wsdl', 'blast')
+# print test.wsdlFile2path('..\\wsdl\\picr.wsdl', 'picr')
+
+# print test.wsdlFile2path('..\\wsdl\\WSDbfetch.wsdl', 'dbfetch')
+
+# print test.wsdlFile2path('..\\wsdl\\NewGeneByLocation.wsdl', 'gbLocation')
+
+
+#'http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl'
+#'-u http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl'
+#-o OUTPUT_DIR
+#-b add convenience functions for complexTypes, including Getters, Setters, factory methods, and properties (via metaclass). *** DONT USE WITH --simple-naming
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,81 @@
+'''
+@author Rui Wang
+@see LICENSE (MIT style license file).
+'''
+
+import os
+import sys;
+from ZSI.generate.commands import wsdl2py
+
+__author__="Rui Wang"
+
+class wsdlLoader:
+ '''all methods to load wsdl from file/url'''
+
+ def wsdlUrl2path(self, url, folderName):
+ '''given wsdl url, folder name
+ create a folder under current directory,
+ invoke wsdl2py
+ return the path of generated python file by wsdl2py'''
+
+ path=os.path.join(os.getcwd(), folderName)
+ if not os.path.isdir(path):
+ os.mkdir(path)
+
+ fileOb=open(os.path.join(path,'__init__.py'), 'a')
+ fileOb.close()
+ #wsdl2py([url, '-o', path]) #zsi 2.1
+ wsdl2py(['-u',url, '-o', path]) #zsi 2.0
+
+ #get path required by creatorEngine.py, such as: blast.WSWUBlast_services, WSWUBlast_client
+ pyFileList=os.listdir(path)
+ for f in pyFileList:
+ #if f.endswith('_client.py'): #zsi2.1
+ if f.endswith('_services.py'): #zsi2.0
+ importPath=folderName+'.'+f[:-3]
+ break
+
+ return importPath
+
+ def wsdlFile2path(self, filePath, folderName):
+ '''given wsdl file path, folder name
+ create a folder under current directory,
+ invoke wsdl2py
+ return the path of generated python file by wsdl2py'''
+ path=os.path.join(os.getcwd(), folderName)
+ if not os.path.isdir(path):
+ os.mkdir(path)
+ else:
+ print 'Warning: writing files into an already existed path!!!!'
+
+ fileOb=open(os.path.join(path,'__init__.py'), 'a')
+ fileOb.close()
+ wsdl2py([filePath, '-o', path])
+# wsdl2py(['-f',filePath, '-o', path])
+
+ #get path required by creatorengine.py, such as: blast.WSWUBlast_services
+ pyFileList=os.listdir(path)
+ for f in pyFileList:
+ if f.endswith('_client.py'): #zsi2.1
+ #if f.endswith('_services.py'): #zsi 2.0
+ importPath=folderName+'.'+f[:-3] # f[:-3] will take off the .py extention
+ break
+
+ return importPath
+
+#testing this module
+if __name__=="__main__":
+ test=wsdlLoader()
+ test.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl','blast')
+ #print test.wsdlFile2path('..\\wsdl\\WSWUBlast.wsdl', 'blast')
+# print test.wsdlFile2path('..\\wsdl\\picr.wsdl', 'picr')
+
+# print test.wsdlFile2path('..\\wsdl\\WSDbfetch.wsdl', 'dbfetch')
+
+# print test.wsdlFile2path('..\\wsdl\\NewGeneByLocation.wsdl', 'gbLocation')
+
+
+#'http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl'
+#'-u http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl'
+#-o OUTPUT_DIR
+#-b add convenience functions for complexTypes, including Getters, Setters, factory methods, and properties (via metaclass). *** DONT USE WITH --simple-naming
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wubalst/__init__.py
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.py
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,115 @@
+##################################################
+# file: wublast_client.py
+#
+# client stubs generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+# /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+#
+##################################################
+
+from wublast_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+from ZSI.schema import GED, GTD
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+ JDispatcherServiceHttpPort_address = "http://www.ebi.ac.uk/Tools/services/soap/wublast"
+ def getJDispatcherServiceHttpPortAddress(self):
+ return JDispatcherServiceLocator.JDispatcherServiceHttpPort_address
+ def getJDispatcherServiceHttpPort(self, url=None, **kw):
+ return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherServiceHttpPort_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+ def __init__(self, url, **kw):
+ kw.setdefault("readerclass", None)
+ kw.setdefault("writerclass", None)
+ # no resource properties
+ self.binding = client.Binding(url=url, **kw)
+ # no ws-addressing
+
+ # op: run
+ def run(self, request, **kw):
+ if isinstance(request, runRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+ # no output wsaction
+ response = self.binding.Receive(runResponse.typecode)
+ return response
+
+ # op: getStatus
+ def getStatus(self, request, **kw):
+ if isinstance(request, getStatusRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getStatusResponse.typecode)
+ return response
+
+ # op: getResultTypes
+ def getResultTypes(self, request, **kw):
+ if isinstance(request, getResultTypesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getResultTypesResponse.typecode)
+ return response
+
+ # op: getResult
+ def getResult(self, request, **kw):
+ if isinstance(request, getResultRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getResultResponse.typecode)
+ return response
+
+ # op: getParameters
+ def getParameters(self, request, **kw):
+ if isinstance(request, getParametersRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getParametersResponse.typecode)
+ return response
+
+ # op: getParameterDetails
+ def getParameterDetails(self, request, **kw):
+ if isinstance(request, getParameterDetailsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getParameterDetailsResponse.typecode)
+ return response
+
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_server.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_server.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,89 @@
+##################################################
+# file: wublast_server.py
+#
+# skeleton generated by "ZSI.generate.wsdl2dispatch.ServiceModuleWriter"
+# /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+#
+##################################################
+
+from ZSI.schema import GED, GTD
+from ZSI.TCcompound import ComplexType, Struct
+from wublast_types import *
+from ZSI.ServiceContainer import ServiceSOAPBinding
+
+# Messages
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
+
+
+# Service Skeletons
+class JDispatcherService(ServiceSOAPBinding):
+ soapAction = {}
+ root = {}
+
+ def __init__(self, post='/Tools/services/soap/wublast', **kw):
+ ServiceSOAPBinding.__init__(self, post)
+
+ def soap_run(self, ps, **kw):
+ request = ps.Parse(runRequest.typecode)
+ return request,runResponse()
+
+ soapAction['urn:Run'] = 'soap_run'
+ root[(runRequest.typecode.nspname,runRequest.typecode.pname)] = 'soap_run'
+
+ def soap_getStatus(self, ps, **kw):
+ request = ps.Parse(getStatusRequest.typecode)
+ return request,getStatusResponse()
+
+ soapAction['urn:GetStatus'] = 'soap_getStatus'
+ root[(getStatusRequest.typecode.nspname,getStatusRequest.typecode.pname)] = 'soap_getStatus'
+
+ def soap_getResultTypes(self, ps, **kw):
+ request = ps.Parse(getResultTypesRequest.typecode)
+ return request,getResultTypesResponse()
+
+ soapAction['urn:GetResultTypes'] = 'soap_getResultTypes'
+ root[(getResultTypesRequest.typecode.nspname,getResultTypesRequest.typecode.pname)] = 'soap_getResultTypes'
+
+ def soap_getResult(self, ps, **kw):
+ request = ps.Parse(getResultRequest.typecode)
+ return request,getResultResponse()
+
+ soapAction['urn:GetResult'] = 'soap_getResult'
+ root[(getResultRequest.typecode.nspname,getResultRequest.typecode.pname)] = 'soap_getResult'
+
+ def soap_getParameters(self, ps, **kw):
+ request = ps.Parse(getParametersRequest.typecode)
+ return request,getParametersResponse()
+
+ soapAction['urn:GetParameters'] = 'soap_getParameters'
+ root[(getParametersRequest.typecode.nspname,getParametersRequest.typecode.pname)] = 'soap_getParameters'
+
+ def soap_getParameterDetails(self, ps, **kw):
+ request = ps.Parse(getParameterDetailsRequest.typecode)
+ return request,getParameterDetailsResponse()
+
+ soapAction['urn:GetParameterDetails'] = 'soap_getParameterDetails'
+ root[(getParameterDetailsRequest.typecode.nspname,getParameterDetailsRequest.typecode.pname)] = 'soap_getParameterDetails'
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,118 @@
+##################################################
+# wublast_services.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from wublast_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+ JDispatcherService_address = "http://www.ebi.ac.uk/Tools/services/soap/wublast"
+ def getJDispatcherServiceAddress(self):
+ return JDispatcherServiceLocator.JDispatcherService_address
+ def getJDispatcherService(self, url=None, **kw):
+ return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherService_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+ def __init__(self, url, **kw):
+ kw.setdefault("readerclass", None)
+ kw.setdefault("writerclass", None)
+ # no resource properties
+ self.binding = client.Binding(url=url, **kw)
+ # no ws-addressing
+
+ # op: run
+ def run(self, request):
+ if isinstance(request, runRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+ # no output wsaction
+ response = self.binding.Receive(runResponse.typecode)
+ return response
+
+ # op: getStatus
+ def getStatus(self, request):
+ if isinstance(request, getStatusRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getStatusResponse.typecode)
+ return response
+
+ # op: getResultTypes
+ def getResultTypes(self, request):
+ if isinstance(request, getResultTypesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getResultTypesResponse.typecode)
+ return response
+
+ # op: getResult
+ def getResult(self, request):
+ if isinstance(request, getResultRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getResultResponse.typecode)
+ return response
+
+ # op: getParameters
+ def getParameters(self, request):
+ if isinstance(request, getParametersRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getParametersResponse.typecode)
+ return response
+
+ # op: getParameterDetails
+ def getParameterDetails(self, request):
+ if isinstance(request, getParameterDetailsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+ # no output wsaction
+ response = self.binding.Receive(getParameterDetailsResponse.typecode)
+ return response
+
+runRequest = ns0.run_Dec().pyclass
+
+runResponse = ns0.runResponse_Dec().pyclass
+
+getStatusRequest = ns0.getStatus_Dec().pyclass
+
+getStatusResponse = ns0.getStatusResponse_Dec().pyclass
+
+getResultTypesRequest = ns0.getResultTypes_Dec().pyclass
+
+getResultTypesResponse = ns0.getResultTypesResponse_Dec().pyclass
+
+getResultRequest = ns0.getResult_Dec().pyclass
+
+getResultResponse = ns0.getResultResponse_Dec().pyclass
+
+getParametersRequest = ns0.getParameters_Dec().pyclass
+
+getParametersResponse = ns0.getParametersResponse_Dec().pyclass
+
+getParameterDetailsRequest = ns0.getParameterDetails_Dec().pyclass
+
+getParameterDetailsResponse = ns0.getParameterDetailsResponse_Dec().pyclass
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services_types.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services_types.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,505 @@
+##################################################
+# wublast_services_types.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+ targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+ class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "InputParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.InputParameters_Def.schema
+ TClist = [ZSI.TC.String(pname="program", aname="_program", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="exp", aname="_exp", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="alignments", aname="_alignments", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="scores", aname="_scores", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="align", aname="_align", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stats", aname="_stats", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sensitivity", aname="_sensitivity", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="topcombon", aname="_topcombon", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="viewfilter", aname="_viewfilter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filter", aname="_filter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="strand", aname="_strand", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sort", aname="_sort", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stype", aname="_stype", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="database", aname="_database", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._program = None
+ self._exp = None
+ self._alignments = None
+ self._scores = None
+ self._align = None
+ self._matrix = None
+ self._stats = None
+ self._sensitivity = None
+ self._topcombon = None
+ self._viewfilter = None
+ self._filter = None
+ self._strand = None
+ self._sort = None
+ self._stype = None
+ self._sequence = None
+ self._database = None
+ return
+ Holder.__name__ = "InputParameters_Holder"
+ self.pyclass = Holder
+
+ class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "ArrayOfString")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.ArrayOfString_Def.schema
+ TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._string = []
+ return
+ Holder.__name__ = "ArrayOfString_Holder"
+ self.pyclass = Holder
+
+ class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsResultTypes")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsResultTypes_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._type = []
+ return
+ Holder.__name__ = "wsResultTypes_Holder"
+ self.pyclass = Holder
+
+ class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsResultType")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsResultType_Def.schema
+ TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._description = None
+ self._fileSuffix = None
+ self._identifier = None
+ self._label = None
+ self._mediaType = None
+ return
+ Holder.__name__ = "wsResultType_Holder"
+ self.pyclass = Holder
+
+ class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsRawOutputParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsRawOutputParameters_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameter = []
+ return
+ Holder.__name__ = "wsRawOutputParameters_Holder"
+ self.pyclass = Holder
+
+ class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsRawOutputParameter")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsRawOutputParameter_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._value = None
+ return
+ Holder.__name__ = "wsRawOutputParameter_Holder"
+ self.pyclass = Holder
+
+ class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameters_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = []
+ return
+ Holder.__name__ = "wsParameters_Holder"
+ self.pyclass = Holder
+
+ class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterDetails")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterDetails_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._description = None
+ self._type = None
+ self._values = None
+ return
+ Holder.__name__ = "wsParameterDetails_Holder"
+ self.pyclass = Holder
+
+ class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterValues")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterValues_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._value = []
+ return
+ Holder.__name__ = "wsParameterValues_Holder"
+ self.pyclass = Holder
+
+ class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterValue")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterValue_Def.schema
+ TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._label = None
+ self._value = None
+ self._defaultValue = None
+ self._properties = None
+ return
+ Holder.__name__ = "wsParameterValue_Holder"
+ self.pyclass = Holder
+
+ class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsProperties")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsProperties_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._property = []
+ return
+ Holder.__name__ = "wsProperties_Holder"
+ self.pyclass = Holder
+
+ class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsProperty")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsProperty_Def.schema
+ TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._key = None
+ self._value = None
+ return
+ Holder.__name__ = "wsProperty_Holder"
+ self.pyclass = Holder
+
+ class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "run"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.run_Dec.schema
+ TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+ kw["aname"] = "_run"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._email = None
+ self._title = None
+ self._parameters = None
+ return
+ Holder.__name__ = "run_Holder"
+ self.pyclass = Holder
+
+ class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "runResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.runResponse_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+ kw["aname"] = "_runResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "runResponse_Holder"
+ self.pyclass = Holder
+
+ class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getStatus"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getStatus_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+ kw["aname"] = "_getStatus"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "getStatus_Holder"
+ self.pyclass = Holder
+
+ class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getStatusResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getStatusResponse_Dec.schema
+ TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+ kw["aname"] = "_getStatusResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._status = None
+ return
+ Holder.__name__ = "getStatusResponse_Holder"
+ self.pyclass = Holder
+
+ class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultTypes"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultTypes_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+ kw["aname"] = "_getResultTypes"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "getResultTypes_Holder"
+ self.pyclass = Holder
+
+ class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultTypesResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultTypesResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+ kw["aname"] = "_getResultTypesResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._resultTypes = None
+ return
+ Holder.__name__ = "getResultTypesResponse_Holder"
+ self.pyclass = Holder
+
+ class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResult"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResult_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+ kw["aname"] = "_getResult"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ self._type = None
+ self._parameters = None
+ return
+ Holder.__name__ = "getResult_Holder"
+ self.pyclass = Holder
+
+ class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultResponse_Dec.schema
+ TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+ kw["aname"] = "_getResultResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._output = None
+ return
+ Holder.__name__ = "getResultResponse_Holder"
+ self.pyclass = Holder
+
+ class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameterDetails"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameterDetails_Dec.schema
+ TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+ kw["aname"] = "_getParameterDetails"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameterId = None
+ return
+ Holder.__name__ = "getParameterDetails_Holder"
+ self.pyclass = Holder
+
+ class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameterDetailsResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameterDetailsResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+ kw["aname"] = "_getParameterDetailsResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameterDetails = None
+ return
+ Holder.__name__ = "getParameterDetailsResponse_Holder"
+ self.pyclass = Holder
+
+ class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameters"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameters_Dec.schema
+ TClist = []
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+ kw["aname"] = "_getParameters"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ return
+ Holder.__name__ = "getParameters_Holder"
+ self.pyclass = Holder
+
+ class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParametersResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParametersResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+ kw["aname"] = "_getParametersResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameters = None
+ return
+ Holder.__name__ = "getParametersResponse_Holder"
+ self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,507 @@
+##################################################
+# file: wublast_types.py
+#
+# schema types generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+# /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+#
+##################################################
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+ targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+ class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "InputParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.InputParameters_Def.schema
+ TClist = [ZSI.TC.String(pname="program", aname="_program", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="exp", aname="_exp", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="alignments", aname="_alignments", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="scores", aname="_scores", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="align", aname="_align", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stats", aname="_stats", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sensitivity", aname="_sensitivity", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="topcombon", aname="_topcombon", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="viewfilter", aname="_viewfilter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filter", aname="_filter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="strand", aname="_strand", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sort", aname="_sort", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stype", aname="_stype", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="database", aname="_database", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._program = None
+ self._exp = None
+ self._alignments = None
+ self._scores = None
+ self._align = None
+ self._matrix = None
+ self._stats = None
+ self._sensitivity = None
+ self._topcombon = None
+ self._viewfilter = None
+ self._filter = None
+ self._strand = None
+ self._sort = None
+ self._stype = None
+ self._sequence = None
+ self._database = None
+ return
+ Holder.__name__ = "InputParameters_Holder"
+ self.pyclass = Holder
+
+ class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "ArrayOfString")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.ArrayOfString_Def.schema
+ TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._string = []
+ return
+ Holder.__name__ = "ArrayOfString_Holder"
+ self.pyclass = Holder
+
+ class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsResultTypes")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsResultTypes_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._type = []
+ return
+ Holder.__name__ = "wsResultTypes_Holder"
+ self.pyclass = Holder
+
+ class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsResultType")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsResultType_Def.schema
+ TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._description = None
+ self._fileSuffix = None
+ self._identifier = None
+ self._label = None
+ self._mediaType = None
+ return
+ Holder.__name__ = "wsResultType_Holder"
+ self.pyclass = Holder
+
+ class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsRawOutputParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsRawOutputParameters_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameter = []
+ return
+ Holder.__name__ = "wsRawOutputParameters_Holder"
+ self.pyclass = Holder
+
+ class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsRawOutputParameter")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsRawOutputParameter_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._value = None
+ return
+ Holder.__name__ = "wsRawOutputParameter_Holder"
+ self.pyclass = Holder
+
+ class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameters")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameters_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = []
+ return
+ Holder.__name__ = "wsParameters_Holder"
+ self.pyclass = Holder
+
+ class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterDetails")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterDetails_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._description = None
+ self._type = None
+ self._values = None
+ return
+ Holder.__name__ = "wsParameterDetails_Holder"
+ self.pyclass = Holder
+
+ class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterValues")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterValues_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._value = []
+ return
+ Holder.__name__ = "wsParameterValues_Holder"
+ self.pyclass = Holder
+
+ class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsParameterValue")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsParameterValue_Def.schema
+ TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._label = None
+ self._value = None
+ self._defaultValue = None
+ self._properties = None
+ return
+ Holder.__name__ = "wsParameterValue_Holder"
+ self.pyclass = Holder
+
+ class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsProperties")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsProperties_Def.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._property = []
+ return
+ Holder.__name__ = "wsProperties_Holder"
+ self.pyclass = Holder
+
+ class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ type = (schema, "wsProperty")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ ns = ns0.wsProperty_Def.schema
+ TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._key = None
+ self._value = None
+ return
+ Holder.__name__ = "wsProperty_Holder"
+ self.pyclass = Holder
+
+ class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "run"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.run_Dec.schema
+ TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+ kw["aname"] = "_run"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._email = None
+ self._title = None
+ self._parameters = None
+ return
+ Holder.__name__ = "run_Holder"
+ self.pyclass = Holder
+
+ class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "runResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.runResponse_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+ kw["aname"] = "_runResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "runResponse_Holder"
+ self.pyclass = Holder
+
+ class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getStatus"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getStatus_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+ kw["aname"] = "_getStatus"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "getStatus_Holder"
+ self.pyclass = Holder
+
+ class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getStatusResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getStatusResponse_Dec.schema
+ TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+ kw["aname"] = "_getStatusResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._status = None
+ return
+ Holder.__name__ = "getStatusResponse_Holder"
+ self.pyclass = Holder
+
+ class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultTypes"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultTypes_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+ kw["aname"] = "_getResultTypes"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ return
+ Holder.__name__ = "getResultTypes_Holder"
+ self.pyclass = Holder
+
+ class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultTypesResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultTypesResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+ kw["aname"] = "_getResultTypesResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._resultTypes = None
+ return
+ Holder.__name__ = "getResultTypesResponse_Holder"
+ self.pyclass = Holder
+
+ class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResult"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResult_Dec.schema
+ TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+ kw["aname"] = "_getResult"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._jobId = None
+ self._type = None
+ self._parameters = None
+ return
+ Holder.__name__ = "getResult_Holder"
+ self.pyclass = Holder
+
+ class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getResultResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getResultResponse_Dec.schema
+ TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+ kw["aname"] = "_getResultResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._output = None
+ return
+ Holder.__name__ = "getResultResponse_Holder"
+ self.pyclass = Holder
+
+ class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameterDetails"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameterDetails_Dec.schema
+ TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+ kw["aname"] = "_getParameterDetails"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameterId = None
+ return
+ Holder.__name__ = "getParameterDetails_Holder"
+ self.pyclass = Holder
+
+ class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameterDetailsResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameterDetailsResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+ kw["aname"] = "_getParameterDetailsResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameterDetails = None
+ return
+ Holder.__name__ = "getParameterDetailsResponse_Holder"
+ self.pyclass = Holder
+
+ class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParameters"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParameters_Dec.schema
+ TClist = []
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+ kw["aname"] = "_getParameters"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ return
+ Holder.__name__ = "getParameters_Holder"
+ self.pyclass = Holder
+
+ class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+ literal = "getParametersResponse"
+ schema = "http://soap.jdispatcher.ebi.ac.uk"
+ def __init__(self, **kw):
+ ns = ns0.getParametersResponse_Dec.schema
+ TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+ kw["aname"] = "_getParametersResponse"
+ self.attribute_typecode_dict = {}
+ ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+ class Holder:
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._parameters = None
+ return
+ Holder.__name__ = "getParametersResponse_Holder"
+ self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+
+6
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+
+5
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,183 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import sys
+ import os
+ import urllib
+
+ """
+
+ This script takes the values of the input parameters of the
+ web service from the user and invokes the web service.
+ The URL to the WSDL is the command line argument
+
+ """
+ servicetype = sys.argv[2]
+ if servicetype=='SOAP':
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+ from creatorEngineComplex import *
+ from wsdl2path import *
+ from paramConverter import *
+ from ZSI.writer import SoapWriter
+ from msHandler import *
+
+ webservice = str(sys.argv[3])
+ operation = str(sys.argv[4])
+ resultfile=open(sys.argv[1],'w')
+ length=len(sys.argv)
+ inputdict={}
+ i=5
+ test=ClientCreator()
+ while(i>=5 and i<(length-1)):
+ key=sys.argv[i]
+ print 'key is : ',key
+ #if(sys.argv[i+1]=='ZSI.TC.String'):
+ val=sys.argv[i+1]
+ while(val.find('__at__')>-1):
+ vlist = val.split('__at__')
+ val = '@'.join(vlist)
+ while(val.find('__sq__')>-1):
+ vlist = val.split('__sq__')
+ val = ''.join(vlist)
+ while(val.find('__gt__')>-1):
+ vlist = val.split('__gt__')
+ val = '>'.join(vlist)
+ while(val.find('***')>-1):
+ vlist = val.split('***')
+ val = '\n'.join(vlist)
+ while(val.find('**')>-1):
+ vlist = val.split('**')
+ val = ' '.join(vlist)
+ #if(val.find(',')>-1):
+ # print 'found ,'
+ # vlist = val.split(',')
+ # val = '\',\''.join(vlist)
+
+
+ #if(val.find('__sq__')>-1):
+ # j=i+4
+ # val=val.lstrip('__sq__')
+ # while(str(sys.argv[j]).find('__sq__')==-1):
+ # val=val+' '+sys.argv[j]
+ # j=j+1
+ #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+ #i=j-3
+
+ #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+ # val=int(sys.argv[i+1])
+ #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+ # val=float(sys.argv[i+1])
+ #elif(sys.argv[i+2]=='Yes'):
+ # valFile=open(sys.argv[i+3],'r')
+ # val=valFile.read()
+ #else:
+ # val=sys.argv[i+1]
+ if(val != "0"):
+ inputdict[key]= val
+ #resultfile.write('value is :'+ val+'\n')
+
+ i=i+2
+ if len(inputdict) == 0:
+ inputdic = {}
+ else:
+ inputdic = flat2nestedDict(inputdict)
+ print 'The operation is : ',operation #added
+ result=test.invokeOp(operation,webservice,inputdic)
+
+ mshandler = MessageHandler()
+ resultDict={}
+ resultDict=mshandler.flatten(result) #mshandler.msParser(responseInstance)
+ flat = nested2flatDict(resultDict)
+
+ result=flat
+
+
+ #resultfile.write(result)
+
+ # Writing the output to the o/p file when the result is parsed
+ #keys = result.keys()
+
+ #for key in keys:
+ # resultfile.write(str(key)+'\t')
+
+ #resultfile.write('\n')
+
+ #for key in keys:
+ # if type(result[key])==list:
+ # for i in result[r]:
+ # resultfile.write(str(i)+'\t')
+ # print str(i)
+ # else:
+ # resultfile.write(str(result[key])+'\t')
+ for r in result:
+ if type(result[r])==list:
+ for i in result[r]:
+ resultfile.write(str(i)+'\n')
+ print str(i)
+ else:
+ resultfile.write(str(result[r])+'\n')
+
+ #Writes the result without parsinf in the XML format it gets.
+ #sw = SoapWriter(header=False, envelope=False);
+ #res = test.opname2outputClassOb(operation,webservice)
+ #res_tc = getattr(res,'typecode')
+ #ofwhat = res_tc.ofwhat;
+ #for tc in ofwhat :
+ # sw.serialize(getattr(result, tc.aname), tc);
+ # doc = sw.dom.getDocument();
+ # fp = open(sys.argv[1], 'w');
+ # try :
+ # doc.writexml(fp, '\t', '', '\n');
+ # finally :
+ # fp.close();
+
+
+ elif servicetype == 'REST':
+ resUrl = sys.argv[3]
+
+ outputFile = open(sys.argv[1],'w')
+ if(resUrl.find('__tilda__')>-1):
+ ulist = resUrl.split('__tilda__')
+ resUrl = '~'.join(ulist)
+
+ paramdict={}
+ length=(len(sys.argv))
+
+ print 'in rest',sys.argv
+ #print s
+ i=4
+ print i
+
+ while( i>=4 and i<(length-1)):
+
+ key=sys.argv[i]
+ val=sys.argv[i+1]
+ print 'key : ',key
+ print 'value : ',val
+ while(val.find('**')>-1):
+ vlist = val.split('**')
+ print '---->',val
+ val = ' '.join(vlist)
+ print 'v : ',val
+ paramdict[key]=val
+ i=i+2
+
+ print paramdict
+
+ params = urllib.urlencode(paramdict)
+ data = urllib.urlopen(resUrl, params).read()
+ outputFile.write(data)
+
+#
+#if __name__ == "__main__":
+# main();
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,173 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import sys
+ import os
+ import urllib
+
+ """
+
+ This script takes the values of the input parameters of the
+ web service from the user and invokes the web service.
+ The URL to the WSDL is the command line argument
+
+ """
+ servicetype = sys.argv[2]
+ if servicetype=='SOAP':
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+ from creatorEngineComplex import *
+ from wsdl2path import *
+ from paramConverter import *
+ from ZSI.writer import SoapWriter
+
+ webservice = str(sys.argv[3])
+ operation = str(sys.argv[4])
+ resultfile=open(sys.argv[1],'w')
+ length=len(sys.argv)
+ inputdict={}
+ i=5
+ test=ClientCreator()
+ while(i>=5 and i<(length-1)):
+ key=sys.argv[i]
+ print 'key is : ',key
+ #if(sys.argv[i+1]=='ZSI.TC.String'):
+ val=sys.argv[i+1]
+ while(val.find('__at__')>-1):
+ vlist = val.split('__at__')
+ val = '@'.join(vlist)
+ while(val.find('__sq__')>-1):
+ vlist = val.split('__sq__')
+ val = ''.join(vlist)
+ while(val.find('__gt__')>-1):
+ vlist = val.split('__gt__')
+ val = '>'.join(vlist)
+ while(val.find('***')>-1):
+ vlist = val.split('***')
+ val = '\n'.join(vlist)
+ while(val.find('**')>-1):
+ vlist = val.split('**')
+ val = ' '.join(vlist)
+ #if(val.find(',')>-1):
+ # print 'found ,'
+ # vlist = val.split(',')
+ # val = '\',\''.join(vlist)
+
+
+ #if(val.find('__sq__')>-1):
+ # j=i+4
+ # val=val.lstrip('__sq__')
+ # while(str(sys.argv[j]).find('__sq__')==-1):
+ # val=val+' '+sys.argv[j]
+ # j=j+1
+ #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+ #i=j-3
+
+ #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+ # val=int(sys.argv[i+1])
+ #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+ # val=float(sys.argv[i+1])
+ #elif(sys.argv[i+2]=='Yes'):
+ # valFile=open(sys.argv[i+3],'r')
+ # val=valFile.read()
+ #else:
+ # val=sys.argv[i+1]
+ if(val != "0"):
+ inputdict[key]= val
+ #resultfile.write('value is :'+ val+'\n')
+
+ i=i+2
+ if len(inputdict) == 0:
+ inputdic = {}
+ else:
+ inputdic = flat2nestedDict(inputdict)
+ print 'The operation is : ',operation #added
+ result=test.invokeOp(operation,webservice,inputdic)
+ #resultfile.write(result)
+
+ # Writing the output to the o/p file when the result is parsed
+ keys = result.keys()
+
+ #for key in keys:
+ # resultfile.write(str(key)+'\t')
+
+ #resultfile.write('\n')
+
+ #for key in keys:
+ # if type(result[key])==list:
+ # for i in result[r]:
+ # resultfile.write(str(i)+'\t')
+ # print str(i)
+ # else:
+ # resultfile.write(str(result[key])+'\t')
+ for r in result:
+ if type(result[r])==list:
+ for i in result[r]:
+ resultfile.write(str(i)+'\n')
+ print str(i)
+ else:
+ resultfile.write(str(result[r])+'\n')
+
+ #Writes the result without parsinf in the XML format it gets.
+ #sw = SoapWriter(header=False, envelope=False);
+ #res = test.opname2outputClassOb(operation,webservice)
+ #res_tc = getattr(res,'typecode')
+ #ofwhat = res_tc.ofwhat;
+ #for tc in ofwhat :
+ # sw.serialize(getattr(result, tc.aname), tc);
+ # doc = sw.dom.getDocument();
+ # fp = open(sys.argv[1], 'w');
+ # try :
+ # doc.writexml(fp, '\t', '', '\n');
+ # finally :
+ # fp.close();
+
+
+ elif servicetype == 'REST':
+ resUrl = sys.argv[3]
+
+ outputFile = open(sys.argv[1],'w')
+ if(resUrl.find('__tilda__')>-1):
+ ulist = resUrl.split('__tilda__')
+ resUrl = '~'.join(ulist)
+
+ paramdict={}
+ length=(len(sys.argv))
+
+ print 'in rest',sys.argv
+ #print s
+ i=4
+ print i
+
+ while( i>=4 and i<(length-1)):
+
+ key=sys.argv[i]
+ val=sys.argv[i+1]
+ print 'key : ',key
+ print 'value : ',val
+ while(val.find('**')>-1):
+ vlist = val.split('**')
+ print '---->',val
+ val = ' '.join(vlist)
+ print 'v : ',val
+ paramdict[key]=val
+ i=i+2
+
+ print paramdict
+
+ params = urllib.urlencode(paramdict)
+ data = urllib.urlopen(resUrl, params).read()
+ outputFile.write(data)
+
+#
+#if __name__ == "__main__":
+# main();
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,107 @@
+
+ Client for method: genesbytextsearch , Web service: /home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByTextSearch.sawadl
+
+ client_1.py
+ $output
+ http://eupathdb.org/webservices/GeneQuestions/GenesByTextSearch.xml
+ text_search_organism
+ $source0.user_param0
+ text_expression
+ $param1
+ text_fields
+ $param2
+ whole_words
+ $param3
+ max_pvalue
+ $param4
+
+
+
+
+ Param value will be taken from previous step
+ User will enter the param value
+
+
+
+ Entamoeba dispar
+ Entamoeba histolytica
+ Entamoeba invadens
+ Cryptosporidium parvum
+ Cryptosporidium hominis
+ Cryptosporidium muris
+ Giardia Assemblage A isolate WB
+ Giardia Assemblage B isolate GS
+ Giardia Assemblage E isolate P15
+ Encephalitozoon cuniculi
+ Encephalitozoon intestinalis
+ Plasmodium falciparum
+ Plasmodium vivax
+ Plasmodium yoelii
+ Plasmodium berghei
+ Plasmodium chabaudi
+ Plasmodium knowlesi
+ Toxoplasma gondii
+ Neospora caninum
+ Trichomonas vaginalis
+ Trypanosoma cruzi
+ Leishmania braziliensis
+ Leishmania infantum
+ Leishmania major
+ Leishmania mexicana
+ Trypanosoma brucei
+ Trypanosoma congolense
+ Trypanosoma vivax
+
+
+
+
+
+
+
+
+ Gene ID
+ Alias
+ Gene product
+ Phenotype
+ GO terms and definitions
+ Gene notes
+ User comments
+ Protein domain names and descriptions
+ Similar proteins (BLAST hits v. NRDB/PDB)
+ EC descriptions
+ Metabolic pathway names and descriptions
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**TIP:** About text_search_organism: type is xsd:string, description from ontology is "Organism identifier"
+
+.. class:: infomark
+
+**TIP:** About text_expression: type is xsd:string, description from ontology is "This term can be used for any free-form comments and annotations."
+
+.. class:: infomark
+
+**TIP:** About text_fields: type is xsd:string, description from ontology is "Undefined concept"
+
+.. class:: infomark
+
+**TIP:** About whole_words: type is xsd:string, description from ontology is "
+ A simple parameter that is a toggle (boolean value), typically a control for a modal tool
+ "
+
+.. class:: infomark
+
+**TIP:** About max_pvalue: type is xsd:string
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_17.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_17.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,62 @@
+
+ Client for operation : run , Web service: wublast.wublast_services
+
+ #if $cond_source.optional_param_source=="no" #client_3.py $output $servicetype wublast.wublast_services run "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 #else #client_3.py $output $servicetype wublast.wublast_services run
+ "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 "_parameters|_sensitivity" $param5 "_parameters|_topcombon" $param6 "_parameters|_filter" $param7 "_parameters|_alignments" $param8 "_parameters|_scores" $param9 "_parameters|_viewfilter" $param10 "_parameters|_sort" $param11 "_parameters|_strand" $param12 "_parameters|_align" $param13 "_parameters|_matrix" $param14 "_title" $param15 "_parameters|_stats" $param16 "_parameters|_exp" $param17 #end if
+
+
+
+
+
+
+
+
+
+
+
+ no
+ yes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_2.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_2.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,62 @@
+
+ Client for operation : run , Web service: wublast.wublast_services
+
+ #if $cond_source.optional_param_source=="no" #client_1.py $output $servicetype wublast.wublast_services run "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 #else #client_1.py $output $servicetype wublast.wublast_services run
+ "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 "_parameters|_sensitivity" $cond_source.param5 "_parameters|_topcombon" $cond_source.param6 "_parameters|_filter" $cond_source.param7 "_parameters|_alignments" $cond_source.param8 "_parameters|_scores" $cond_source.param9 "_parameters|_viewfilter" $cond_source.param10 "_parameters|_sort" $cond_source.param11 "_parameters|_strand" $cond_source.param12 "_parameters|_align" $cond_source.param13 "_parameters|_matrix" $cond_source.param14 "_title" $cond_source.param15 "_parameters|_stats" $cond_source.param16 "_parameters|_exp" $cond_source.param17 #end if
+
+
+
+
+
+
+
+
+
+
+
+ no
+ yes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_3.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_3.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,160 @@
+
+ Client for method: genesbygenetype , Web service: http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl
+
+ #if $cond_source.optional_param_source=="no" #client_1.py $output $service http://eupathdb.org/webservices/GeneQuestions/GenesByGeneType.xml organism $param0 includePseudogenes $param1 geneType $param2 #else #client_1.py $output $service http://eupathdb.org/webservices/GeneQuestions/GenesByGeneType.xml organism $param0 includePseudogenes $param1 geneType $param2 o-fields $cond_source.param3 o-tables $cond_source.param4 #end if
+
+
+
+
+ Entamoeba dispar
+ Entamoeba histolytica
+ Entamoeba invadens
+ Cryptosporidium parvum
+ Cryptosporidium hominis
+ Cryptosporidium muris
+ Giardia Assemblage A isolate WB
+ Giardia Assemblage B isolate GS
+ Giardia Assemblage E isolate P15
+ Encephalitozoon cuniculi
+ Encephalitozoon intestinalis
+ Enterocytozoon bieneusi
+ Babesia bovis
+ Theileria annulata
+ Theileria parva
+ Plasmodium falciparum
+ Plasmodium vivax
+ Plasmodium yoelii
+ Plasmodium berghei
+ Plasmodium chabaudi
+ Plasmodium knowlesi
+ Toxoplasma gondii
+ Neospora caninum
+ Trichomonas vaginalis
+ Trypanosoma cruzi
+ Leishmania braziliensis
+ Leishmania infantum
+ Leishmania major
+ Leishmania mexicana
+ Trypanosoma brucei
+ Trypanosoma congolense
+ Trypanosoma vivax
+
+
+ No
+ Yes
+ Pseudogenes Only
+
+
+ protein coding
+ snRNA encoding
+ tRNA encoding
+ rRNA encoding
+ misc RNA
+ snoRNA encoding
+ SRP RNA encoding
+ RNase P RNA
+ RNase MRP RNA
+ repeat region
+ scRNA encoding
+
+
+
+
+ no
+ yes
+
+
+
+
+ all
+ none
+ primary_key
+ formatted_gene_id
+ sequence_id
+ chromosome
+ chromosome_order_num
+ location_text
+ strand
+ gene_type
+ exon_count
+ transcript_length
+ cds_length
+ product
+ protein_length
+ tm_count
+ molecular_weight
+ isoelectric_point
+ ec_numbers_string
+ ortholog_number
+ paralog_number
+ orthomcl_name
+ signalp_scores
+ signalp_peptide
+ ann_go_function
+ ann_go_process
+ ann_go_component
+ pred_go_function
+ pred_go_process
+ pred_go_component
+ organism
+ is_pseudo
+ protein_sequence
+ transcript_sequence
+ cds
+ wdk_weight
+
+
+ all
+ none
+ SNPs
+ GeneModelDump
+ InterPro
+ TMHMM
+ LowComplexity
+ SignalP
+ BlastP
+ Genbank
+ SageTags
+ Notes
+ UserComments
+ CommunityExpComments
+ EcNumber
+ MassSpec
+ GoTerms
+ Phenotype
+ Y2hInteractions
+ Orthologs
+ MetabolicPathways
+ TaskComments
+ ArrayElements
+ TwoChannelDiffExpr
+ ProteinExpression
+ Mr4Reagents
+ ProteinDatabase
+ GeneLinkouts
+ 3dPreds
+ PdbSimilarities
+ Epitopes
+ IsolateOverlap
+
+
+
+
+
+
+
+Replace white space with ** in all parameter values
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Include Pseudogenes type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Gene type type is xsd:string
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_5.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_5.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,138 @@
+
+ Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl
+
+ #if $cond_source.optional_param_source=="no" #client_1.py $output http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml organism $param0 min_molecular_weight $param1 max_molecular_weight $param2#else #client_1.py $output http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml organism $param0 min_molecular_weight $param1 max_molecular_weight $param2 o-fields $cond_source.param3 o-tables $cond_source.param4#end if
+
+
+
+ Entamoeba dispar
+ Entamoeba histolytica
+ Entamoeba invadens
+ Cryptosporidium parvum
+ Cryptosporidium hominis
+ Cryptosporidium muris
+ Giardia Assemblage A isolate WB
+ Giardia Assemblage B isolate GS
+ Giardia Assemblage E isolate P15
+ Encephalitozoon cuniculi
+ Encephalitozoon intestinalis
+ Plasmodium falciparum
+ Plasmodium vivax
+ Plasmodium yoelii
+ Plasmodium berghei
+ Plasmodium chabaudi
+ Plasmodium knowlesi
+ Toxoplasma gondii
+ Neospora caninum
+ Trichomonas vaginalis
+ Trypanosoma cruzi
+ Leishmania braziliensis
+ Leishmania infantum
+ Leishmania major
+ Leishmania mexicana
+ Trypanosoma brucei
+ Trypanosoma congolense
+ Trypanosoma vivax
+
+
+
+
+
+
+ no
+ yes
+
+
+
+
+ all
+ none
+ primary_key
+ formatted_gene_id
+ external_db_name
+ sequence_id
+ chromosome
+ location_text
+ strand
+ gene_type
+ exon_count
+ transcript_length
+ cds_length
+ product
+ protein_length
+ tm_count
+ molecular_weight
+ isoelectric_point
+ ec_numbers_string
+ ortholog_number
+ paralog_number
+ orthomcl_name
+ signalp_scores
+ signalp_peptide
+ ann_go_function
+ ann_go_process
+ ann_go_component
+ pred_go_function
+ pred_go_process
+ pred_go_component
+ organism
+ protein_sequence
+ transcript_sequence
+ cds
+ wdk_weight
+
+
+ all
+ none
+ SNPs
+ GeneModelDump
+ InterPro
+ TMHMM
+ LowComplexity
+ SignalP
+ BlastP
+ Genbank
+ SageTags
+ Notes
+ UserComments
+ CommunityExpComments
+ EcNumber
+ MassSpec
+ GoTerms
+ Aliases
+ Phenotype
+ Y2hInteractions
+ Orthologs
+ MetabolicPathways
+ TaskComments
+ ArrayElements
+ TwoChannelDiffExpr
+ ProteinExpression
+ Mr4Reagents
+ ProteinDatabase
+ GeneLinkouts
+ 3dPreds
+ PdbSimilarities
+ Epitopes
+ IsolateOverlap
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**TIP:** organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** min_molecular_weight type is xsd:string
+
+.. class:: infomark
+
+**TIP:** max_molecular_weight type is xsd:string
+
+
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_9.xml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_9.xml~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,61 @@
+
+ Client for operation : run , Web service: wublast.wublast_services
+
+ #if $cond_source.optional_param_source=="no" #client_1.py $output wublast.wublast_services run "_parameters|_sequence" $param0 "_email" $param1 "_parameters|_stype" $param2 "_parameters|_program" $param3 "_parameters|_database|_string|0|" $param4 #else #client_1.py $output wublast.wublast_services run
+ "_parameters|_sequence" $param0 "_email" $param1 "_parameters|_stype" $param2 "_parameters|_program" $param3 "_parameters|_database|_string" $param4 "_parameters|_sensitivity" $cond_source.param5 "_parameters|_topcombon" $cond_source.param6 "_parameters|_filter" $cond_source.param7 "_parameters|_alignments" $cond_source.param8 "_parameters|_scores" $cond_source.param9 "_parameters|_viewfilter" $cond_source.param10 "_parameters|_sort" $cond_source.param11 "_parameters|_strand" $cond_source.param12 "_parameters|_align" $cond_source.param13 "_parameters|_matrix" $cond_source.param14 "_title" $cond_source.param15 "_parameters|_stats" $cond_source.param16 "_parameters|_exp" $cond_source.param17 #end if
+
+
+
+
+
+
+
+
+
+
+ no
+ yes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About string: type is String
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,73 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Open the toolconf.xml file and adds the tool under 'Web Service Workflow Tools' that has been passed to it.
+
+'''
+class editToolConfig(object):
+ def addTool(self,toolName):
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ f1=open(galaxyhome+'/tool_conf.xml','r')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+ f2.seek(0,0)
+
+ ##first copy everything upto WebServiceTool1.xml into another file f2
+ line = f1.readline()
+ f2.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped=lineStripped.rstrip()
+
+ #add the workflow Web service invocation tool under Web Service Workflow Tools section
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ## add new tool to f2
+ f2.write(' \n')
+
+ ## copy rest of f1 into f2
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ##close f1 and f2
+ f1.close()
+ f2.close()
+
+ ##interchange modes of f1 and f2
+ f1=open(galaxyhome+'/tool_conf.xml','w')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+ f2.seek(0,0)
+
+ line = f2.readline()
+ f1.write(line)
+
+ lineStripped=line.lstrip()
+
+ ##write entire f2 into f1 (reverse roles)
+ while not lineStripped == '':
+ line = f2.readline()
+ f1.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ f1.close()
+ f2.close()
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,76 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Open the toolconf.xml file and adds the tool under 'Web Service Workflow Tools' that has been passed to it.
+
+'''
+
+__author__="Chaitanya Guttula, Sumedha Ganjoo"
+
+class editToolConfig(object):
+ def addTool(self,toolName):
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ f1=open(galaxyhome+'/tool_conf.xml','r')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+ f2.seek(0,0)
+
+ ##first copy everything upto WebServiceTool1.xml into another file f2
+ line = f1.readline()
+ f2.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped=lineStripped.rstrip()
+
+ #add the workflow Web service invocation tool under Web Service Workflow Tools section
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ## add new tool to f2
+ f2.write(' \n')
+
+ ## copy rest of f1 into f2
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ##close f1 and f2
+ f1.close()
+ f2.close()
+
+ ##interchange modes of f1 and f2
+ f1=open(galaxyhome+'/tool_conf.xml','w')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+ f2.seek(0,0)
+
+ line = f2.readline()
+ f1.write(line)
+
+ lineStripped=line.lstrip()
+
+ ##write entire f2 into f1 (reverse roles)
+ while not lineStripped == '':
+ line = f2.readline()
+ f1.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ f1.close()
+ f2.close()
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,75 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Opens the toolconf.xml file and then adds the tool that is paased to it under Web Service tools
+'''
+
+__author__=""
+
+class editToolConfig1(object):
+ def addTool(self,toolName):
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ f1=open(galaxyhome+'/tool_conf.xml','r')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+ f2.seek(0,0)
+
+ #copy everything from tool_conf.xml upto the section 'Web Service Tools' into another file f2
+ line = f1.readline()
+ f2.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped=lineStripped.rstrip()
+
+ #add the one-time Web service invocation tool under Web Service Tools section
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ f2.write(' \n')
+
+ #copy rest of tool_conf.xml file f2
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ##close f1 and f2
+ f1.close()
+ f2.close()
+
+ ##interchange modes of f1 and f2
+ f1=open(galaxyhome+'/tool_conf.xml','w')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+ f2.seek(0,0)
+
+ line = f2.readline()
+ f1.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped = lineStripped.rstrip()
+
+ ##write entire f2 into f1 (reverse roles)
+ while not lineStripped == '':
+ line = f2.readline()
+ f1.write(line)
+ lineStripped = line.lstrip()
+ lineStripped = lineStripped.rstrip()
+ else:
+ print line
+
+ f1.close()
+ f2.close()
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,75 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Opens the toolconf.xml file and then adds the tool that is paased to it under Web Service tools
+'''
+
+__author__=""
+
+class editToolConfig1(object):
+ def addTool(self,toolName):
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ f1=open(galaxyhome+'/tool_conf.xml','r')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+ f2.seek(0,0)
+
+ #copy everything from tool_conf.xml upto the section 'Web Service Tools' into another file f2
+ line = f1.readline()
+ f2.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped=lineStripped.rstrip()
+
+ #add the one-time Web service invocation tool under Web Service Tools section
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ f2.write(' \n')
+
+ #copy rest of tool_conf.xml file f2
+ while not lineStripped == '':
+ line = f1.readline()
+ f2.write(line)
+ lineStripped = line.lstrip()
+ lineStripped=lineStripped.rstrip()
+ else:
+ print line
+
+ ##close f1 and f2
+ f1.close()
+ f2.close()
+
+ ##interchange modes of f1 and f2
+ f1=open(galaxyhome+'/tool_conf.xml','w')
+ f1.seek(0,0)
+ f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+ f2.seek(0,0)
+
+ line = f2.readline()
+ f1.write(line)
+
+ lineStripped=line.lstrip()
+ lineStripped = lineStripped.rstrip()
+
+ ##write entire f2 into f1 (reverse roles)
+ while not lineStripped == '':
+ line = f2.readline()
+ f1.write(line)
+ lineStripped = line.lstrip()
+ lineStripped = lineStripped.rstrip()
+ else:
+ print line
+
+ f1.close()
+ f2.close()
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,864 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import platform
+
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import os.path
+ import sys
+ import string
+ from edit_tool_conf import *
+ from clientGenerator.msHandler import *
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from clientGenerator.paramConverter import *
+
+
+class ClientGenerator(object):
+
+ #instantiate a client for invocation of the selected method of a Web service in workflows
+ def __init__(self,webservice,operation,outputfile,servicetype):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ self.operation = operation
+ self.webservice = webservice
+ #self.inputs = outputfile
+ self.outputfile = outputfile
+ self.galaxyhome=os.environ.get('GALAXY_HOME')
+ self.clientfile = ''
+ self.servicetype = servicetype
+ if self.servicetype == 'SOAP':
+ wLoad=wsdlLoader()
+ sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ print 'Client file : ',self.clientfile
+ self.paramelement = None
+
+ #replace '__tilda__' with '~'
+ #if(url.find('__tilda__')>-1):
+ # ulist = url.split('__tilda__')
+ #url = '~'.join(ulist)
+ #self.url = url
+
+ '''
+ Checks if a particular paramter is reuired or not. This is used only for soap web services.
+ '''
+ def isRequired(self,param):
+ #j=0
+ #for param in inputl:
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+ test = MessageHandler()
+ required = False
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ #root = test.getParameter(self.msinstance(),plist[0])
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')):
+ required = False
+ return False
+ else:
+ if not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(paramelement,'nillable'):
+ required = False
+ return False
+ return required
+
+
+ #replace '**' with ' '
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ '''
+ Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+ Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+ if it same as the opearation and web service. As the code is dependent on description of the toool xml file, any change in the description tag
+ of the tool xml file can impact this function.
+ '''
+ def isToolPresent(self):
+
+ f = open(self.galaxyhome+'/tool_conf.xml','r')
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != '':
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != ' ':
+ if linestripped.find('<') >-1:
+ toolparts = linestripped.split('"')
+ print '\ntoolparts are : ',toolparts
+ f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+ line1 = f1.readline()
+ while not line1.find('') >-1:
+ line1 = f1.readline()
+
+ linestripped1 = line1.lstrip()
+ linestripped1 = linestripped1.rstrip()
+ descriptionparts=linestripped1.split(' ')
+ print '\nOperation : ',descriptionparts
+ service = ''
+ if(self.servicetype == 'SOAP'):
+ service = self.clientfile
+ elif self.servicetype == 'REST':
+ service = self.webservice
+ print 'Service : ',service
+ print 'operation : ',self.operation
+ if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+ f.close()
+ f1.close()
+ return True
+ f1.close()
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ f.close()
+ return False
+
+
+
+ def wsdlClient(self):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+
+ wLoad=wsdlLoader()
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ webservice = clientfile
+ outputfile=open(self.outputfile,'w')
+ test = ClientCreator()
+ print 'inputs of '+self.operation+':\n'
+ inputs= test.opname2inputs(self.operation,webservice)
+ inputl = nested2flatDict(inputs)
+ inputlist = inputl.keys()
+ #noOfInputs=inputlist.count()
+ print '*',inputs,'\n'
+ count =0
+ if (len(inputs)==0):
+ inputs={' ':' '}
+ #inputlist=inputs.keys()
+ for i in inputlist:
+ if count==0:
+ outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+ else:
+ outputfile.write(i+'\n')
+ count=count+1
+
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+ clientCountFile.close()
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for operation : '+self.operation+' , Web service : '+webservice+' \n')
+
+
+ #clientXml.write(' \n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
+
+ test = MessageHandler()
+
+ #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+
+ clientXml.write(' \n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n' +webservice+ ' '+self.operation+'\n')
+ ##write such that the parameters passed to client_1.py(change name to clientName.py) are dependent on a for loop
+
+ # The paramter having |$| means that it has an elemnet with maxoccurs='unbounded' (i.e. array of strings)
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +webservice+' '+self.operation+'\n')
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ for param in inputl:
+ if not self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+
+ clientXml.write(' #end if\n')
+
+ clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ clientXml.write(' \n')
+ # clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n \n \n ')
+ j=j+1
+
+
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in inputl:
+ if not self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+
+ clientXml.write('\n\n \n Param value will be taken from previous step \n User will enter the param value \n\n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write('\n \n \n \n')
+ j=j+1
+
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+ clientXml.write(' \n')
+ paramtype = None
+ for param in inputl:
+ if self.isRequired(param):
+ if isinstance(self.paramelement,ZSI.TC.String):
+ paramtype = 'String'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+ paramtype = 'Floating point'
+ elif isinstance(self.paramelement,ZSI.TC.Boolean):
+ paramtype = 'Boolean'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+ paramtype = 'Integer'
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')
+
+
+ clientXml.write(' \n ')
+
+# clientXml.write(' \n')
+
+ # j=0
+ # for param in params:
+ # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ # clientXml.write(' \n')
+ # clientXml.write('')
+ clientXml.close()
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+
+ def wadlClient(self):
+
+ ##parse wadl
+ pkg=JPackage('lsdis')
+ urlToPass=java.net.URL(self.webservice)
+ wadlUrl = self.webservice
+
+ webserviceId = ''#self.operation
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+
+ #invoke the WADL parser packaged with this tool.
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ a= str(self.webservice).split('/')
+ wadlnamelist = a[len(a)-1].split(".")
+ if len(wadlnamelist)==1:
+ wadlnamelist=a[len(a)-1].split('?')
+ print wadlnamelist
+
+ wadlname=wadlnamelist[0]
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice+'\t')
+ f.write(resUrl+'\t')
+
+ #get parameters for the selected method of the Web service
+ i=0
+ for method in methods:
+ x = str(method.getId())
+ y = str(urls.get(i))
+ webserviceId = x
+ if y == resUrl :
+ params = method.getRequest().getParams()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ methodname = resUrl.split('/')
+
+ #./workflowclients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ #include the count in the tool's name and id to uniquely identify it.
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ #create a new xml file under ./workflowclients/
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ #write the tool id, name and description
+ clientXml.write('\n')
+ clientXml.write(' Client for method : '+self.operation+' , Web service : '+self.webservice+' \n')
+
+ #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+ clientXml.write(' \n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n ' +resUrl+'\n')
+
+
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +resUrl+'\n')
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ for param in params:
+ if not param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #end if\n')
+ clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ #create a param for each required parameter described in the WADL. Check if defaults are specified. Create param such that
+ #it can either be given a value manually or the value can be taken from a previous step.
+ j=0
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+ j=j+1
+
+ #create a conditional param for each optional parameter described in the WADL. Again the param can be given a value manually or the value can be taken from
+ #a previous step.
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in params:
+ if not param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+
+ clientXml.write('\n\n \n Param value will be taken from previous step \n User will enter the param value \n\n ')
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write('\n \n \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n \n \n')
+
+ #write information about each parameter in the help section
+ clientXml.write(' \n')
+ clientXml.write('Replace white space with ** in all parameter values\n')
+
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')
+
+ clientXml.write(' \n ')
+
+ #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Workflow Tools' section.
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+
+
+
+ def sawadlClient(self):
+ ##parse sawadl
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+ pkgModel =JPackage('org.semanticweb.owlapi.model')
+ pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+ pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+
+ DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+
+ sawadlUrl = self.webservice
+
+ webserviceId = ''#self.inputs
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ annotationSet = []
+
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(sawadlUrl)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ IRI = pkgModel.IRI
+ OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+ OWLManager = pkgApiBinding.OWLManager
+ OWLLiteral = pkgModel.OWLLiteral
+ owlOntManager = OWLManager.createOWLOntologyManager()
+ ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+ dataFactory = owlOntManager.getOWLDataFactory()
+ propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice+'\t')
+ f.write(resUrl+'\t')
+
+ i=0
+ for method in methods:
+ x = str(method.getName())
+ y = str(urls.get(i))
+ webserviceId = x
+ #if x == webserviceId :
+ if y == resUrl :
+ params = method.getRequest().getParamList()
+ break
+ i=i+1
+
+
+ f.write(webserviceId)
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n #client_1.py \n'+' $output \n $servicetype\n $url\n $method\n ' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n#if $source'+str(j)+'.source'+str(j)+'_source=="user" $source'+str(j)+'.user_param'+str(j)+' #else $source' + str(j) + '.cached_param' + str(j)+' #end if\n')
+ j=j+1
+ clientXml.write('#if $cond_source.optional_param_source=="yes"')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n#if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user" $cond_source.source'+str(j)+'.user_param'+str(j)+' #else $cond_source.source' + str(j) + '.cached_param' + str(j)+' #end if\n')
+ j=j+1
+
+ clientXml.write('#else \n#end if\n')
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+
+ clientXml.write(' \n')
+ clientXml.write(' ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())
+
+ modelRef = sawPD.getCompleteModelReference(param)
+ if not modelRef is None:
+ paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+ annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+ for annotation in annotationSet:
+ if isinstance(annotation.getValue(),OWLLiteral):
+ val = annotation.getValue()
+ if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+ print 'val.getLiteral()=' + val.getLiteral()
+ clientXml.write(', description from ontology is "' + val.getLiteral()+'"')
+ break
+ clientXml.write('\n')
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+
+ def wsdlRestClient(self):
+ ##parse wadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ if machine == 'x86_64' :
+ print 'a'
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ print 'b'
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ print 'c'
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('lsdis')
+ wsdlUrl = self.webservice
+
+ webserviceId = ''#self.methodName
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ paramTypes = []
+
+ WSDLParserDriver =pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(wsdlUrl)
+ methods = wPD.getCompleteMethodList()
+ urls = wPD.getUrl()
+
+ f=open(self.outputfile,'w')
+ f.write(wsdlUrl+'\t')
+ f.write(resUrl+'\t')
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName().getLocalPart())
+ y = str(url.get(i))
+ webserviceId = x
+ if y == resUrl :
+ wPD.getParameters(x)
+ f.write('method matched')
+ paramTypes = wPD.getParamTypeList()
+ params = wPD.getParamList()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_RESTSOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n client_1.py \n'+' $output \n $servicetype\n $url \n $method' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+ j=0
+ for param in params:
+ clientXml.write(' '+self.formatString(param)+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+ clientXml.write(' ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in params:
+ clientXml.write(' \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+
+ j=0
+ for param in params:
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+if __name__ == "__main__":
+
+ test = ClientGenerator('http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl','genesbygenetype',None,'REST')
+ present = test.isToolPresent()
+# required = test.isRequired('_parameters|_sequence')
+ print 'Tool is present : ',present
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,864 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import platform
+
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import os.path
+ import sys
+ import string
+ from edit_tool_conf import *
+ from clientGenerator.msHandler import *
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from clientGenerator.paramConverter import *
+
+
+class ClientGenerator(object):
+
+ #instantiate a client for invocation of the selected method of a Web service in workflows
+ def __init__(self,webservice,operation,outputfile,servicetype):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ self.operation = operation
+ self.webservice = webservice
+ #self.inputs = outputfile
+ self.outputfile = outputfile
+ self.galaxyhome=os.environ.get('GALAXY_HOME')
+ self.clientfile = ''
+ self.servicetype = servicetype
+ if self.servicetype == 'SOAP':
+ wLoad=wsdlLoader()
+ sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ print 'Client file : ',self.clientfile
+ self.paramelement = None
+
+ #replace '__tilda__' with '~'
+ #if(url.find('__tilda__')>-1):
+ # ulist = url.split('__tilda__')
+ #url = '~'.join(ulist)
+ #self.url = url
+
+ '''
+ Checks if a particular paramter is reuired or not. This is used only for soap web services.
+ '''
+ def isRequired(self,param):
+ #j=0
+ #for param in inputl:
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+ test = MessageHandler()
+ required = False
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ #root = test.getParameter(self.msinstance(),plist[0])
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')):
+ required = False
+ return False
+ else:
+ if not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(paramelement,'nillable'):
+ required = False
+ return False
+ return required
+
+
+ #replace '**' with ' '
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ '''
+ Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+ Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+ if it same as the opearation and web service. As the code is dependent on description of the toool xml file, any change in the description tag
+ of the tool xml file can impact this function.
+ '''
+ def isToolPresent(self):
+
+ f = open(self.galaxyhome+'/tool_conf.xml','r')
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != '':
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != ' ':
+ if linestripped.find('<') >-1:
+ toolparts = linestripped.split('"')
+ print '\ntoolparts are : ',toolparts
+ f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+ line1 = f1.readline()
+ while not line1.find('') >-1:
+ line1 = f1.readline()
+
+ linestripped1 = line1.lstrip()
+ linestripped1 = linestripped1.rstrip()
+ descriptionparts=linestripped1.split(' ')
+ print '\nOperation : ',descriptionparts
+ service = ''
+ if(self.servicetype == 'SOAP'):
+ service = self.clientfile
+ elif self.servicetype == 'REST':
+ service = self.webservice
+ print 'Service : ',service
+ print 'operation : ',self.operation
+ if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+ f.close()
+ f1.close()
+ return True
+ f1.close()
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ f.close()
+ return False
+
+
+
+ def wsdlClient(self):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+
+ wLoad=wsdlLoader()
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ webservice = clientfile
+ outputfile=open(self.outputfile,'w')
+ test = ClientCreator()
+ print 'inputs of '+self.operation+':\n'
+ inputs= test.opname2inputs(self.operation,webservice)
+ inputl = nested2flatDict(inputs)
+ inputlist = inputl.keys()
+ #noOfInputs=inputlist.count()
+ print '*',inputs,'\n'
+ count =0
+ if (len(inputs)==0):
+ inputs={' ':' '}
+ #inputlist=inputs.keys()
+ for i in inputlist:
+ if count==0:
+ outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+ else:
+ outputfile.write(i+'\n')
+ count=count+1
+
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+ clientCountFile.close()
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for operation : '+self.operation+' , Web service : '+webservice+' \n')
+
+
+ #clientXml.write(' \n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
+
+ test = MessageHandler()
+
+ #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+
+ clientXml.write(' \n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n' +webservice+ ' '+self.operation+'\n')
+ ##write such that the parameters passed to client_1.py(change name to clientName.py) are dependent on a for loop
+
+ # The paramter having |$| means that it has an elemnet with maxoccurs='unbounded' (i.e. array of strings)
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +webservice+' '+self.operation+'\n')
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ for param in inputl:
+ if not self.isRequired(param):
+ clientXml.write(' "'+param+'"\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+
+ clientXml.write(' #end if\n')
+
+ clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ clientXml.write(' \n')
+ # clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n \n \n ')
+ j=j+1
+
+
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in inputl:
+ if not self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+
+ clientXml.write('\n\n \n Param value will be taken from previous step \n User will enter the param value \n\n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write('\n \n \n \n')
+ j=j+1
+
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+ clientXml.write(' \n')
+ paramtype = None
+ for param in inputl:
+ if self.isRequired(param):
+ if isinstance(self.paramelement,ZSI.TC.String):
+ paramtype = 'String'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+ paramtype = 'Floating point'
+ elif isinstance(self.paramelement,ZSI.TC.Boolean):
+ paramtype = 'Boolean'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+ paramtype = 'Integer'
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')
+
+
+ clientXml.write(' \n ')
+
+# clientXml.write(' \n')
+
+ # j=0
+ # for param in params:
+ # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ # clientXml.write(' \n')
+ # clientXml.write('')
+ clientXml.close()
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+
+ def wadlClient(self):
+
+ ##parse wadl
+ pkg=JPackage('lsdis')
+ urlToPass=java.net.URL(self.webservice)
+ wadlUrl = self.webservice
+
+ webserviceId = ''#self.operation
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+
+ #invoke the WADL parser packaged with this tool.
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ a= str(self.webservice).split('/')
+ wadlnamelist = a[len(a)-1].split(".")
+ if len(wadlnamelist)==1:
+ wadlnamelist=a[len(a)-1].split('?')
+ print wadlnamelist
+
+ wadlname=wadlnamelist[0]
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice+'\t')
+ f.write(resUrl+'\t')
+
+ #get parameters for the selected method of the Web service
+ i=0
+ for method in methods:
+ x = str(method.getId())
+ y = str(urls.get(i))
+ webserviceId = x
+ if y == resUrl :
+ params = method.getRequest().getParams()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ methodname = resUrl.split('/')
+
+ #./workflowclients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ #include the count in the tool's name and id to uniquely identify it.
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ #create a new xml file under ./workflowclients/
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ #write the tool id, name and description
+ clientXml.write('\n')
+ clientXml.write(' Client for method : '+self.operation+' , Web service : '+self.webservice+' \n')
+
+ #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+ clientXml.write(' \n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n ' +resUrl+'\n')
+
+
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +resUrl+'\n')
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ for param in params:
+ if not param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName())+'\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
+ j=j+1
+
+ clientXml.write(' #end if\n')
+ clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ #create a param for each required parameter described in the WADL. Check if defaults are specified. Create param such that
+ #it can either be given a value manually or the value can be taken from a previous step.
+ j=0
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+ j=j+1
+
+ #create a conditional param for each optional parameter described in the WADL. Again the param can be given a value manually or the value can be taken from
+ #a previous step.
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in params:
+ if not param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+
+ clientXml.write('\n\n \n Param value will be taken from previous step \n User will enter the param value \n\n ')
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+ clientXml.write('\n \n \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n \n \n')
+
+ #write information about each parameter in the help section
+ clientXml.write(' \n')
+ clientXml.write('Replace white space with ** in all parameter values\n')
+
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')
+
+ clientXml.write(' \n ')
+
+ #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Workflow Tools' section.
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+
+
+
+ def sawadlClient(self):
+ ##parse sawadl
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+ pkgModel =JPackage('org.semanticweb.owlapi.model')
+ pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+ pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+
+ DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+
+ sawadlUrl = self.webservice
+
+ webserviceId = ''#self.inputs
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ annotationSet = []
+
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(sawadlUrl)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ IRI = pkgModel.IRI
+ OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+ OWLManager = pkgApiBinding.OWLManager
+ OWLLiteral = pkgModel.OWLLiteral
+ owlOntManager = OWLManager.createOWLOntologyManager()
+ ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+ dataFactory = owlOntManager.getOWLDataFactory()
+ propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice+'\t')
+ f.write(resUrl+'\t')
+
+ i=0
+ for method in methods:
+ x = str(method.getName())
+ y = str(urls.get(i))
+ webserviceId = x
+ #if x == webserviceId :
+ if y == resUrl :
+ params = method.getRequest().getParamList()
+ break
+ i=i+1
+
+
+ f.write(webserviceId)
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n #client_1.py \n'+' $output \n $servicetype\n $url\n $method\n ' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n#if $source'+str(j)+'.source'+str(j)+'_source=="user" $source'+str(j)+'.user_param'+str(j)+' #else $source' + str(j) + '.cached_param' + str(j)+' #end if\n')
+ j=j+1
+ clientXml.write('#if $cond_source.optional_param_source=="yes"')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n#if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user" $cond_source.source'+str(j)+'.user_param'+str(j)+' #else $cond_source.source' + str(j) + '.cached_param' + str(j)+' #end if\n')
+ j=j+1
+
+ clientXml.write('#else \n#end if\n')
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+
+ clientXml.write(' \n')
+ clientXml.write(' ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+
+ clientXml.write(' \n \n no \n yes \n \n \n \n \n')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write('\n \n Param value will be taken from previous step \n User will enter the param value \n \n \n')
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+ clientXml.write(' \n')
+ clientXml.write(' \n \n ')
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())
+
+ modelRef = sawPD.getCompleteModelReference(param)
+ if not modelRef is None:
+ paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+ annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+ for annotation in annotationSet:
+ if isinstance(annotation.getValue(),OWLLiteral):
+ val = annotation.getValue()
+ if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+ print 'val.getLiteral()=' + val.getLiteral()
+ clientXml.write(', description from ontology is "' + val.getLiteral()+'"')
+ break
+ clientXml.write('\n')
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+
+ def wsdlRestClient(self):
+ ##parse wadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ if machine == 'x86_64' :
+ print 'a'
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ print 'b'
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ print 'c'
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('lsdis')
+ wsdlUrl = self.webservice
+
+ webserviceId = ''#self.methodName
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ paramTypes = []
+
+ WSDLParserDriver =pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(wsdlUrl)
+ methods = wPD.getCompleteMethodList()
+ urls = wPD.getUrl()
+
+ f=open(self.outputfile,'w')
+ f.write(wsdlUrl+'\t')
+ f.write(resUrl+'\t')
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName().getLocalPart())
+ y = str(url.get(i))
+ webserviceId = x
+ if y == resUrl :
+ wPD.getParameters(x)
+ f.write('method matched')
+ paramTypes = wPD.getParamTypeList()
+ params = wPD.getParamList()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'workflowclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_RESTSOAP/workflowclients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n client_1.py \n'+' $output \n $servicetype\n $url \n $method' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+ j=0
+ for param in params:
+ clientXml.write(' '+self.formatString(param)+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+ clientXml.write(' ')
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in params:
+ clientXml.write(' \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+
+ j=0
+ for param in params:
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+if __name__ == "__main__":
+
+ test = ClientGenerator('http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl','genesbygenetype',None,'REST')
+ present = test.isToolPresent()
+# required = test.isRequired('_parameters|_sequence')
+ print 'Tool is present : ',present
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,919 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import platform
+
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import os.path
+ import sys
+ import string
+ from edit_tool_conf1 import *
+ from clientGenerator.msHandler import *
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from clientGenerator.paramConverter import *
+
+__author__=""
+
+#generates client for a web service to be used as standalone
+class ClientGenerator1(object):
+
+ def __init__(self,webservice,operation,outputfile,servicetype):#,url):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ self.webservice = webservice
+ self.operation = operation
+ self.inputs = outputfile
+ self.outputfile = outputfile
+ #self.url = url
+
+ self.servicetype = servicetype
+ self.galaxyhome=os.environ.get('GALAXY_HOME')
+ self.clientfile = ''
+ if self.servicetype == 'SOAP':
+ wLoad=wsdlLoader()
+ sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ print 'Client file : ',self.clientfile
+ self.paramelement = None
+
+
+
+ ''' Replaces space (' ') with '**' in the given string '''
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ def isRequired(self,param):
+ #j=0
+ #for param in inputl:
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+ test = MessageHandler()
+ required = False
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ #root = test.getParameter(self.msinstance(),plist[0])
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')):
+ required = False
+ return False
+ else:
+ if not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(paramelement,'nillable'):
+ required = False
+ return False
+ return required
+
+
+ #replace '**' with ' '
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ '''
+ Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+ Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+ if it same as the opearation and web service. As the code is dependent on description of the toool xml fie, any change in the description
+ of the tool xml file can impact this function.
+ '''
+ def isToolPresent(self):
+
+ f = open(self.galaxyhome+'/tool_conf.xml','r')
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != '':
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != ' ':
+ if linestripped.find('<') >-1:
+ toolparts = linestripped.split('"')
+ print '\ntoolparts are : ',toolparts
+ f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+ line1 = f1.readline()
+ while not line1.find('') >-1:
+ line1 = f1.readline()
+
+ linestripped1 = line1.lstrip()
+ linestripped1 = linestripped1.rstrip()
+ descriptionparts=linestripped1.split(' ')
+ print '\nOperation : ',descriptionparts
+ service = ''
+ if(self.servicetype == 'SOAP'):
+ service = self.clientfile
+ elif self.servicetype == 'REST':
+ service = self.webservice
+ if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+ f.close()
+ f1.close()
+ return True
+ f1.close()
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ f.close()
+ return False
+
+
+ '''
+ Creates a client file2 (xml file) for the given opertion in the SOAP web service
+ This operation is invokes standalone and is cannot be used in workflows
+ Then invokes another operation which adds this client file (tool) to the toolconfig.xml
+ under 'Web Service Tools'
+
+ '''
+
+ def wsdlClient(self):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ wLoad=wsdlLoader()
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a= str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ webservice = clientfile#sys.argv[4]
+ #operation = sys.argv[3]
+ outputfile=open(self.outputfile,'w')
+ test = ClientCreator()
+ inputs= test.opname2inputs(self.operation,webservice)
+ inputl = nested2flatDict(inputs)
+ inputlist = inputl.keys()
+ #noOfInputs=inputlist.count()
+ count =0
+ if (len(inputs)==0):
+ inputs={' ':' '}
+ #inputlist=inputs.keys()
+ for i in inputlist:
+ if count==0:
+ outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+ else:
+ outputfile.write(i+'\n')
+ count=count+1
+
+
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+ clientCountFile.close()
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for operation : '+self.operation+' , Web service : '+webservice+' \n')
+
+ #Only Required parameters
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +webservice+' '+self.operation)
+
+ #clientXml.write(' \n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+ test = MessageHandler()
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+ #Both Required and optional paramters
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +webservice+' '+self.operation+'\n')
+
+ '''
+ Required parameters - If the parameter is complex type (tree structure) then the the parameter is required
+ only if both the root node and the leaf node are required (i.e. both root and leaf have attribute nillable as false)
+ '''
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+ '''
+ Optional parameters - If the parameter is complex type (tree structure) then the the paramter is optional
+ if its root element is optional (i.e. root has attribute nillable as true) even if the leaf node (element)
+ is required (i.e. leaf element has attribute nillable as false)
+ '''
+ for param in inputl:
+ if not self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+#params for array type
+# for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if getattr(paramelement,'nillable')==True:
+ # if string.find(param,"|0|")>-1:
+ # ele = string(param,"|0|")
+ # for param in self.inputs:
+
+
+ # clientXml.write(' "'+param+'"')
+ # clientXml.write(' $cond_source.param' + str(j))
+ # j=j+1
+
+ clientXml.write(' #end if \n \n')
+
+
+# for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+ # clientXml.write(' "'+param+'"\n')
+ # clientXml.write(' $param'+str(j)+'\n')
+ # j=j+1
+
+
+ #clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+ clientXml.write(' \n')
+ j=j+1
+
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+
+ for param in inputl:
+ if not self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write(' \n ')
+
+# j=0
+ # for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if not getattr(paramelement,'nillable'):
+ # pName = getattr(paramelement,'pname')#param.getName()
+ # clientXml.write(' \n')
+ # j=j+1
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ paramtype = None
+ for param in inputl:
+ if self.isRequired(param):
+ if isinstance(self.paramelement,ZSI.TC.String):
+ paramtype = 'String'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+ paramtype = 'Floating point'
+ elif isinstance(self.paramelement,ZSI.TC.Boolean):
+ paramtype = 'Boolean'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+ paramtype = 'Integer'
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')
+
+
+
+
+ clientXml.write(' \n ')
+
+# clientXml.write(' \n')
+
+ # j=0
+ # for param in params:
+ # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ # clientXml.write(' \n')
+ # clientXml.write('')
+ clientXml.close()
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+ def wadlClient(self):
+ ##parse wadl
+ pkg=JPackage('lsdis')
+ urlToPass=java.net.URL(self.webservice)
+ wadlUrl = self.webservice
+
+ webserviceId = ''#self.operation
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ docs = []
+
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice)
+ f.write('\n'+ resUrl)
+
+ a= str(self.webservice).split('/')
+ wadlnamelist = a[len(a)-1].split(".")
+ if len(wadlnamelist)==1:
+ wadlnamelist=a[len(a)-1].split('?')
+ print wadlnamelist
+
+ wadlname=wadlnamelist[0]
+
+
+ #get parameters for the selected method of the Web service
+ i=0
+ for method in methods:
+ x = str(method.getId())
+ y = str(urls.get(i))
+ webserviceId = x
+ #if x==webserviceId:
+ if y == resUrl :
+ params = method.getRequest().getParams()
+ break
+ i=i+1
+
+ f.write('\n'+webserviceId)
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ methodname = resUrl.split('/')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ #include the count in the tool's name and id to uniquely identify it.
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ #create a new xml file under ./clients/
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ #write the tool id, name and description
+ clientXml.write('\n')
+ clientXml.write(' Client for method : '+self.operation+' , Web service : '+self.webservice+' \n')
+
+ #the one-time invocation tool/client for a REST Web service invokes ./clients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+
+ j=0
+
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+
+ for param in params:
+ if not param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $cond_source.param' + str(j))
+ j=j+1
+ clientXml.write(' #end if \n \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' ')
+
+ #create a param for each required parameter described in the WADL. Check if defaults and options are specified in the WADL
+ j=0
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+ #create a conditional param for each optional parameter described in the WADL.
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+ for param in params:
+ if not param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write(' \n ')
+ clientXml.write(' \n \n \n \n')
+
+ #write information about each parameter in the help section
+ clientXml.write(' \n')
+
+ clientXml.write('Replace white space with ** in all parameter values\n')
+
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')
+
+ clientXml.write(' \n ')
+
+
+ #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Tools' section.
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+ def sawadlClient(self):
+ ##parse sawadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/'
+ machine = platform.machine()
+
+ #if machine == 'x86_64' :
+ # print 'a'
+ # startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #elif machine == 'i686' :
+ # print 'b'
+ # startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #elif machine == 'sun4u' :
+ # startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #else :
+ # print 'c'
+ # System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+ pkgModel =JPackage('org.semanticweb.owlapi.model')
+ pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+ pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+
+ DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+
+ sawadlUrl = self.webservice
+
+ webserviceId = ''#self.methodName
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ annotationSet = []
+
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(sawadlUrl)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ IRI = pkgModel.IRI
+ OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+ OWLManager = pkgApiBinding.OWLManager
+ OWLLiteral = pkgModel.OWLLiteral
+ owlOntManager = OWLManager.createOWLOntologyManager()
+ ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+ dataFactory = owlOntManager.getOWLDataFactory()
+ propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+ f=open(self.outputfile,'w')
+ f.write(sawadlUrl)
+ f.write(resUrl+'\t')
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName())
+ y = str(urls.get(i))
+ #if x == webserviceId :
+ webserviceId = x
+ if y == resUrl :
+ params = method.getRequest().getParamList()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $cond_source.param' + str(j))
+ j=j+1
+
+ clientXml.write('#end if \n \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input param servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ cleintXml.write(' ')
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())
+
+ modelRef = sawPD.getCompleteModelReference(param)
+ if not modelRef is None:
+ paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+ annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+ for annotation in annotationSet:
+ if isinstance(annotation.getValue(),OWLLiteral):
+ val = annotation.getValue()
+ if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+ print 'val.getLiteral()=' + val.getLiteral()
+ clientXml.write(', description from ontology is "' + val.getLiteral()+'"')
+ break
+ clientXml.write('\n')
+ clientXml.write(' \n ')
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+ def wsdlRESTClient(self):
+ ##parse wadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ if machine == 'x86_64' :
+ print 'a'
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ print 'b'
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ print 'c'
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('lsdis')
+ wsdlUrl = self.webserviceId
+
+ webserviceId = ''#self.methodName
+ resUrl = self.resourceName
+
+ urls = []
+ methods = []
+ params = []
+ paramTypes = []
+
+ WSDLParserDriver =pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(wsdlUrl)
+ methods = wPD.getCompleteMethodList()
+ urls = wPD.getUrl()
+
+ f=open(self.Ofile,'w')
+ f.write(wsdlUrl)
+ f.write('\n'+ resUrl)
+ f.write('\n'+webserviceId)
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName().getLocalPart())
+ y = str(url.get(i))
+ webserviceId = x
+ if y == resUrl :
+ wPD.getParameters(x)
+ f.write('method matched')
+ paramTypes = wPD.getParamTypeList()
+ params = wPD.getParamList()
+ break
+ i=i+1
+
+
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n client_1.py \n'+' $output \n $servicetype\n ' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+ j=0
+ for param in params:
+ clientXml.write(' '+self.formatString(param)+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+ cleintXml.write(' ')
+
+ j=0
+ for param in params:
+ clientXml.write(' \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+
+ clientXml.write('** Replace white with ** in all parameter values **\n')
+
+ j=0
+ for param in params:
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+# Addedfor testing purpose
+
+if __name__ == "__main__":
+
+ test = ClientGenerator1('http://www.cs.uga.edu/~guttula/wublast.wsdl','run',None,'SOAP')
+ present = test.isToolPresent()
+ required = test.isRequired('_parameters|_sequence')
+ print 'required : ',required
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,919 @@
+'''
+@author Chaitanya Guttula, Sumedha Ganjoo
+@see LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import platform
+
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import os.path
+ import sys
+ import string
+ from edit_tool_conf1 import *
+ from clientGenerator.msHandler import *
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from clientGenerator.paramConverter import *
+
+__author__=""
+
+#generates client for a web service to be used as standalone
+class ClientGenerator1(object):
+
+ def __init__(self,webservice,operation,outputfile,servicetype):#,url):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ self.webservice = webservice
+ self.operation = operation
+ self.inputs = outputfile
+ self.outputfile = outputfile
+ #self.url = url
+
+ self.servicetype = servicetype
+ self.galaxyhome=os.environ.get('GALAXY_HOME')
+ self.clientfile = ''
+ if self.servicetype == 'SOAP':
+ wLoad=wsdlLoader()
+ sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a = str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ print 'Client file : ',self.clientfile
+ self.paramelement = None
+
+
+
+ ''' Replaces space (' ') with '**' in the given string '''
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ def isRequired(self,param):
+ #j=0
+ #for param in inputl:
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+ test = MessageHandler()
+ required = False
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ #root = test.getParameter(self.msinstance(),plist[0])
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')):
+ required = False
+ return False
+ else:
+ if not getattr(paramelement,'nillable'):
+ required = True
+ return True
+ elif getattr(paramelement,'nillable'):
+ required = False
+ return False
+ return required
+
+
+ #replace '**' with ' '
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ '''
+ Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+ Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+ if it same as the opearation and web service. As the code is dependent on description of the toool xml fie, any change in the description
+ of the tool xml file can impact this function.
+ '''
+ def isToolPresent(self):
+
+ f = open(self.galaxyhome+'/tool_conf.xml','r')
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != '':
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ while linestripped != ' ':
+ if linestripped.find('<') >-1:
+ toolparts = linestripped.split('"')
+ print '\ntoolparts are : ',toolparts
+ f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+ line1 = f1.readline()
+ while not line1.find('') >-1:
+ line1 = f1.readline()
+
+ linestripped1 = line1.lstrip()
+ linestripped1 = linestripped1.rstrip()
+ descriptionparts=linestripped1.split(' ')
+ print '\nOperation : ',descriptionparts
+ service = ''
+ if(self.servicetype == 'SOAP'):
+ service = self.clientfile
+ elif self.servicetype == 'REST':
+ service = self.webservice
+ if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+ f.close()
+ f1.close()
+ return True
+ f1.close()
+ line = f.readline()
+ linestripped = line.lstrip()
+ linestripped = linestripped.rstrip()
+
+ f.close()
+ return False
+
+
+ '''
+ Creates a client file2 (xml file) for the given opertion in the SOAP web service
+ This operation is invokes standalone and is cannot be used in workflows
+ Then invokes another operation which adds this client file (tool) to the toolconfig.xml
+ under 'Web Service Tools'
+
+ '''
+
+ def wsdlClient(self):
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ wLoad=wsdlLoader()
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+
+ a= str(self.webservice).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+
+ webservice = clientfile#sys.argv[4]
+ #operation = sys.argv[3]
+ outputfile=open(self.outputfile,'w')
+ test = ClientCreator()
+ inputs= test.opname2inputs(self.operation,webservice)
+ inputl = nested2flatDict(inputs)
+ inputlist = inputl.keys()
+ #noOfInputs=inputlist.count()
+ count =0
+ if (len(inputs)==0):
+ inputs={' ':' '}
+ #inputlist=inputs.keys()
+ for i in inputlist:
+ if count==0:
+ outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+ else:
+ outputfile.write(i+'\n')
+ count=count+1
+
+
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+ clientCountFile.close()
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for operation : '+self.operation+' , Web service : '+webservice+' \n')
+
+ #Only Required parameters
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +webservice+' '+self.operation)
+
+ #clientXml.write(' \n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+ test = MessageHandler()
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+ #Both Required and optional paramters
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +webservice+' '+self.operation+'\n')
+
+ '''
+ Required parameters - If the parameter is complex type (tree structure) then the the parameter is required
+ only if both the root node and the leaf node are required (i.e. both root and leaf have attribute nillable as false)
+ '''
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+ '''
+ Optional parameters - If the parameter is complex type (tree structure) then the the paramter is optional
+ if its root element is optional (i.e. root has attribute nillable as true) even if the leaf node (element)
+ is required (i.e. leaf element has attribute nillable as false)
+ '''
+ for param in inputl:
+ if not self.isRequired(param):
+ clientXml.write(' "'+param+'"')
+ clientXml.write(' $param'+str(j))
+ j=j+1
+
+
+#params for array type
+# for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if getattr(paramelement,'nillable')==True:
+ # if string.find(param,"|0|")>-1:
+ # ele = string(param,"|0|")
+ # for param in self.inputs:
+
+
+ # clientXml.write(' "'+param+'"')
+ # clientXml.write(' $cond_source.param' + str(j))
+ # j=j+1
+
+ clientXml.write(' #end if \n \n')
+
+
+# for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+ # clientXml.write(' "'+param+'"\n')
+ # clientXml.write(' $param'+str(j)+'\n')
+ # j=j+1
+
+
+ #clientXml.write(' \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' \n')
+
+
+ j=0
+ for param in inputl:
+ if self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+ clientXml.write(' \n')
+ j=j+1
+
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+
+ for param in inputl:
+ if not self.isRequired(param):
+ pName = getattr(self.paramelement,'pname')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write(' \n ')
+
+# j=0
+ # for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if not getattr(paramelement,'nillable'):
+ # pName = getattr(paramelement,'pname')#param.getName()
+ # clientXml.write(' \n')
+ # j=j+1
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ paramtype = None
+ for param in inputl:
+ if self.isRequired(param):
+ if isinstance(self.paramelement,ZSI.TC.String):
+ paramtype = 'String'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+ paramtype = 'Floating point'
+ elif isinstance(self.paramelement,ZSI.TC.Boolean):
+ paramtype = 'Boolean'
+ elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+ paramtype = 'Integer'
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')
+
+
+
+
+ clientXml.write(' \n ')
+
+# clientXml.write(' \n')
+
+ # j=0
+ # for param in params:
+ # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ # clientXml.write(' \n')
+ # clientXml.write('')
+ clientXml.close()
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+ def wadlClient(self):
+ ##parse wadl
+ pkg=JPackage('lsdis')
+ urlToPass=java.net.URL(self.webservice)
+ wadlUrl = self.webservice
+
+ webserviceId = ''#self.operation
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ docs = []
+
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ #write into the output file information about the method and Web service to be invoked.
+ f=open(self.outputfile,'w')
+ f.write(self.webservice)
+ f.write('\n'+ resUrl)
+
+ a= str(self.webservice).split('/')
+ wadlnamelist = a[len(a)-1].split(".")
+ if len(wadlnamelist)==1:
+ wadlnamelist=a[len(a)-1].split('?')
+ print wadlnamelist
+
+ wadlname=wadlnamelist[0]
+
+
+ #get parameters for the selected method of the Web service
+ i=0
+ for method in methods:
+ x = str(method.getId())
+ y = str(urls.get(i))
+ webserviceId = x
+ #if x==webserviceId:
+ if y == resUrl :
+ params = method.getRequest().getParams()
+ break
+ i=i+1
+
+ f.write('\n'+webserviceId)
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ methodname = resUrl.split('/')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ #include the count in the tool's name and id to uniquely identify it.
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ #create a new xml file under ./clients/
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ #write the tool id, name and description
+ clientXml.write('\n')
+ clientXml.write(' Client for method : '+self.operation+' , Web service : '+self.webservice+' \n')
+
+ #the one-time invocation tool/client for a REST Web service invokes ./clients/client_1.py to invoke the Web service
+ #write the command tag to specify the arguments passed to this client_1.py
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+
+ j=0
+
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+ j=0
+ for param in params:
+ if param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+
+ for param in params:
+ if not param.isRequired():
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $cond_source.param' + str(j))
+ j=j+1
+ clientXml.write(' #end if \n \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ clientXml.write(' ')
+
+ #create a param for each required parameter described in the WADL. Check if defaults and options are specified in the WADL
+ j=0
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+ #create a conditional param for each optional parameter described in the WADL.
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+ for param in params:
+ if not param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ if param.getOptions().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptions():
+ clientXml.write(' '+option.getName()+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write(' \n ')
+ clientXml.write(' \n \n \n \n')
+
+ #write information about each parameter in the help section
+ clientXml.write(' \n')
+
+ clientXml.write('Replace white space with ** in all parameter values\n')
+
+ for param in params:
+ if param.isRequired():
+ pName = param.getName()
+ for doc in param.getDocs():
+ if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+ pName = doc.getInnerText()
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')
+
+ clientXml.write(' \n ')
+
+
+ #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Tools' section.
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+ def sawadlClient(self):
+ ##parse sawadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/'
+ machine = platform.machine()
+
+ #if machine == 'x86_64' :
+ # print 'a'
+ # startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #elif machine == 'i686' :
+ # print 'b'
+ # startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #elif machine == 'sun4u' :
+ # startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ #else :
+ # print 'c'
+ # System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+ pkgModel =JPackage('org.semanticweb.owlapi.model')
+ pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+ pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+
+ DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+
+ sawadlUrl = self.webservice
+
+ webserviceId = ''#self.methodName
+ resUrl = self.operation
+
+ urls = []
+ methods = []
+ params = []
+ annotationSet = []
+
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(sawadlUrl)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ IRI = pkgModel.IRI
+ OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+ OWLManager = pkgApiBinding.OWLManager
+ OWLLiteral = pkgModel.OWLLiteral
+ owlOntManager = OWLManager.createOWLOntologyManager()
+ ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+ dataFactory = owlOntManager.getOWLDataFactory()
+ propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+ f=open(self.outputfile,'w')
+ f.write(sawadlUrl)
+ f.write(resUrl+'\t')
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName())
+ y = str(urls.get(i))
+ #if x == webserviceId :
+ webserviceId = x
+ if y == resUrl :
+ params = method.getRequest().getParamList()
+ break
+ i=i+1
+
+ f.write(webserviceId)
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+ #read the count and increment it.
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName())+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+
+ clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $param' + str(j))
+ j=j+1
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ clientXml.write(' '+self.formatString(param.getName()))
+ clientXml.write(' $cond_source.param' + str(j))
+ j=j+1
+
+ clientXml.write('#end if \n \n')
+
+ #start writing inputs
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ ##The input param servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
+ clientXml.write(' \n')
+ cleintXml.write(' ')
+
+ j=0
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+
+ for param in params:
+ if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+ f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+ if param.getOptionvalue().size()==0:
+ clientXml.write(' \n')
+ j=j+1
+ else:
+ clientXml.write(' \n' )
+ for option in param.getOptionvalue():
+ clientXml.write(' '+option+' \n ')
+ clientXml.write(' \n')
+ j=j+1
+
+ clientXml.write(' \n \n')
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+ for param in params:
+ if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())
+
+ modelRef = sawPD.getCompleteModelReference(param)
+ if not modelRef is None:
+ paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+ annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+ for annotation in annotationSet:
+ if isinstance(annotation.getValue(),OWLLiteral):
+ val = annotation.getValue()
+ if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+ print 'val.getLiteral()=' + val.getLiteral()
+ clientXml.write(', description from ontology is "' + val.getLiteral()+'"')
+ break
+ clientXml.write('\n')
+ clientXml.write(' \n ')
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+ def wsdlRESTClient(self):
+ ##parse wadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ if machine == 'x86_64' :
+ print 'a'
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ print 'b'
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ print 'c'
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('lsdis')
+ wsdlUrl = self.webserviceId
+
+ webserviceId = ''#self.methodName
+ resUrl = self.resourceName
+
+ urls = []
+ methods = []
+ params = []
+ paramTypes = []
+
+ WSDLParserDriver =pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(wsdlUrl)
+ methods = wPD.getCompleteMethodList()
+ urls = wPD.getUrl()
+
+ f=open(self.Ofile,'w')
+ f.write(wsdlUrl)
+ f.write('\n'+ resUrl)
+ f.write('\n'+webserviceId)
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName().getLocalPart())
+ y = str(url.get(i))
+ webserviceId = x
+ if y == resUrl :
+ wPD.getParameters(x)
+ f.write('method matched')
+ paramTypes = wPD.getParamTypeList()
+ params = wPD.getParamList()
+ break
+ i=i+1
+
+
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.readline()
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'WebServiceclient_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+webserviceId+' , Web service: '+self.webservice+' \n')
+
+
+ clientXml.write(' \n client_1.py \n'+' $output \n $servicetype\n ' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+ j=0
+ for param in params:
+ clientXml.write(' '+self.formatString(param)+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+ cleintXml.write(' ')
+
+ j=0
+ for param in params:
+ clientXml.write(' \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+
+ clientXml.write('** Replace white with ** in all parameter values **\n')
+
+ j=0
+ for param in params:
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ clientXml.write(' \n ')
+ editor = editToolConfig()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+# Addedfor testing purpose
+
+if __name__ == "__main__":
+
+ test = ClientGenerator1('http://www.cs.uga.edu/~guttula/wublast.wsdl','run',None,'SOAP')
+ present = test.isToolPresent()
+ required = test.isRequired('_parameters|_sequence')
+ print 'required : ',required
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1_mc.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1_mc.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,599 @@
+#generates client for a web service to be used as standalone
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ import platform
+
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import os.path
+ import sys
+ import string
+ from edit_tool_conf1 import *
+ from msHandler import *
+ from creatorEngineComplex import *
+
+class ClientGenerator1(object):
+
+ def __init__(self,webservice,operation,inputs):
+ self.webservice = webservice
+ self.operation = operation
+ #self.resourceName=resourceName
+ self.inputs = inputs
+ cc = ClientCreator()
+ self.msinstance = cc.opname2inputClassOb(self.operation,self.webservice)
+
+ def formatString(self,string):
+ l = string.split(' ')
+ return '**'.join(l)
+
+ def isRequired(self,param):
+ required = False
+ if param.find('|')>-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0]) # Added
+ if (param.find('|$|')>-1):
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k \n')
+ clientCountFile.write(str(clientCount)+'\n')
+ clientCountFile.write(' \n')
+ clientCountFile.close()
+
+
+
+
+ clientName = 'client_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for operation : '+self.operation+' , Web service: '+self.webservice+' \n')
+
+ clientXml.write(' \n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output ' +self.webservice+' '+self.operation)
+
+ #clientXml.write(' \n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+ test = MessageHandler()
+ j=0
+ for param in self.inputs:
+ required = False
+ if param.find('|')>-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0]) # Added
+ if (param.find('|$|')>-1):
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1:
+ # ele = string(param,"|0|")
+ # for param in self.inputs:
+
+
+ # clientXml.write(' "'+param+'"')
+ # clientXml.write(' $cond_source.param' + str(j))
+ # j=j+1
+
+ clientXml.write(' #end if \n \n')
+
+
+# for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+ # clientXml.write(' "'+param+'"\n')
+ # clientXml.write(' $param'+str(j)+'\n')
+ # j=j+1
+
+
+ #clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+
+ j=0
+ for param in self.inputs:
+ required = False
+ if param.find('|')>-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ # plist = param.split('|')
+ # print 'plist-------->',plist
+ # k = 0
+ # param = ''
+ # for p in plist:
+ # if(k \n')
+ j=j+1
+
+
+ clientXml.write('\n \n \n no \n yes \n \n')
+ clientXml.write(' \n ')
+ clientXml.write(' \n')
+ for param in self.inputs:
+ required = False
+ if param.find('|')>-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ # plist = param.split('|')
+ # print 'plist-------->',plist
+ # k = 0
+ # param = ''
+ # for p in plist:
+ # if(k \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n ')
+
+# j=0
+ # for param in self.inputs:
+ # paramelement = test.getParameter(self.msinstance(),param)
+ # if not getattr(paramelement,'nillable'):
+ # pName = getattr(paramelement,'pname')#param.getName()
+ # clientXml.write(' \n')
+ # j=j+1
+
+ clientXml.write(' \n \n \n \n')
+ clientXml.write(' \n')
+ paramtype = None
+ for param in self.inputs:
+ required = False
+ if param.find('|')>-1 :
+ plist = param.split('|')
+ root = test.getParameter(self.msinstance(),plist[0])
+ if (param.find('|$|')>-1):
+ plist = param.split('|')
+ print 'plist-------->',plist
+ k = 0
+ iparam = ''
+ for p in plist:
+ if(k-1):
+ # plist = param.split('|')
+ # print 'plist-------->',plist
+ # k = 0
+ # param = ''
+ # for p in plist:
+ # if(k\n ')
+
+# clientXml.write(' \n')
+
+ # j=0
+ # for param in params:
+ # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ # clientXml.write(' \n')
+ # clientXml.write('')
+ clientXml.close()
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
+
+
+ def sawsdlClient(self):
+ ##parse wadl
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceTool/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceTool/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ if machine == 'x86_64' :
+ print 'a'
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ print 'b'
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ print 'c'
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+
+ pkg=JPackage('lsdis')
+ wsdlUrl = self.url
+
+ webserviceId = self.methodName
+ resUrl = self.resourceName
+
+ urls = []
+ methods = []
+ params = []
+ paramTypes = []
+
+ WSDLParserDriver =pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(wsdlUrl)
+ methods = wPD.getCompleteMethodList()
+ urls = wPD.getUrl()
+
+ f=open(self.Ofile,'w')
+ f.write(wsdlUrl)
+ f.write('\n'+ resUrl)
+ f.write('\n'+webserviceId)
+
+
+ i=0
+ for method in methods:
+ x = str(method.getName().getLocalPart())
+ if x == webserviceId :
+ wPD.getParameters(x)
+ f.write('method matched')
+ paramTypes = wPD.getParamTypeList()
+ params = wPD.getParamList()
+ break
+ i=i+1
+
+
+
+
+ ##generate client's xml
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+ clientCountFile.readline()
+ clientCountStr = clientCountFile.read(1)
+ clientCount=string.atoi(clientCountStr)
+ clientCount=clientCount+1
+ clientCountFile.close()
+
+ clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+ clientCountFile.write(' \n')
+ clientCountFile.write(str(clientCount))
+ clientCountFile.write(' \n')
+
+
+
+
+ clientName = 'client_'+ str(clientCount)
+
+ clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+ clientXml.seek(0,0)
+
+ clientXml.write('\n')
+ clientXml.write(' Client for method: '+self.methodName+' , Web service: '+self.url+' \n')
+
+
+ clientXml.write(' \n client_1.py \n'+' $output \n ' +resUrl+'\n')
+ ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+
+ j=0
+ for param in params:
+ clientXml.write(' '+self.formatString(param)+'\n')
+ clientXml.write(' $param' + str(j)+'\n')
+ j=j+1
+ clientXml.write(' \n')
+
+ ##write inputs depending on required or not. if not required den dont display
+ ##if required- den check default value, and if options exist.Depending on that
+ ##decide the type of parameter and options
+ clientXml.write(' \n')
+
+ j=0
+ for param in params:
+ clientXml.write(' \n')
+ j=j+1
+
+
+
+ clientXml.write(' \n \n \n \n')
+
+ clientXml.write(' \n')
+
+ clientXml.write('** Replace white with ** in all parameter values **\n')
+
+ j=0
+ for param in params:
+ clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
+
+ clientXml.write(' \n ')
+ editor = editToolConfig1()
+ editor.addTool(clientName)
+
+ ##later add help feature
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,220 @@
+'''
+@author Chaitanya Guttula
+@see LICENSE (MIT style license file).
+'''
+
+
+# Author = Chaitanya Guttula
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+
+ import platform
+ import commands
+ import ZSI
+ import os
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import sys
+
+class Document(object):
+
+ '''
+ Method to get all the operations from the WSDL file and write it to Galaxy output datasets
+ '''
+
+ def getWSDLMethods(self, url , outputFileUrl):
+ wLoad=wsdlLoader()
+ a= str(url).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(url),foldername)
+
+ #Gets the list of operations
+ test=ClientCreator()
+ operations=test.path2Ops(str(clientfile)).keys()
+
+ #COnvert ~ to __tilda__
+ if(url.find('~')>-1):
+ ulist = url.split('~')
+ url = '__tilda__'.join(ulist)
+
+
+ #Print all the operations and web service info to the Galaxy output dataset
+ outputfile=open(outputFileUrl,'w')
+ count=0
+ outputfile.seek(0,0)
+ for k in operations:
+ count=count+1
+ if(count==1):
+ outputfile.write(k+'\t'+clientfile+'\t'+url+'\n')
+ else:
+ outputfile.write(k+'\n')
+
+ #invoked to get REST methods described in a WSDL 2.0 document. Steps are similar to getWADLMethods except the library to parse WSDL 2.0 is used.
+ def getWSDLRESTMethods(self, wsdlUrl, outputFileUrl ):
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 81 to 88, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ pkg=JPackage('lsdis')
+
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+ length=(len(sys.argv))
+
+ urls = []
+ methods = []
+
+ if(wsdlUrl.find('__tilda__')>-1):
+ ulist = wsdlUrl.split('__tilda__')
+ urlToPass = '~'.join(ulist)
+
+ WSDLParserDriver=pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ i=0
+ for url in urls:
+ outputfile.write(wsdlUrl+"\t")
+ outputfile.write(str(methods[i].getName().getLocalPart())+"\t")
+ outputfile.write(str(url)+"\n")
+ i=i+1
+
+
+
+ '''
+ Invoked to get methods described in a WADL document
+ '''
+ def getWADLMethods(self, wadlUrl, outputFileUrl ):
+
+ #get environment variables JAVA_HOME and GALAXY_HOME
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #classpath, jarpath are variables pointing to the java libraries required to parse a WADL document
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 28 to 35, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ machine = platform.machine()
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ #tell JPYPE that the package name is lsdis
+ pkg=JPackage('lsdis')
+
+ urlToPass=java.net.URL(wadlUrl)
+
+ #convert __tilda__ to ~
+ if(wadlUrl.find('__tilda__')>-1):
+ ulist = wadlUrl.split('__tilda__')
+ urlToPass = java.net.URL('~'.join(ulist))
+
+
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+
+ urls = []
+ methods = []
+
+ #using JPYPE call appropriate Java classes and methods to parse the WADL document and get a list of methods defined in it
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ #write the url of the WADL and the list of methods to the output in a tabular format, for the Step 2 tool to read from.
+ i=0
+ for url in urls:
+ outputfile.write(str(url)+"\t")
+ outputfile.write(str(methods[i].getId())+"\t")
+ outputfile.write(wadlUrl+"\n")
+ i=i+1
+
+
+
+ # invoked to get methods described in a SAWADL document
+ def getSAWADLMethods(self, sawadlUrl, outputFileUrl ):
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/restclientSAWADL/lib/SAWADLParser/bin'
+ machine = platform.machine()
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 126 to 133, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+
+
+ # Open the output file for galaxy
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+
+ if(sawadlUrl.find('__tilda__')>-1):
+ ulist = sawadlUrl.split('__tilda__')
+ urlToPass = '~'.join(ulist)
+
+ urls = []
+ methods = []
+
+ #invoke the parser and get the method list
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(urlToPass)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ #Print the methods and service information to the
+ i=0
+ for url in urls:
+ outputfile.write(sawadlUrl+"\t")
+ outputfile.write(str(methods[i].getName())+"\t")
+ outputfile.write(str(url)+"\n")
+ i=i+1
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.pyc
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.pyc has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,220 @@
+'''
+@author Chaitanya Guttula
+@see LICENSE (MIT style license file).
+'''
+
+
+# Author = Chaitanya Guttula
+
+import warnings
+
+with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+
+ import platform
+ import commands
+ import ZSI
+ import os
+ from clientGenerator.creatorEngineComplex import *
+ from clientGenerator.wsdl2path import *
+ from jpype._jpackage import JPackage
+ from jpype import *
+ import sys
+
+class Document(object):
+
+ '''
+ Method to get all the operations from the WSDL file and write it to Galaxy output datasets
+ '''
+
+ def getWSDLMethods(self, url , outputFileUrl):
+ wLoad=wsdlLoader()
+ a= str(url).split('/')
+ wsdlnamelist = a[len(a)-1].split(".")
+ if len(wsdlnamelist)==1:
+ wsdlnamelist=a[len(a)-1].split('?')
+ print wsdlnamelist
+
+ foldername=wsdlnamelist[0]
+
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+ os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+
+ #creates the client stubs
+ clientfile=wLoad.wsdlUrl2path(str(url),foldername)
+
+ #Gets the list of operations
+ test=ClientCreator()
+ operations=test.path2Ops(str(clientfile)).keys()
+
+ #COnvert ~ to __tilda__
+ if(url.find('~')>-1):
+ ulist = url.split('~')
+ url = '__tilda__'.join(ulist)
+
+
+ #Print all the operations and web service info to the Galaxy output dataset
+ outputfile=open(outputFileUrl,'w')
+ count=0
+ outputfile.seek(0,0)
+ for k in operations:
+ count=count+1
+ if(count==1):
+ outputfile.write(k+'\t'+clientfile+'\t'+url+'\n')
+ else:
+ outputfile.write(k+'\n')
+
+ #invoked to get REST methods described in a WSDL 2.0 document. Steps are similar to getWADLMethods except the library to parse WSDL 2.0 is used.
+ def getWSDLRESTMethods(self, wsdlUrl, outputFileUrl ):
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+ machine = platform.machine()
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 81 to 88, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ pkg=JPackage('lsdis')
+
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+ length=(len(sys.argv))
+
+ urls = []
+ methods = []
+
+ if(wsdlUrl.find('__tilda__')>-1):
+ ulist = wsdlUrl.split('__tilda__')
+ urlToPass = '~'.join(ulist)
+
+ WSDLParserDriver=pkg.WSDLParserDriver
+ wPD=WSDLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ i=0
+ for url in urls:
+ outputfile.write(wsdlUrl+"\t")
+ outputfile.write(str(methods[i].getName().getLocalPart())+"\t")
+ outputfile.write(str(url)+"\n")
+ i=i+1
+
+
+
+ '''
+ Invoked to get methods described in a WADL document
+ '''
+ def getWADLMethods(self, wadlUrl, outputFileUrl ):
+
+ #get environment variables JAVA_HOME and GALAXY_HOME
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+
+ #classpath, jarpath are variables pointing to the java libraries required to parse a WADL document
+ classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+ jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 28 to 35, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ machine = platform.machine()
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ #tell JPYPE that the package name is lsdis
+ pkg=JPackage('lsdis')
+
+ urlToPass=java.net.URL(wadlUrl)
+
+ #convert __tilda__ to ~
+ if(wadlUrl.find('__tilda__')>-1):
+ ulist = wadlUrl.split('__tilda__')
+ urlToPass = java.net.URL('~'.join(ulist))
+
+
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+
+ urls = []
+ methods = []
+
+ #using JPYPE call appropriate Java classes and methods to parse the WADL document and get a list of methods defined in it
+ WADLParserDriver=pkg.WADLParserDriver
+ wPD=WADLParserDriver()
+ wPD.parse(urlToPass)
+ urls = wPD.getUrl()
+ methods = wPD.getCompleteMethodList()
+
+ #write the url of the WADL and the list of methods to the output in a tabular format, for the Step 2 tool to read from.
+ i=0
+ for url in urls:
+ outputfile.write(str(url)+"\t")
+ outputfile.write(str(methods[i].getId())+"\t")
+ outputfile.write(wadlUrl+"\n")
+ i=i+1
+
+
+
+ # invoked to get methods described in a SAWADL document
+ def getSAWADLMethods(self, sawadlUrl, outputFileUrl ):
+ javahome = os.environ.get('JAVA_HOME')
+ galaxyhome=os.environ.get('GALAXY_HOME')
+ classpath= galaxyhome + '/tools/restclientSAWADL/lib/SAWADLParser/bin'
+ machine = platform.machine()
+
+ #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+ #you can replace lines 126 to 133, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+ if machine == 'x86_64' :
+ startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ elif machine == 'i686' :
+ startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ elif machine == 'sun4u' :
+ startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+ else :
+ System.exit("Could not identify machine, please specify path to libjvm.so")
+
+ pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+
+
+ # Open the output file for galaxy
+ outputfile=open(outputFileUrl,'w')
+ outputfile.seek(0,0)
+
+ if(sawadlUrl.find('__tilda__')>-1):
+ ulist = sawadlUrl.split('__tilda__')
+ urlToPass = '~'.join(ulist)
+
+ urls = []
+ methods = []
+
+ #invoke the parser and get the method list
+ SAWADLParserDriver=pkg.SAWADLParserDriver
+ sawPD=SAWADLParserDriver()
+ sawPD.parse(urlToPass)
+ urls = sawPD.getUrl()
+ methods = sawPD.getCompleteMethodList()
+
+ #Print the methods and service information to the
+ i=0
+ for url in urls:
+ outputfile.write(sawadlUrl+"\t")
+ outputfile.write(str(methods[i].getName())+"\t")
+ outputfile.write(str(url)+"\n")
+ i=i+1
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.classpath
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.classpath Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.project
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.project Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+
+
+ SAWADLParser
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_CoreElements.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_CoreElements.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,447 @@
+
+
+
+
+
+ Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.2 $
+$Date: 2006/03/22 17:05:21 $
+
+This XML Core Elements has been created on the basis of the RosettaNet specification (http://rosettanet.org/)
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/).
+
+
+
+
+
+ Unformatted text.
+
+
+
+
+
+
+
+
+ The name of a business entity.
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe a business identity and location.
+
+
+
+
+
+
+
+
+
+ The first line of a physical address.
+
+
+
+
+
+
+
+
+
+ The name of a city.
+
+
+
+
+
+
+
+
+
+ Code identifying geographic location as specified by a national postal code.
+
+
+
+
+
+
+
+ The actual physical location of an entity as prescribed by local postal authorities, including country identification as it relates to the party or a product.
+
+
+
+
+
+
+
+
+
+
+
+
+ The collection of business properties that identify and describe the actual physical location of an entity as prescribed by local postal authorities, including country identification.
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe a business partners' identity, their contact information, where they are physically located and their function in a supply chain.
+
+
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe a business partners' role in a partner interface process.
+
+
+
+
+
+
+
+
+
+
+
+ Magnitude of currency amount.
+
+
+
+
+
+
+
+ The collection of business properties that describe the monetary amount defined by a specified currency.
+
+
+
+
+
+
+
+
+
+
+ Total price for an entire business document.
+
+
+
+
+
+
+
+
+
+ The partner and/or location to which the product must be delivered.
+
+
+
+
+
+
+
+
+
+ Specifies a specific date. Date stamp based on the ISO 8601 specification. The "Z" following the day identifier (DD) is used to indicate Coordinated Universal Time. Informal format: YYYYMMDDZ
+
+
+
+
+
+
+
+ The collection of business properties that describe the occurrence of the public conveyance of goods as a commercial enterprise.
+
+
+
+
+
+
+
+
+
+
+ The date a transportation event is requested to occur.
+
+
+
+
+
+
+
+
+
+ Used to indicate "Yes", "No" statements.
+
+
+
+
+
+
+
+ Indicates whether the order is a drop shipment.
+
+
+
+
+
+
+
+
+
+ The role receiving the document in a business document exchange.
+
+
+
+
+
+
+
+
+
+ Unique tracking identification number that identifies a request.
+
+
+
+
+
+
+
+
+
+ Unique identifier, i.e. a numeric value or alphanumeric value, for a business document.
+
+
+
+
+
+
+
+ Number of the line in the document.
+
+
+
+
+
+
+
+ The information that identifies the business document being sent. This identifier is used to represent the specific business document associated with the defined business process.
+
+
+
+
+
+
+
+
+
+ Specifies an instance in time. Based on the ISO 8601 specification where "YYYY" represents the year, "MM" the month and "DD" the day. The letter "T" is the date/time separator and "hh", "mm", "ss.sss" represent hour, minute and second respectively. This representation is immediately followed by a "Z" to indicate Coordinated Universal Time. Informal format: YYYYMMDDThhmmss
+
+
+
+
+
+
+
+ The date-time stamp indicating when this business document was generated.
+
+
+
+
+
+
+
+
+
+ Name of the contact person(s) within the organization.
+
+
+
+
+
+
+
+
+
+ Electronic mail address.
+
+
+
+
+
+
+
+ The electro-technical communication number, e.g., telephone number, facsimile number, pager number.
+
+
+
+
+
+
+
+ The date-time that the requesting business document was generated. This is the same as the date-time stamp of the original business document.
+
+
+
+
+
+
+
+
+
+ The monetary total associated with a line item.
+
+
+
+
+
+
+
+
+
+ The price requested for a unit of product.
+
+
+
+
+
+
+
+
+
+ Global unique product identifier. RosettaNet has adopted the Global Trade Identification Number (GTIN).
+
+
+
+
+
+
+
+ The collection of business properties that describe proprietary and global identifier information regarding a product.
+
+
+
+
+
+
+
+
+
+ Line number assigned to an item by the product buyer.
+
+
+
+
+
+
+
+
+
+ A quantity specifying the number of product units.
+
+
+
+
+
+
+
+ Quantity of product shipped.
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe information regarding the quantity of the product shipped.
+
+
+
+
+
+
+
+
+
+
+ The quantity of product requested.
+
+
+
+
+
+
+
+
+
+ The numerical schema designed to achieve contact via telephone.
+
+
+
+
+
+
+
+
+
+ Quantity of product shipped currently scheduled for shipment.
+
+
+
+
+
+
+
+
+
+ The collection of business properties that provide communication and address information for contacting a person, organization or business.
+
+
+
+
+
+
+
+
+
+
+
+ Agreed upon sale price for each unit ordered.
+
+
+
+
+
+
+
+
+
+ The role initiating a business document exchange.
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_Dictionary.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_Dictionary.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,1031 @@
+
+
+
+
+ Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.2 $
+$Date: 2006/03/06 15:30:27 $
+
+This XML Dictionary has been created on the basis of the RosettaNet specification (http://rosettanet.org/)
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/).
+
+
+
+ A code identifying type of exception process in order to enable the back-end integration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code identifying the three character currency code specified in ISO 4217-1995.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code identifying a party's role in the supply chain.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code identifying a product unit of measure.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code identifying category specification for a purchase order.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PO generated to exchange a product that is not related to Warranty Replacement.
+
+
+
+
+
+
+
+
+ for mass production wafer
+
+
+
+
+
+
+ PO generated to replenish stock to achieve target levels.
+
+
+
+
+
+ Before the yield is qualifed, the buyer requests the wafer manufacturer to produce the wafer according to the current spec., however, the manufacturer is not responsible for the yield
+
+
+
+
+
+
+ applicable to a single geographical site
+
+
+
+
+
+
+
+ applicable to worldwide
+
+
+
+
+
+
+
+ Code identifying an event during the transportation of a shipment.
+
+
+
+
+
+ The event representing when the product should arrive on the recipient's dock.
+
+
+
+
+ The event representing when the product is scheduled to be picked up from the shipper's dock.
+
+
+
+
+ The event representing when the product is requested to ship.
+
+
+
+
+
+
+
+ Code identifying the status of a purchase order.
+
+
+
+
+
+
+
+
+
+
+
+ Code identifying the three character currency code specified in ISO 4217-1995.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_Simplified_PurchaseOrderRequest.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_Simplified_PurchaseOrderRequest.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,76 @@
+
+
+
+
+ Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.6 $
+$Date: 2006/04/12 16:32:29 $
+
+This XML Schema has been created on the basis of the RosettaNet specification (http://rosettanet.org/)
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/). The Schema has
+been simplified in several aspect, e.g. all Tax related aspect have been deleted for the saint of simplicity.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe a buyer's offer to purchase a quantity of products at an agreed price and schedule.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe a business document entry for a product.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The collection of business properties that describe various types of product quantity used in an ordering process.
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/AcknowledgementOfReceipt.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/AcknowledgementOfReceipt.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,43 @@
+
+
+
+
+ Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.1 $
+$Date: 2006/03/06 17:45:10 $
+
+This XML Schema has been created on the basis of the RosettaNet specification (http://rosettanet.org/)
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/).
+
+
+
+
+ Business information returned to a requesting party to verify business document receipt.
+
+
+
+
+
+
+
+
+
+ Information required to support non-repudiation of receipt.
+
+
+
+
+
+
+
+
+
+ The base-64 encoded digest of the entire original mime message received. The digest MUST use the same algorithm as the original signed message.
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Min Molecular Weight (Daltons)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Min Molecular Weight (Daltons)
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewsSearchResponse.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewsSearchResponse.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/Template.sawadl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/Template.sawadl Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/sample.wadl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/sample.wadl Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/xml.xsd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/xml.xsd Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,146 @@
+
+
+
+
+
+ See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+
+ Note that local names in this namespace are intended to be defined
+ only by the World Wide Web Consortium or its subgroups. The
+ following names are currently defined in this namespace and should
+ not be used with conflicting semantics by any Working Group,
+ specification, or document instance:
+
+ base (as an attribute name): denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.
+
+ id (as an attribute name): denotes an attribute whose value
+ should be interpreted as if declared to be of type ID.
+ The xml:id specification is not yet a W3C Recommendation,
+ but this attribute is included here to facilitate experimentation
+ with the mechanisms it proposes. Note that it is _not_ included
+ in the specialAttrs attribute group.
+
+ lang (as an attribute name): denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.
+
+ space (as an attribute name): denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.
+
+ Father (in any context at all): denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+
+ In appreciation for his vision, leadership and dedication
+ the W3C XML Plenary on this 10th day of February, 2000
+ reserves for Jon Bosak in perpetuity the XML name
+ xml:Father
+
+
+
+
+ This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
+ attributes on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ <schema . . .>
+ . . .
+ <import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ <type . . .>
+ . . .
+ <attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes
+
+
+
+ In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2005/08/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself, or with the XML namespace itself. In other words, if the XML
+ Schema or XML namespaces change, the version of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2005/08/xml.xsd will not change.
+
+
+
+
+
+ Attempting to install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values is probably never
+ going to be a realistic possibility. See
+ RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+ at http://www.iana.org/assignments/lang-tag-apps.htm for
+ further information.
+
+ The union allows for the 'un-declaration' of xml:lang with
+ the empty string.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.
+
+
+
+
+
+ See http://www.w3.org/TR/xml-id/ for
+ information about this attribute.
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.classpath
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.classpath Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.project
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.project Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+
+
+ SAWADALParser
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/Parser.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/Parser.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Application.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Application.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Effect.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Effect.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Grammars.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Grammars.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Include.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Include.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Method.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Method.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReference.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReference.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReferenceExtensible.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReferenceExtensible.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Param.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Param.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Params.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Params.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/PreCondition.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/PreCondition.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Request.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Request.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Resource.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Resource.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Response.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Response.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/WADLSException.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/WADLSException.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/AttributeExtensible.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/AttributeExtensible.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ElementExtensible.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ElementExtensible.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensibilityElement.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensibilityElement.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionDeserializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionDeserializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionRegistry.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionRegistry.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionSerializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionSerializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensibilityElement.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensibilityElement.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionDeserializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionDeserializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionSerializer.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionSerializer.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/Schema.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/Schema.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaImport.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaImport.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaReference.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaReference.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/factory/WADLFactory.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/factory/WADLFactory.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLLocator.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLLocator.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLReader.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLReader.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLWriter.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLWriter.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/xml/namespace/QName.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/xml/namespace/QName.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,169 @@
+
+
+
+
+
+ Molecular Weight
+
+ Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+
+
+ Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+ Molecular weights are machine calculated from the raw translation and does not take into account any protein or residue modifications. For translations containing ambiguous amino acid codes (B, Z, X) we calculate the average of the upper and lower bound of the molecular weight.
+
+
+
+
+Organism
+Organism
+
+Entamoeba dispar,Entamoeba histolytica,Entamoeba invadens,Cryptosporidium parvum,Cryptosporidium hominis,Cryptosporidium muris,Giardia Assemblage A isolate WB,Giardia Assemblage B isolate GS,Giardia Assemblage E isolate P15,Encephalitozoon cuniculi,Encephalitozoon intestinalis,Plasmodium falciparum,Plasmodium vivax,Plasmodium yoelii,Plasmodium berghei,Plasmodium chabaudi,Plasmodium knowlesi,Toxoplasma gondii,Neospora caninum,Trichomonas vaginalis,Trypanosoma cruzi,Leishmania braziliensis,Leishmania infantum,Leishmania major,Leishmania mexicana,Trypanosoma brucei,Trypanosoma congolense,Trypanosoma vivax
+p
+
+Provide one or more values. Use comma as a delimter.
+
+
+Entamoeba dispar
+
+
+
+Entamoeba histolytica
+
+
+
+Entamoeba invadens
+
+
+
+Cryptosporidium parvum
+
+
+
+Cryptosporidium hominis
+
+
+
+Cryptosporidium muris
+
+
+
+Giardia Assemblage A isolate WB
+
+
+
+Giardia Assemblage B isolate GS
+
+
+
+Giardia Assemblage E isolate P15
+
+
+
+Encephalitozoon cuniculi
+
+
+
+Encephalitozoon intestinalis
+
+
+
+Plasmodium falciparum
+
+
+
+Plasmodium vivax
+
+
+
+Plasmodium yoelii
+
+
+
+Plasmodium berghei
+
+
+
+Plasmodium chabaudi
+
+
+
+Plasmodium knowlesi
+
+
+
+Toxoplasma gondii
+
+
+
+Neospora caninum
+
+
+
+Trichomonas vaginalis
+
+
+
+Trypanosoma cruzi
+
+
+
+Leishmania braziliensis
+
+
+
+Leishmania infantum
+
+
+
+Leishmania major
+
+
+
+Leishmania mexicana
+
+
+
+Trypanosoma brucei
+
+
+
+Trypanosoma congolense
+
+
+
+Trypanosoma vivax
+
+
+
+
+Min Molecular Weight (Daltons)
+Lower bound for the protein molecular weight
+10000
+
+
+
+Max Molecular Weight (Daltons)
+Upper bound for the protein molecular weight
+50000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl~ Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,169 @@
+
+
+
+
+
+ Molecular Weight
+
+ Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+
+
+ Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+ Molecular weights are machine calculated from the raw translation and does not take into account any protein or residue modifications. For translations containing ambiguous amino acid codes (B, Z, X) we calculate the average of the upper and lower bound of the molecular weight.
+
+
+
+
+Organism
+Organism
+
+Entamoeba dispar,Entamoeba histolytica,Entamoeba invadens,Cryptosporidium parvum,Cryptosporidium hominis,Cryptosporidium muris,Giardia Assemblage A isolate WB,Giardia Assemblage B isolate GS,Giardia Assemblage E isolate P15,Encephalitozoon cuniculi,Encephalitozoon intestinalis,Plasmodium falciparum,Plasmodium vivax,Plasmodium yoelii,Plasmodium berghei,Plasmodium chabaudi,Plasmodium knowlesi,Toxoplasma gondii,Neospora caninum,Trichomonas vaginalis,Trypanosoma cruzi,Leishmania braziliensis,Leishmania infantum,Leishmania major,Leishmania mexicana,Trypanosoma brucei,Trypanosoma congolense,Trypanosoma vivax
+p
+
+Provide one or more values. Use comma as a delimter.
+
+
+Entamoeba dispar
+
+
+
+Entamoeba histolytica
+
+
+
+Entamoeba invadens
+
+
+
+Cryptosporidium parvum
+
+
+
+Cryptosporidium hominis
+
+
+
+Cryptosporidium muris
+
+
+
+Giardia Assemblage A isolate WB
+
+
+
+Giardia Assemblage B isolate GS
+
+
+
+Giardia Assemblage E isolate P15
+
+
+
+Encephalitozoon cuniculi
+
+
+
+Encephalitozoon intestinalis
+
+
+
+Plasmodium falciparum
+
+
+
+Plasmodium vivax
+
+
+
+Plasmodium yoelii
+
+
+
+Plasmodium berghei
+
+
+
+Plasmodium chabaudi
+
+
+
+Plasmodium knowlesi
+
+
+
+Toxoplasma gondii
+
+
+
+Neospora caninum
+
+
+
+Trichomonas vaginalis
+
+
+
+Trypanosoma cruzi
+
+
+
+Leishmania braziliensis
+
+
+
+Leishmania infantum
+
+
+
+Leishmania major
+
+
+
+Leishmania mexicana
+
+
+
+Trypanosoma brucei
+
+
+
+Trypanosoma congolense
+
+
+
+Trypanosoma vivax
+
+
+
+
+Min Molecular Weight (Daltons)
+Lower bound for the protein molecular weight
+10000
+
+
+
+Max Molecular Weight (Daltons)
+Upper bound for the protein molecular weight
+50000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.classpath
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.classpath Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.project
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.project Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+
+
+ SAWADALParser
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,47 @@
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.Method;
+import javax.wadls.Param;
+import javax.wadls.Request;
+import javax.wadls.Resource;
+import javax.wadls.WADLSException;
+import javax.wadls.factory.WADLFactory;
+import javax.wadls.xml.WADLReader;
+import javax.xml.namespace.QName;
+
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+import edu.uga.cs.lsdis.meteors.wadls.ParamImpl;
+import edu.uga.cs.lsdis.meteors.wadls.SAWADLParserDriver;
+
+
+public class Parser {
+
+
+ public static void main(String[] args){
+
+// //String consumerWADLS="http://localhost:9090/testcase2/Template.sawadl";
+// String consumerWADLS="/home/ganjoo/parser/SAWADLParser/Files/Template.sawadl";
+// WADLReader wadlReader;
+// try {
+// wadlReader = WADLFactory.newInstance().newWADLReader();
+// wadlReader.setFeature(Constants.FEATURE_PARSE_SAWADL,true);
+// //wadlReader.setExtensionRegistry(new PopulatedExtensionRegistry());
+// Application app = wadlReader.readWADL(consumerWADLS);
+//
+ SAWADLParserDriver spd = new SAWADLParserDriver();
+ //String fileURL = "/home/ganjoo/parser/SAWADLParser/Files/sample.wadl";
+ String fileURL = "/home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl";
+ try {
+ spd.parse(fileURL);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ }
+ }
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,606 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.extensions.ExtensionRegistry;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents a WSDLS definition.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Paul Fremantle
+ * @author Nirmal Mukhi
+ * @author Matthew J. Duftler
+ * @author namelessNerd
+ */
+public class ApplicationImpl implements Application
+{
+ protected String documentBaseURI = null;
+ protected QName name = null;
+ protected String targetNamespace = null;
+ protected Map namespaces = new HashMap();
+ protected Map includes = new HashMap();
+ protected Params params = null;
+ protected Grammars grammars = null;
+ protected Map resources = new HashMap();
+ protected Element docEl = null;
+ protected String resourcespath=null;
+ protected List extElements = new Vector();
+
+ // added by namelessNerd
+ protected List modelReferenceList= new ArrayList();
+ protected List ontologyNamespaces= new ArrayList();
+ // end namelessNerd additions
+
+ protected ExtensionRegistry extReg = null;
+
+ public static final long serialVersionUID = 1;
+
+ /**
+ * Get all the Parts which has a modelReference with the specified namespace and concept.
+ * @param namespace The namespace of the modelReference
+ * @param concept The concept of the modelReference
+ * @return All the Parts which has a modelReference with the specified namespace and concept.
+ */
+
+ /**
+ * Get all the Operations which has a modelReference with the specified namespace and concept.
+ * @param namespace The namespace of the modelReference
+ * @param concept The concept of the modelReference
+ * @return All the Operations which has a modelReference with the specified namespace and concept.
+ */
+ public List getMethodsByModelReference(URI namespace, String concept){
+ //TODO not implemented yet.
+ return null;
+ }
+
+
+ /**
+ * Get all the XSD Elements which has a modelReference with the specified namespace and concept.
+ * @param namespace The namespace of the modelReference
+ * @param concept The concept of the modelReference
+ * @return All the XSD Elements which has a modelReference with the specified namespace and concept.
+ */
+ public List getXSDElementsByModelReference(URI namespace, String concept){
+ //TODO not implemented yet.
+ return null;
+ }
+
+ /**
+ * Get all the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+ * @param namespace The namespace of the modelReference
+ * @param concept The concept of the modelReference
+ * @return All the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+ */
+ public List getXSDComplexTypeByModelReference(URI namespace, String concept){
+ //TODO not implemented yet.
+ return null;
+ }
+
+
+ /**
+ * Set the document base URI of this definition. Can be used to
+ * represent the origin of the Definition, and can be exploited
+ * when resolving relative URIs (e.g. in <import>s).
+ *
+ * @param documentBaseURI the document base URI of this definition
+ */
+
+ /**
+ * Create a new modelReference.
+ *
+ * @return the newly created modelReference.
+ */
+ public ModelReference createModelReference(){
+ return new ModelReferenceImpl();
+ }
+
+
+
+ /**
+ * Create a new precondition.
+ *
+ * @return the newly created precondition
+ */
+ public PreCondition createPreCondition(){
+ return new OperationAddOnImpl();
+ }
+
+ /**
+ * Create a new effect.
+ *
+ * @return the newly created effect
+ */
+ public Effect createEffect(){
+ return new OperationAddOnImpl();
+ }
+
+ public void setDocumentBaseURI(String documentBaseURI)
+ {
+ this.documentBaseURI = documentBaseURI;
+ }
+
+
+ /**
+ * Get the document base URI of this definition.
+ *
+ * @return the document base URI
+ */
+ public String getDocumentBaseURI()
+ {
+ return documentBaseURI;
+ }
+
+ public void setResourcesPath(String resourcespath)
+ {
+ this.resourcespath = resourcespath;
+ }
+
+
+ /**
+ * Get the document base URI of this definition.
+ *
+ * @return the document base URI
+ */
+ public String getResourcesPath()
+ {
+ return resourcespath;
+ }
+
+ /**
+ * Set the name of this definition.
+ *
+ * @param name the desired name
+ */
+ public void setQName(QName name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * Get the name of this definition.
+ *
+ * @return the definition name
+ */
+ public QName getQName()
+ {
+ return name;
+ }
+
+ /**
+ * Set the target namespace in which WSDL elements are defined.
+ *
+ * @param targetNamespace the target namespace
+ */
+ public void setTargetNamespace(String targetNamespace)
+ {
+ this.targetNamespace = targetNamespace;
+ }
+
+ /**
+ * Get the target namespace in which the WSDL elements
+ * are defined.
+ *
+ * @return the target namespace
+ */
+ public String getTargetNamespace()
+ {
+ return targetNamespace;
+ }
+
+ /**
+ * Get the target namespace in which the WSDL elements
+ * are defined.
+ *
+ * @return the target namespace
+ */
+ public List getAllModelReference()
+ {
+ // grabModel
+ return modelReferenceList;
+ }
+
+ /**
+ * This is a way to add a namespace association to a definition.
+ * It is similar to adding a namespace prefix declaration to the
+ * top of a <wsdl:definition> element. This has nothing to do
+ * with the <wsdl:import> element; there are separate methods for
+ * dealing with information described by <wsdl:import> elements.
+ *
+ * @param prefix the prefix to use for this namespace (when
+ * rendering this information as XML). Use null or an empty string
+ * to describe the default namespace (i.e. xmlns="...").
+ * @param namespaceURI the namespace URI to associate the prefix
+ * with. If you use null, the namespace association will be removed.
+ */
+ public void addNamespace(String prefix, String namespaceURI)
+ {
+ if (prefix == null)
+ {
+ prefix = "";
+ }
+
+ if (namespaceURI != null)
+ {
+ namespaces.put(prefix, namespaceURI);
+ }
+ else
+ {
+ namespaces.remove(prefix);
+ }
+ }
+
+ /**
+ * Get the namespace URI associated with this prefix. Or null if
+ * there is no namespace URI associated with this prefix. This is
+ * unrelated to the <wsdl:import> element.
+ *
+ * @see #addNamespace(String, String)
+ * @see #getPrefix(String)
+ */
+ public String getNamespace(String prefix)
+ {
+ if (prefix == null)
+ {
+ prefix = "";
+ }
+
+ return (String)namespaces.get(prefix);
+ }
+
+ /**
+ * Get a prefix associated with this namespace URI. Or null if
+ * there are no prefixes associated with this namespace URI. This is
+ * unrelated to the <wsdl:import> element.
+ *
+ * @see #addNamespace(String, String)
+ * @see #getNamespace(String)
+ */
+ public String getPrefix(String namespaceURI)
+ {
+ if (namespaceURI == null)
+ {
+ return null;
+ }
+
+ Iterator entryIterator = namespaces.entrySet().iterator();
+
+ while (entryIterator.hasNext())
+ {
+ Map.Entry entry = (Map.Entry)entryIterator.next();
+ String prefix = (String)entry.getKey();
+ String assocNamespaceURI = (String)entry.getValue();
+
+ if (namespaceURI.equals(assocNamespaceURI))
+ {
+ return prefix;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Get all namespace associations in this definition. The keys are
+ * the prefixes, and the namespace URIs are the values. This is
+ * unrelated to the <wsdl:import> element.
+ *
+ * @see #addNamespace(String, String)
+ */
+ public Map getNamespaces()
+ {
+ return namespaces;
+ }
+
+ /**
+ * Set the types section.
+ */
+ public void setParams(Params params)
+ {
+ this.params = params;
+ }
+
+ public void setGrammars(Grammars grammars)
+ {
+ this.grammars = grammars;
+ }
+ /**
+ * Get the types section.
+ *
+ * @return the types section
+ */
+ public Params getParams()
+ {
+ return params;
+ }
+
+ public Grammars getGrammars()
+ {
+ return grammars;
+ }
+
+ /**
+ * Add an import to this WADL description.
+ *
+ * @param importDef the import to be added
+ */
+ public void addInclude(Include includeApp)
+ {
+ String namespaceURI = includeApp.getNamespaceURI();
+ List includeList = (List)includes.get(namespaceURI);
+
+ if (includeList == null)
+ {
+ includeList = new Vector();
+
+ includes.put(namespaceURI, includeList);
+ }
+
+ includeList.add(includeApp);
+ }
+
+ /**
+ * Get the list of imports for the specified namespaceURI.
+ *
+ * @param namespaceURI the namespaceURI associated with the
+ * desired imports.
+ * @return a list of the corresponding imports, or null if
+ * there weren't any matching imports
+ */
+ public List getIncludes(String namespaceURI)
+ {
+ return (List)includes.get(namespaceURI);
+ }
+
+ /**
+ * Get a map of lists containing all the imports defined here.
+ * The map's keys are the namespaceURIs, and the map's values
+ * are lists. There is one list for each namespaceURI for which
+ * imports have been defined.
+ */
+ public Map getIncludes()
+ {
+ return includes;
+ }
+
+
+ /**
+ * Add a portType to this WSDL description.
+ *
+ * @param portType the portType to be added
+ */
+ public void addResource(Resource portType)
+ {
+ resources.put(portType.getQName(), portType);
+
+ }
+
+ /**
+ * Get the specified portType. Also checks imported documents.
+ *
+ * @param name the name of the desired portType.
+ * @return the corresponding portType, or null if there wasn't
+ * any matching portType
+ */
+ public Resource getResource(QName name)
+ {
+ Resource resource = (Resource)resources.get(name);
+
+ if (resource == null && name != null)
+ {
+ resource = (Resource)getFromIncludes(Constants.ELEM_RESOURCE, name);
+ }
+
+ return resource;
+ }
+
+ /**
+ * Remove the specified portType from this definition.
+ *
+ * @param name the name of the portType to remove
+ * @return the portType previously associated with this qname, if there
+ * was one; may return null
+ */
+ public Resource removeResource(QName name)
+ {
+ return (Resource)resources.remove(name);
+ }
+
+ /**
+ * Get all the portTypes defined here.
+ */
+ public Map getResources()
+ {
+ return resources;
+ }
+
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ /**
+ * Get all the extensibility elements defined here.
+ */
+ public List getExtensibilityElements()
+ {
+ return extElements;
+ }
+
+
+ /**
+ * Create a new import.
+ *
+ * @return the newly created import
+ */
+ public Include createInclude()
+ {
+ return new IncludeImpl();
+ }
+
+ /**
+ * Create a new input.
+ *
+ * @return the newly created input
+ */
+ public Request createRequest()
+ {
+ return new RequestImpl();
+ }
+
+
+ /**
+ * Create a new operation.
+ *
+ * @return the newly created operation
+ */
+ public Method createMethod()
+ {
+ return new MethodImpl();
+ }
+
+ /**
+ * Create a new output.
+ *
+ * @return the newly created output
+ */
+ public Response createResponse()
+ {
+ return new ResponseImpl();
+ }
+
+ /**
+ * Create a new port type.
+ *
+ * @return the newly created port type
+ */
+ public Resource createResource()
+ {
+ return new ResourceImpl();
+ }
+
+ /**
+ * Create a new types section.
+ *
+ * @return the newly created types section
+ */
+ public Params createParams()
+ {
+ return new ParamsImpl(this);
+ }
+ public Grammars createGrammars()
+ {
+ return new GrammarsImpl(this);
+ }
+
+ private Object getFromIncludes(String typeOfApplication, QName name)
+ {
+ Object ret = null;
+ List includeList = getIncludes(name.getNamespaceURI());
+
+ if (includeList != null)
+ {
+ Iterator includeIterator = includeList.iterator();
+
+ while (includeIterator.hasNext())
+ {
+ Include includeApp = (Include)includeIterator.next();
+
+ if (includeApp != null)
+ {
+ Application includedApp = includeApp.getApplication();
+
+ if (includedApp != null)
+ {
+ /*
+ These object comparisons will work fine because
+ this private method is only called from within
+ this class, using only the pre-defined constants
+ from the Constants class as the typeOfDefinition
+ argument.
+ */
+ if (typeOfApplication == Constants.ELEM_RESOURCE)
+ {
+ ret = includedApp.getResource(name);
+ }
+
+ if (ret != null)
+ {
+ return ret;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Definition: name=" + name +
+ " targetNamespace=" + targetNamespace);
+
+ if (includes != null)
+ {
+ Iterator includeIterator = includes.values().iterator();
+
+ while (includeIterator.hasNext())
+ {
+ strBuf.append("\n" + includeIterator.next());
+ }
+ }
+
+ if (params != null)
+ {
+ strBuf.append("\n" + params);
+ }
+
+
+
+ if (resources != null)
+ {
+ Iterator resourceIterator = resources.values().iterator();
+
+ while (resourceIterator.hasNext())
+ {
+ strBuf.append("\n" + resourceIterator.next());
+ }
+ }
+
+
+ return strBuf.toString();
+ }
+
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,191 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import javax.xml.namespace.*;
+
+/**
+ * This class contains the constatns of WSDLS
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class Constants
+{
+ // Namespace URIs.
+ public static final String NS_URI_WADL =
+ "http://wadl.dev.java.net/2009/02";
+
+ public static final String NS_URI_WADLS =
+ "http://lsdis.cs.uga.edu/projects/meteor-s/wadl-s/examples/WSSemantics.xsd";
+ public static final String NS_URI_SAWADL =
+ "http://www.w3.org/2002/ws/sawadl/spec/sawadl#";
+ public static final String NS_URI_XMLNS =
+ "http://www.w3.org/2000/xmlns/";
+
+ //Prefix
+ public static final String PREFIX_WSDLS =
+ "wssem";
+
+ // Top-level element names.
+ public static final String ELEM_DEFINITIONS = "application";
+ public static final String ELEM_GRAMMARS = "grammars";
+ public static final String ELEM_PARAM = "param";
+ public static final String ELEM_TYPES = "types";
+ public static final String ELEM_RESOURCE = "resource";
+ // Non top-level element names.
+ public static final String ELEM_OPERATION = "method";
+ public static final String ELEM_PRECON = "precondition";
+ public static final String ELEM_EFFECT = "effect";
+ public static final String ELEM_INPUT = "request";
+ public static final String ELEM_OUTPUT = "response";
+ public static final String ELEM_HREF = "href";
+ public static final String ELEM_RESOURCES = "resources";
+ public static final String ELEM_INCLUDE = "include";
+ public static final String ELEM_IMPORT = "import";
+ public static final String ELEM_DOCUMENTATION = "doc";
+ public static final String ELEM_REPRESENTATION = "representation";
+
+
+ // Top-level qualified element names.
+ public static final QName Q_ELEM_DEFINITIONS =
+ new QName(NS_URI_WADL, ELEM_DEFINITIONS);
+ public static final QName Q_ELEM_TYPES =
+ new QName(NS_URI_WADL, ELEM_TYPES);
+ public static final QName Q_ELEM_GRAMMARS =
+ new QName(NS_URI_WADL, ELEM_GRAMMARS);
+ public static final QName Q_ELEM_PARAM =
+ new QName(NS_URI_WADL, ELEM_PARAM);
+ public static final QName Q_ELEM_RESOURCE =
+ new QName(NS_URI_WADL, ELEM_RESOURCE);
+ public static final QName Q_ELEM_RESOURCES =
+ new QName(NS_URI_WADL, ELEM_RESOURCES);
+
+ // Non top-level qualified element names.
+ public static final QName Q_ELEM_OPERATION =
+ new QName(NS_URI_WADL, ELEM_OPERATION);
+ public static QName Q_ELEM_PRECON;
+ public static QName Q_ELEM_EFFECT;
+ public static QName Q_ELEM_CATEGORY;
+ public static final QName Q_ELEM_INPUT =
+ new QName(NS_URI_WADL, ELEM_INPUT);
+ public static final QName Q_ELEM_OUTPUT =
+ new QName(NS_URI_WADL, ELEM_OUTPUT);
+ public static final QName Q_ELEM_DOCUMENTATION =
+ new QName(NS_URI_WADL, ELEM_DOCUMENTATION);
+ public static final QName Q_ELEM_REPRESENTATION =
+ new QName(NS_URI_WADL, ELEM_REPRESENTATION);
+ public static final QName Q_ELEM_INCLUDE =
+ new QName(NS_URI_WADL, ELEM_INCLUDE);
+
+ // Attribute names.
+ public static final String ATTR_NAME = "name";
+ public static final String PARAM_STYLE = "style";
+ public static final String PARAM_NAME = "name";
+ public static final String PARAM_TYPE = "type";
+ public static final String PARAM_REQUIRED = "required";
+ public static final String PARAM_DEFAULT = "default";
+ public static final String OPTION_VALUE = "value";
+ public static final String ATTR_BASE = "base";
+ public static final String REQUEST_ELEMENT_NAME ="element";
+ public static final String ATTR_PRE = "precondition";
+ public static final String ID_NAME = "id";
+ public static final String RESOURCE_ATTR_NAME = "path";
+ public static final String ATTR_TARGET_NAMESPACE = "targetNamespace";
+ public static final String ATTR_ELEMENT = "element";
+ public static final String ATTR_TYPE = "type";
+ public static final String ATTR_MESSAGE = "message";
+ public static final String ATTR_MODELREF = "modelReference";
+ public static final String ATTR_LIFTINGSCHEMAMAPPING = "liftingSchemaMapping";
+ public static final String ATTR_LOWERINGSCHEMAMAPPING = "loweringSchemaMapping";
+ public static final String ATTR_PARAMETER_ORDER = "parameterOrder";
+ public static final String ATTR_EXPRESSION = "expression";
+ public static final String ATTR_BINDING = "binding";
+ public static final String ATTR_XMLNS = "xmlns";
+ public static final String ATTR_NAMESPACE = "namespace";
+ public static final String ATTR_LOCATION = "location";
+ public static final String ATTR_REQUIRED = "required";
+ public static final String ATTR_TAXONOMYURI = "taxonomyURI";
+ public static final String ATTR_TAXONOMYCODE = "taxonomyCode";
+
+ // Lists of native attribute names.
+ public static final String[] PART_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_TYPE, ATTR_ELEMENT, ATTR_MODELREF};
+ public static final String[] BINDING_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_TYPE};
+ public static final String[] BINDING_FAULT_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] BINDING_INPUT_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] BINDING_OPERATION_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] BINDING_OUTPUT_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] FAULT_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_MESSAGE};
+ public static final String[] IMPORT_ATTR_NAMES =
+ new String[]{ATTR_NAMESPACE, ATTR_LOCATION};
+ public static final String[] INPUT_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_MESSAGE};
+ public static final String[] CATEGORY_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_TAXONOMYURI, ATTR_TAXONOMYCODE};
+ public static final String[] OPADDON_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_EXPRESSION};
+ public static final String[] MESSAGE_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] OPERATION_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_PARAMETER_ORDER};
+ public static final String[] OUTPUT_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_MESSAGE};
+ public static final String[] PORT_ATTR_NAMES =
+ new String[]{ATTR_NAME, ATTR_BINDING};
+ public static final String[] PORT_TYPE_ATTR_NAMES =
+ new String[]{RESOURCE_ATTR_NAME};
+ public static final String[] SERVICE_ATTR_NAMES =
+ new String[]{ATTR_NAME};
+ public static final String[] TYPES_ATTR_NAMES =
+ new String[]{};
+
+ // Qualified attribute names.
+ public static final QName Q_ATTR_REQUIRED =
+ new QName(NS_URI_WADL, ATTR_REQUIRED);
+ public static QName Q_ATTR_MODELREF;
+ public static QName Q_ATTR_LIFTINGSCHEMAMAPPING;
+ public static QName Q_ATTR_LOWERINGSCHEMAMAPPING;
+
+ // XML Declaration string.
+ public static final String XML_DECL_DEFAULT = "UTF-8";
+ public static final String XML_DECL_START =
+ "";
+
+ // Feature names.
+ public static final String FEATURE_VERBOSE = "javax.wsdl.verbose";
+ public static final String FEATURE_IMPORT_DOCUMENTS =
+ "javax.wsdl.importDocuments";
+ public static final String FEATURE_PARSE_SAWSDL = "urn:w3.org:sawsdl";
+ public static final String FEATURE_PARSE_SAWADL = "urn:w3.org:sawadl";
+
+ public static enum SemanticExtensionType {
+ WADLS, SAWADL;
+ }
+
+ public static final void setSemanticExtensionURI(SemanticExtensionType type) {
+ String uri = NS_URI_WADLS;
+ if(type == SemanticExtensionType.SAWADL)
+ uri = NS_URI_SAWADL;
+
+ Q_ELEM_PRECON =
+ new QName(uri, ELEM_PRECON);
+ Q_ELEM_EFFECT =
+ new QName(uri, ELEM_EFFECT);
+ Q_ATTR_MODELREF =
+ new QName(uri, ATTR_MODELREF);
+ Q_ATTR_LIFTINGSCHEMAMAPPING =
+ new QName(uri, ATTR_LIFTINGSCHEMAMAPPING);
+ Q_ATTR_LOWERINGSCHEMAMAPPING =
+ new QName(uri, ATTR_LOWERINGSCHEMAMAPPING);
+ }
+
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,272 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.Grammars;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.SchemaUtils;
+
+/**
+ * This class represents the <types> section of a WSDL document.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class GrammarsImpl implements Grammars
+{
+ protected Application app = null; //WADLS Definition
+ protected List modelReferences = null;
+ protected Element docEl = null;
+ protected List extElements = new Vector();
+ protected Map allSchemas = null;
+
+
+ public static final long serialVersionUID = 1;
+
+ public GrammarsImpl(Application app){
+ this.app = app;
+ }
+
+ public List getTopLevelSchemas(){
+ return SchemaUtils.getSchemas(this.extElements);
+ }
+
+ /**
+ * Get the DOM elements of all the schemas in this Types.
+ * @return A list of DOM elements of all the schemas in this Types.
+ */
+ public Map getSchemas(){
+ return this.allSchemas;
+ }
+
+ public void setSchemas(Map allSchemas){
+ this.allSchemas = allSchemas;
+ }
+
+
+ /**
+ * Get the DOM element of the first schema in this Types.
+ * @return The DOM element of the first schema in this Types.
+ */
+ public Schema getFirstSchema(){
+ return SchemaUtils.getFirstSchema(this.extElements);
+ }
+ public ModelReference getModelReference(){
+ if(modelReferences == null)
+ return null;
+ return modelReferences.get(0);
+ }
+
+ public List getModelReferences(Element startElement, String path, Application app) throws WADLSException, URISyntaxException {
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrModelReference = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ if (attrModelReference.equals(""))
+ return null;
+ List mrefs = ModelReferenceImpl.getModelReferences(attrModelReference, app);
+ if(mrefs.size() == 0)
+ return null;
+ return mrefs;
+ }
+ public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException{
+ List mrefs = getModelReferences(startElement, path, app);
+ return mrefs.get(0);
+ }
+
+
+ private Element getXSDEle(Element startElement, String path) throws WADLSException{
+ if (path == null || path == "")
+ return startElement;
+ String eleName = startElement.getLocalName();
+ if (eleName.equals("element")){ //search the target from ();
+ modelReferences.add(0, modelReference);
+ }
+
+ public List getModelReferences() {
+ return modelReferences;
+ }
+
+ public void setModelReferences(List refs) {
+ modelReferences = refs;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ public void setModelReferences(Element startElement, String path, List refs) throws WADLSException {
+ for(ModelReference ref : refs) {
+ addModelReference(startElement, path, ref);
+ }
+ }
+
+ public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+
+ if (modelReference != null){
+ String strModelReference = modelReference.value();
+ Attr attr = el.getAttributeNodeNS(
+ Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ if(attr == null) {
+ attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ el.setAttributeNodeNS(attr);
+ }
+ String value = attr.getValue();
+ if(value != null) {
+ value += " " + strModelReference;
+ } else {
+ value = strModelReference;
+ }
+ attr.setValue(value);
+ modelReference.setParent(el);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ }
+
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (schemaMapping != null){
+ Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ attr.setValue(schemaMapping);
+ el.setAttributeNodeNS(attr);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ }
+
+ public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (schemaMapping != null){
+ Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ attr.setValue(schemaMapping);
+ el.setAttributeNodeNS(attr);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ }
+ public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ if (attrSchemaMapping == "")
+ return null;
+ return attrSchemaMapping;
+
+ }
+
+ public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ if (attrSchemaMapping == "")
+ return null;
+ return attrSchemaMapping;
+
+ }
+
+
+ /**
+ * Add an extensibility element.
+ *
+ * @param extElement the extensibility element to be added
+ */
+
+
+ /**
+ * Get all the extensibility elements defined here.
+ */
+
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Types:");
+
+ if (extElements != null)
+ {
+ Iterator extIterator = extElements.iterator();
+
+ while (extIterator.hasNext())
+ {
+ strBuf.append("\n" + extIterator.next());
+ }
+ }
+
+ return strBuf.toString();
+ }
+
+
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,207 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an import, and may contain a reference
+ * to the imported definition.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class IncludeImpl implements Include
+{
+ protected String namespaceURI = null;
+ protected String locationURI = null;
+ /*
+ This would need to be made into a generic reference to handle other
+ types of referenced documents.
+ */
+ protected Application application = null;
+ protected Element docEl = null;
+ protected Map extensionAttributes = new HashMap();
+ protected List nativeAttributeNames =
+ Arrays.asList(Constants.IMPORT_ATTR_NAMES);
+
+ public static final long serialVersionUID = 1;
+
+ public void setNamespaceURI(String namespaceURI)
+ {
+ this.namespaceURI = namespaceURI;
+ }
+
+ public String getNamespaceURI()
+ {
+ return namespaceURI;
+ }
+
+ public void setLocationURI(String locationURI)
+ {
+ this.locationURI = locationURI;
+ }
+
+ public String getLocationURI()
+ {
+ return locationURI;
+ }
+
+ /**
+ * This property can be used to hang a referenced Definition,
+ * and the top-level Definition (i.e. the one with the <import>)
+ * will use this Definition when resolving referenced WSDL parts.
+ * This would need to be made into a generic reference to handle
+ * other types of referenced documents.
+ */
+ public void setApplication(Application application)
+ {
+ this.application = application;
+ }
+
+ /**
+ * This property can be used to hang a referenced Definition,
+ * and the top-level Definition (i.e. the one with the <import>)
+ * will use this Definition when resolving referenced WSDL parts.
+ * This would need to be made into a generic reference to handle
+ * other types of referenced documents.
+ */
+ public Application getApplication()
+ {
+ return application;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ /**
+ * Set an extension attribute on this element. Pass in a null value to remove
+ * an extension attribute.
+ *
+ * @param name the extension attribute name
+ * @param value the extension attribute value. Can be a String, a QName, a
+ * List of Strings, or a List of QNames.
+ *
+ * @see #getExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public void setExtensionAttribute(QName name, Object value)
+ {
+ if (value != null)
+ {
+ extensionAttributes.put(name, value);
+ }
+ else
+ {
+ extensionAttributes.remove(name);
+ }
+ }
+
+ /**
+ * Retrieve an extension attribute from this element. If the extension
+ * attribute is not defined, null is returned.
+ *
+ * @param name the extension attribute name
+ *
+ * @return the value of the extension attribute, or null if
+ * it is not defined. Can be a String, a QName, a List of Strings, or a List
+ * of QNames.
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public Object getExtensionAttribute(QName name)
+ {
+ return extensionAttributes.get(name);
+ }
+
+ /**
+ * Get the map containing all the extension attributes defined
+ * on this element. The keys are the qnames of the attributes.
+ *
+ * @return a map containing all the extension attributes defined
+ * on this element
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttribute
+ */
+ public Map getExtensionAttributes()
+ {
+ return extensionAttributes;
+ }
+
+ /**
+ * Get the list of local attribute names defined for this element in
+ * the WSDL specification.
+ *
+ * @return a List of Strings, one for each local attribute name
+ */
+ public List getNativeAttributeNames()
+ {
+ return nativeAttributeNames;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Import:");
+
+ if (namespaceURI != null)
+ {
+ strBuf.append("\nnamespaceURI=" + namespaceURI);
+ }
+
+ if (locationURI != null)
+ {
+ strBuf.append("\nlocationURI=" + locationURI);
+ }
+
+ if (application != null)
+ {
+ strBuf.append("\napplication=" + application);
+ }
+
+ Iterator keys = extensionAttributes.keySet().iterator();
+
+ while (keys.hasNext())
+ {
+ QName name = (QName)keys.next();
+
+ strBuf.append("\nextension attribute: " + name + "=" +
+ extensionAttributes.get(name));
+ }
+
+ return strBuf.toString();
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,274 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+import javax.wadls.Effect;
+import javax.wadls.Request;
+import javax.wadls.ModelReference;
+import javax.wadls.Method;
+import javax.wadls.Response;
+import javax.wadls.PreCondition;
+import org.w3c.dom.Element;
+
+/**
+ * This class represents a WSDL operation.
+ * It includes information on input, output and fault
+ * messages associated with usage of the operation.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Paul Fremantle (pzf@us.ibm.com)
+ * @author Nirmal Mukhi (nmukhi@us.ibm.com)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class MethodImpl implements Method
+{
+ protected String name = null;
+ protected Request request = null;
+ protected Response response = null;
+ protected List modelRefs = null;
+ protected PreCondition preCondition = null;
+ protected Effect effect = null;
+ protected List parameterOrder = null;
+ protected Element docEl = null;
+ protected List extElements = new Vector();
+ protected boolean isUndefined = true;
+
+ public static final long serialVersionUID = 1;
+
+
+ public void addModelReference (ModelReference modelReference){
+ if (this.modelRefs == null)
+ modelRefs= new ArrayList ();
+ modelRefs.add(modelReference);
+ }
+
+
+ /**
+ * Get the modelReference of this operation.
+ *
+ * @return the modelReference value
+ */
+
+ public ModelReference getModelReference(){
+ if(modelRefs == null)
+ return null;
+ return modelRefs.get(0);
+ }
+
+ /**
+ * Set the precondition of this operation.
+ *
+ * @param preCondition the desired precondition
+ */
+ public void setPreCondition(PreCondition preCondition){
+ this.preCondition = preCondition;
+ }
+
+ /**
+ * Get the precondition of this operation.
+ *
+ * @return the precondition
+ */
+ public PreCondition getPreCondition(){
+ return this.preCondition;
+ }
+
+ /**
+ * Set the effect of this operation.
+ *
+ * @param effect the desired effect
+ */
+ public void setEffect(Effect effect){
+ this.effect = effect;
+ }
+
+ /**
+ * Get the effect of this operation.
+ *
+ * @return The effect
+ */
+ public Effect getEffect(){
+ return this.effect;
+ }
+
+ /**
+ * Set the name of this operation.
+ *
+ * @param name the desired name
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * Get the name of this operation.
+ *
+ * @return the operation name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Set the input message specification for this operation.
+ *
+ * @param input the new input message
+ */
+ public void setRequest(Request request)
+ {
+ this.request = request;
+ }
+
+ /**
+ * Get the input message specification for this operation.
+ *
+ * @return the input message
+ */
+ public Request getRequest()
+ {
+ return request;
+ }
+
+ /**
+ * Set the output message specification for this operation.
+ *
+ * @param output the new output message
+ */
+ public void setResponse(Response response)
+ {
+ this.response = response;
+ }
+
+ /**
+ * Get the output message specification for this operation.
+ *
+ * @return the output message specification for the operation
+ */
+ public Response getResponse()
+ {
+ return response;
+ }
+
+
+
+ /**
+ * Set the parameter ordering for a request-response,
+ * or solicit-response operation.
+ *
+ * @param parameterOrder a list of named parameters
+ * containing the part names to reflect the desired
+ * order of parameters for RPC-style operations
+ */
+ public void setParameterOrdering(List parameterOrder)
+ {
+ this.parameterOrder = parameterOrder;
+ }
+
+ /**
+ * Get the parameter ordering for this operation.
+ *
+ * @return the parameter ordering, a list consisting
+ * of message part names
+ */
+ public List getParameterOrdering()
+ {
+ return parameterOrder;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ public void setUndefined(boolean isUndefined)
+ {
+ this.isUndefined = isUndefined;
+ }
+
+ public boolean isUndefined()
+ {
+ return isUndefined;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Operation: name=" + name);
+
+ if (parameterOrder != null)
+ {
+ strBuf.append("\nparameterOrder=" + parameterOrder);
+ }
+
+
+ if (request != null)
+ {
+ strBuf.append("\n" + request);
+ }
+
+ if (response != null)
+ {
+ strBuf.append("\n" + response);
+ }
+
+ if (modelRefs != null)
+ for(ModelReference ref : modelRefs) {
+ strBuf.append('\n');
+ strBuf.append(ref);
+ }
+ /* if (modelRef != null)
+ {
+ strBuf.append("\n" + modelRef);
+ }*/
+
+ if (preCondition != null)
+ {
+ strBuf.append("\n" + preCondition);
+ }
+
+ if (effect != null)
+ {
+ strBuf.append("\n" + effect);
+ }
+
+ return strBuf.toString();
+ }
+
+ public List getModelReferences() {
+ return modelRefs;
+ }
+
+ public void setModelReferences(List refs) {
+ modelRefs = refs;
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,217 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.WADLSException;
+
+/**
+ * This class represents a ModelReference.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ *
+ */
+public class ModelReferenceImpl implements ModelReference {
+
+ /**
+ * The URI of the ontology used in the model reference
+ */
+ protected URI namespace;
+
+ /**
+ * The parent WSDL-S element of this model reference
+ */
+ protected Object parent;
+
+ /**
+ * The NS Prefix of the model reference
+ */
+ protected String prefix;
+
+ /**
+ * The ontology concept of this model reference
+ */
+ protected String concept;
+
+ /**
+ * Get the concept of this modelReference.
+ * @return The concept of this modelReference.
+ */
+ public String getConcept(){
+ return this.concept;
+ }
+
+ /**
+ * Set the concept of this modelReference
+ * @param concept The desired concept of this modelReference
+ */
+ public void setConcept(String concept){
+ this.concept = concept;
+ }
+
+ /**
+ * Get the prefix of this modelReference
+ * @return The prefix of this modelReference
+ */
+ public String getPrefix(){
+ return this.prefix;
+ }
+
+ /**
+ * Set the prefix of the ontology used in this modelReference
+ * @param prefix The desired prefix of the ontology used in this modelReference
+ */
+ public void setPrefix(String prefix){
+ this.prefix = prefix;
+ }
+
+ /**
+ * Get the namespace of the ontology used in this modelReference
+ * @return The namespace of the ontology used in this modelReference
+ */
+ public URI getNamespace(){
+ return this.namespace;
+ }
+
+ /**
+ * Set the namespace of the ontology used in this modelReference
+ * @param nameSpace The desired namespace of the ontology used in this modelReference
+ */
+ public void setNamespace(String nameSpace)
+ throws URISyntaxException{
+ //System.out.println("namespace is "+nameSpace);
+ this.namespace = new URI(nameSpace);
+ }
+
+ /**
+ * Get the parent object of this modelReference
+ * @return The parent object of this modelReference
+ */
+ public Object getParent(){
+ return this.parent;
+ }
+
+ /**
+ * Set the parent object of this modelReference
+ * @param parent The desired parent object of this modelReference
+ */
+ public void setParent(Object parent){
+ this.parent = parent;
+ }
+
+ /**
+ * Return a formatted string representing this modelReference.
+ * @return A formatted string representing this modelReference.
+ */
+ public String value(){
+ if (this.concept == null || this.namespace == null)
+ return null;
+ return (this.namespace + "#" + this.concept);
+ }
+
+ public String toString(){
+ if (this.concept == null)
+ return null;
+ if (this.prefix != null){ //use the prefix
+ return (this.prefix + "#" + this.concept);
+ }
+ else if (this.namespace != null){ //use the namespace
+ return (this.namespace + "#" + this.concept);
+ }
+ else
+ return null;
+ }
+
+ public static List getModelReferences(String mrefs, Application app) throws URISyntaxException, WADLSException {
+ String[] refs = mrefs.split(" ");
+ List list = new ArrayList(refs.length);
+ for(String ref : refs) {
+ ModelReference mr = app.createModelReference();
+ mr.valueOf(ref, app);
+ list.add(mr);
+ }
+ return list;
+ }
+
+ public void valueOf(String modelReferenceAsString, Application app) throws URISyntaxException, WADLSException{
+ int index = modelReferenceAsString.indexOf('#');
+ String prefix = (index != -1)
+ ? modelReferenceAsString.substring(0, index)
+ : null;
+ String namespaceURI = prefix;
+ String localPart = null;
+
+ //System.out.println("Namespace URI:"+namespaceURI);
+ //assume the user give prefix#localName
+ if (prefix != null){
+ //try to find a namespaceURI for that prefix
+ String tmpNamespaceURI = app.getNamespace(prefix);
+ //System.out.println("Temp Namespace URI:"+tmpNamespaceURI);
+ if(tmpNamespaceURI != null) { //the user did give prefix
+ namespaceURI = tmpNamespaceURI.substring(0, tmpNamespaceURI.length());
+ }
+ else{ //the user gave namespaceURI instead of prefix
+ //try to find a prefix for that namespaceURI
+ prefix = app.getPrefix(namespaceURI);
+ if (prefix == null)
+ prefix = app.getPrefix(namespaceURI+"#");
+ }
+ localPart = modelReferenceAsString.substring(index + 1);
+ }
+ else if (!prefix.equals("")){ //no prefix or namespaceURI is given, but '#' is included
+ //use target namespace
+ namespaceURI = app.getTargetNamespace();
+ prefix = app.getPrefix(namespaceURI);
+ localPart = modelReferenceAsString.substring(1);
+ }
+ else{
+ throw new IllegalArgumentException(
+ "No Namespace URI is provided for this modelReference: " +
+ modelReferenceAsString
+ + ".");
+ }
+
+ if (namespaceURI != null){
+ System.out.println("namespaceURI is "+namespaceURI);
+ this.setNamespace(namespaceURI);
+ //System.out.println("Concept:"+localPart);
+ this.setConcept(localPart);
+ this.setPrefix(prefix);
+ }
+ else{
+ String faultCode = (prefix == null)
+ ? WADLSException.NO_PREFIX_SPECIFIED
+ : WADLSException.UNBOUND_PREFIX;
+
+ WADLSException wadlExc = new WADLSException(faultCode,
+ "Unable to determine " +
+ "namespace of '" +
+ modelReferenceAsString + "'.");
+
+ throw wadlExc;
+ }
+ }
+
+ /**
+ * Equals method overriden to compare two modelreferences.
+ * We campare the namespace and the concept name (literally)
+ * @param obj
+ */
+ public boolean equals(Object obj) {
+ if (!(obj instanceof ModelReference)){
+ return false;
+ }else{
+ ModelReference ref = (ModelReference)obj;
+ return (concept.equals(ref.getConcept()) &&
+ namespace.equals(ref.getNamespace()));
+ }
+ }
+
+ public int hashCode(){
+ return this.value().hashCode();
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,223 @@
+/*
+ * Created on Apr 4, 2005
+ *
+ */
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+import org.w3c.dom.*;
+
+/**
+ * This class represents an instance of PreCondition or Effect,
+ *
+ * @author Zixin Wu
+ */
+public class OperationAddOnImpl implements PreCondition, Effect
+{
+ protected String name = null;
+ protected List modelReferences = null;
+ protected String expression = null;
+ protected Element docEl = null;
+ protected Map extensionAttributes = new HashMap();
+ protected List nativeAttributeNames =
+ Arrays.asList(Constants.OPADDON_ATTR_NAMES);
+
+ public static final long serialVersionUID = 1;
+
+ /**
+ * Set the name.
+ *
+ * @param name the desired name
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * Get the name.
+ *
+ * @return the name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Get the modelReference.
+ *
+ * @return The modelReference
+ */
+ public ModelReference getModelReference(){
+ if(modelReferences == null)
+ return null;
+ return modelReferences.get(0);
+ }
+
+ /**
+ * Set the modelReference.
+ *
+ * @param modelReference The desired modelReference.
+ */
+ public void addModelReference(ModelReference modelReference){
+ if(modelReferences == null)
+ modelReferences = new ArrayList();
+ modelReferences.add(0, modelReference);
+ }
+
+ /**
+ * Set the expression.
+ *
+ * @param expression The desired expression.
+ */
+ public void setExpression(String expression){
+ this.expression = expression;
+ }
+
+ /**
+ * Get the expression.
+ *
+ * @return The expression.
+ */
+ public String getExpression(){
+ return this.expression;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ /**
+ * Set an extension attribute on this element. Pass in a null value to remove
+ * an extension attribute.
+ *
+ * @param name the extension attribute name
+ * @param value the extension attribute value. Can be a String, a QName, a
+ * List of Strings, or a List of QNames.
+ *
+ * @see #getExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public void setExtensionAttribute(QName name, Object value)
+ {
+ if (value != null)
+ {
+ extensionAttributes.put(name, value);
+ }
+ else
+ {
+ extensionAttributes.remove(name);
+ }
+ }
+
+ /**
+ * Retrieve an extension attribute from this element. If the extension
+ * attribute is not defined, null is returned.
+ *
+ * @param name the extension attribute name
+ *
+ * @return the value of the extension attribute, or null if
+ * it is not defined. Can be a String, a QName, a List of Strings, or a List
+ * of QNames.
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public Object getExtensionAttribute(QName name)
+ {
+ return extensionAttributes.get(name);
+ }
+
+ /**
+ * Get the map containing all the extension attributes defined
+ * on this element. The keys are the qnames of the attributes.
+ *
+ * @return a map containing all the extension attributes defined
+ * on this element
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttribute
+ */
+ public Map getExtensionAttributes()
+ {
+ return extensionAttributes;
+ }
+
+ /**
+ * Get the list of local attribute names defined for this element in
+ * the WSDLS specification.
+ *
+ * @return a List of Strings, one for each local attribute name
+ */
+ public List getNativeAttributeNames()
+ {
+ return nativeAttributeNames;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("name=" + name);
+
+ strBuf.append("\nmodelReference=");
+ for(ModelReference ref : modelReferences) {
+ strBuf.append(ref.toString());
+ strBuf.append('\n');
+ }
+
+ if (expression != null)
+ {
+ strBuf.append("\nexpression=" + expression);
+ }
+
+// Iterator keys = extensionAttributes.keySet().iterator();
+//
+// while (keys.hasNext())
+// {
+// QName name = (QName)keys.next();
+//
+// strBuf.append("\nextension attribute: " + name + "=" +
+// extensionAttributes.get(name));
+// }
+
+ return strBuf.toString();
+ }
+
+ public List getModelReferences() {
+ return modelReferences;
+ }
+
+ public void setModelReferences(List refs) {
+ modelReferences = refs;
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ *
+ * Author : Srikalyan Swayampakula. .
+ * Name of the File : Param.java .
+ * Created on : Nov 22, 2009 at 4:03:57 PM .
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ * 3. Neither the name of the University of Georgia nor the names
+ * of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import javax.wadls.Param;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class ParamImpl implements Param
+{
+
+ List optionvalue = new Vector();
+ protected String name;
+ protected String style;
+ protected String id;
+ protected String type;
+ protected String default1;
+ protected String required = "false";
+ protected boolean repeation = false;
+ protected String fixed;
+ protected String path;
+ protected String modelreference =null;
+ protected String liftingschemamapping=null;
+ protected String loweringschemamapping=null;
+
+
+
+ public String getModelreference() {
+ return modelreference;
+ }
+
+ public void setModelreference(String modelreference) {
+ this.modelreference = modelreference;
+ }
+
+ public String getLiftingschemamapping() {
+ return liftingschemamapping;
+ }
+
+ public void setLiftingschemamapping(String liftingschemamapping) {
+ this.liftingschemamapping = liftingschemamapping;
+ }
+
+ public String getLoweringschemamapping() {
+ return loweringschemamapping;
+ }
+
+ public void setLoweringschemamapping(String loweringschemamapping) {
+ this.loweringschemamapping = loweringschemamapping;
+ }
+
+ public List getOptionvalue() {
+ return optionvalue;
+ }
+
+ public void setOptionvalue(List optionvalue) {
+ this.optionvalue = optionvalue;
+ }
+
+ public ParamImpl()
+ {
+ }
+
+ public ParamImpl(URI href, String name, String style, String id, String type, String default1, String fixed, String path)
+ {
+
+
+ this.name = name;
+ this.style = style;
+ this.id = id;
+ this.type = type;
+ this.default1 = default1;
+ this.fixed = fixed;
+ this.path = path;
+ }
+
+ public String getDefault1()
+ {
+ return default1;
+ }
+
+ public void setDefault1(String default1)
+ {
+ this.default1 = default1;
+ }
+
+
+
+ public String getFixed()
+ {
+ return fixed;
+ }
+
+ public void setFixed(String fixed)
+ {
+ this.fixed = fixed;
+ }
+
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+
+ public String getPath()
+ {
+ return path;
+ }
+
+ public void setPath(String path)
+ {
+ this.path = path;
+ }
+
+ public boolean isRepeation()
+ {
+ return repeation;
+ }
+
+ public void setRepeation(boolean repeation)
+ {
+ this.repeation = repeation;
+ }
+
+ public String getRequired()
+ {
+ return required;
+ }
+
+ public void setRequired(String required)
+ {
+ this.required = required;
+ }
+
+ public String getStyle()
+ {
+ return style;
+ }
+
+ public void setStyle(String style)
+ {
+ this.style = style;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,347 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.Params;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.schema.Schema;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.SchemaUtils;
+
+/**
+ * This class represents the <types> section of a WSDL document.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class ParamsImpl implements Params
+{
+ protected List modelRefs = null;
+ protected Application app = null; //WSDLS Definition
+ protected Element docEl = null;
+ protected List extElements = new Vector();
+ protected Map allSchemas = null;
+
+ public static final long serialVersionUID = 1;
+
+ public ParamsImpl(Application app){
+ this.app = app;
+ }
+
+ public List getTopLevelSchemas(){
+ return SchemaUtils.getSchemas(this.extElements);
+ }
+
+ /**
+ * Get the DOM elements of all the schemas in this Types.
+ * @return A list of DOM elements of all the schemas in this Types.
+ */
+ public Map getSchemas(){
+ return this.allSchemas;
+ }
+
+ public void setSchemas(Map allSchemas){
+ this.allSchemas = allSchemas;
+ }
+
+
+
+ public void addModelReference (ModelReference modelReference){
+ if (this.modelRefs == null)
+ modelRefs= new ArrayList ();
+ modelRefs.add(modelReference);
+ }
+
+
+ /**
+ * Get the modelReference of this operation.
+ *
+ * @return the modelReference value
+ */
+
+ public ModelReference getModelReference(){
+ if(modelRefs == null)
+ return null;
+ return modelRefs.get(0);
+ }
+ /**
+ * Get the DOM element of the first schema in this Types.
+ * @return The DOM element of the first schema in this Types.
+ */
+ public Schema getFirstSchema(){
+ return SchemaUtils.getFirstSchema(this.extElements);
+ }
+ public List getModelReferences() {
+ return modelRefs;
+ }
+ public void setModelReferences(List refs) {
+ modelRefs = refs;
+ }
+ /**
+ * Get the XSD simpleType with the given name.
+ * @param name The QName of the type
+ * @return A DOM Element representing the simpleType
+ * @throws WADLSException
+ */
+
+ public Element getXSDElement(String xpath) throws WADLSException{
+ Element returnElt = null;
+ Map schemas = this.getSchemas();
+ Iterator it = schemas.values().iterator();
+ while(it.hasNext()){
+ Schema schema = (Schema)(it.next());
+ Element schemaEle = schema.getElement();
+ returnElt = this.getXSDElement(schemaEle, xpath);
+ if (returnElt != null)
+ return returnElt;
+ }
+ return null;
+ }
+
+ /**
+ * Get the modelReference on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @return The modelReference
+ */
+ public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException{
+ List mrefs = getModelReferences(startElement, path, app);
+ return mrefs.get(0);
+ }
+
+ /**
+ * Set the modelReference on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param modelReference The desired modelReference
+ */
+ public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+
+ if (modelReference != null){
+ String strModelReference = modelReference.value();
+ Attr attr = el.getAttributeNodeNS(
+ Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ if(attr == null) {
+ attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ el.setAttributeNodeNS(attr);
+ }
+ String value = attr.getValue();
+ if(value != null) {
+ value += " " + strModelReference;
+ } else {
+ value = strModelReference;
+ }
+ attr.setValue(value);
+ modelReference.setParent(el);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ }
+
+ /**
+ * Get the liftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @return The schemaMapping value
+ */
+ public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ if (attrSchemaMapping == "")
+ return null;
+ return attrSchemaMapping;
+ }
+
+ /**
+ * Get the loweringSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @return The schemaMapping value
+ */
+ public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ if (attrSchemaMapping == "")
+ return null;
+ return attrSchemaMapping;
+ }
+
+ /**
+ * Set the liftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param schemaMapping The desired schemaMapping
+ */
+ public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (schemaMapping != null){
+ Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ attr.setValue(schemaMapping);
+ el.setAttributeNodeNS(attr);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+ }
+
+ /**
+ * Set the loweringSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param schemaMapping The desired schemaMapping
+ */
+ public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+ Element el = getXSDEle(startElement, path);
+ if (schemaMapping != null){
+ Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ attr.setPrefix(Constants.PREFIX_WSDLS);
+ attr.setValue(schemaMapping);
+ el.setAttributeNodeNS(attr);
+ }
+ else
+ el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+ }
+
+ private Element getXSDEle(Element startElement, String path) throws WADLSException{
+ if (path == null || path == "")
+ return startElement;
+ String eleName = startElement.getLocalName();
+ if (eleName.equals("element")){ //search the target from getModelReferences(Element startElement, String path, Application app) throws WADLSException, URISyntaxException {
+ Element el = getXSDEle(startElement, path);
+ if (el == null)
+ return null;
+ String attrModelReference = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+ if (attrModelReference.equals(""))
+ return null;
+ List mrefs = ModelReferenceImpl.getModelReferences(attrModelReference, app);
+ if(mrefs.size() == 0)
+ return null;
+ return mrefs;
+ }
+ public void setModelReferences(Element startElement, String path, List refs) throws WADLSException {
+ for(ModelReference ref : refs) {
+ addModelReference(startElement, path, ref);
+ }
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,205 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.ModelReference;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an input message, and contains the name
+ * of the input and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public class RequestImpl implements Request
+{
+ protected String name = null;
+ List inputXSDList = new Vector();
+ List paramList = new Vector();
+ protected List modelReferences = null;
+ protected Element docEl = null;
+ protected Map extensionAttributes = new HashMap();
+ protected List nativeAttributeNames =
+ Arrays.asList(Constants.INPUT_ATTR_NAMES);
+
+ public static final long serialVersionUID = 1;
+
+ /**
+ * Set the name of this input message.
+ *
+ * @param name the desired name
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+ public List getModelReferences() {
+ return modelReferences;
+ }
+
+ public void setModelReferences(List refs) {
+ modelReferences = refs;
+ }
+ public ModelReference getModelReference(){
+ if(modelReferences == null)
+ return null;
+ return modelReferences.get(0);
+ }
+
+ /**
+ * Set the modelReference.
+ *
+ * @param modelReference The desired modelReference.
+ */
+ public void addModelReference(ModelReference modelReference){
+ if(modelReferences == null)
+ modelReferences = new ArrayList();
+ modelReferences.add(0, modelReference);
+ }
+ /**
+ * Get the name of this input message.
+ *
+ * @return the input message name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setInputXSDList(List inputXSDList){
+ this.inputXSDList=inputXSDList;
+ }
+ public List getInputXSDList(){
+
+ return this.inputXSDList;
+ }
+
+
+ public void setParamList(List paramList){
+ this.paramList=paramList;
+ }
+ public List getParamList(){
+
+ return this.paramList;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ /**
+ * Set an extension attribute on this element. Pass in a null value to remove
+ * an extension attribute.
+ *
+ * @param name the extension attribute name
+ * @param value the extension attribute value. Can be a String, a QName, a
+ * List of Strings, or a List of QNames.
+ *
+ * @see #getExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public void setExtensionAttribute(QName name, Object value)
+ {
+ if (value != null)
+ {
+ extensionAttributes.put(name, value);
+ }
+ else
+ {
+ extensionAttributes.remove(name);
+ }
+ }
+
+ /**
+ * Retrieve an extension attribute from this element. If the extension
+ * attribute is not defined, null is returned.
+ *
+ * @param name the extension attribute name
+ *
+ * @return the value of the extension attribute, or null if
+ * it is not defined. Can be a String, a QName, a List of Strings, or a List
+ * of QNames.
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public Object getExtensionAttribute(QName name)
+ {
+ return extensionAttributes.get(name);
+ }
+
+ /**
+ * Get the map containing all the extension attributes defined
+ * on this element. The keys are the qnames of the attributes.
+ *
+ * @return a map containing all the extension attributes defined
+ * on this element
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttribute
+ */
+ public Map getExtensionAttributes()
+ {
+ return extensionAttributes;
+ }
+
+ /**
+ * Get the list of local attribute names defined for this element in
+ * the WSDL specification.
+ *
+ * @return a List of Strings, one for each local attribute name
+ */
+ public List getNativeAttributeNames()
+ {
+ return nativeAttributeNames;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Input: name=" + name);
+
+ Iterator keys = extensionAttributes.keySet().iterator();
+
+ while (keys.hasNext())
+ {
+ QName name = (QName)keys.next();
+
+ strBuf.append("\nextension attribute: " + name + "=" +
+ extensionAttributes.get(name));
+ }
+
+ return strBuf.toString();
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,364 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.ModelReference;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents a port type. It contains information about
+ * operations associated with this port type.
+ *
+ * @author Paul Fremantle
+ * @author Nirmal Mukhi
+ * @author Matthew J. Duftler
+ * @author Zixin Wu
+ */
+public class ResourceImpl implements Resource
+{
+ protected QName name = null;
+ protected List modelReferences = null;
+ protected List methods = new Vector();
+ protected List categories = new Vector();
+ protected Element docEl = null;
+ protected Map extensionAttributes = new HashMap();
+ protected List nativeAttributeNames =
+ Arrays.asList(Constants.PORT_TYPE_ATTR_NAMES);
+ protected boolean isUndefined = true;
+
+ public static final long serialVersionUID = 1;
+
+
+ /**
+ * Get the category specifications in this portType.
+ * @return All the categories in this portType.
+ */
+ public List getCategories()
+ {
+ return this.categories;
+ }
+
+ /**
+ * Set the name of this port type.
+ *
+ * @param name the desired name
+ */
+ public void setQName(QName name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * Get the name of this port type.
+ *
+ * @return the port type name
+ */
+ public QName getQName()
+ {
+ return name;
+ }
+
+ /**
+ * Add an operation to this port type.
+ *
+ * @param operation the operation to be added
+ */
+ public void addMethod(Method operation)
+ {
+ methods.add(operation);
+ }
+
+ /**
+ * Get the specified operation. Note that operation names can
+ * be overloaded within a PortType. In case of overloading, the
+ * names of the input and output messages can be used to further
+ * refine the search.
+ *
+ * @param name the name of the desired operation.
+ * @param inputName the name of the input message; if this is null
+ * it will be ignored.
+ * @param outputName the name of the output message; if this is null
+ * it will be ignored.
+ * @return the corresponding operation, or null if there wasn't
+ * any matching operation
+ */
+ public Method getMethod(String name,
+ String inputName,
+ String outputName)
+ {
+ boolean found = false;
+ Method ret = null;
+ Iterator opIterator = methods.iterator();
+
+ while (opIterator.hasNext())
+ {
+ Method op = (Method)opIterator.next();
+ String opName = op.getName();
+
+ if (name != null && opName != null)
+ {
+ if (!name.equals(opName))
+ {
+ op = null;
+ }
+ }
+ else if (name != null || opName != null)
+ {
+ op = null;
+ }
+
+ if (op != null && inputName != null)
+ {
+
+ String defaultInputName = opName;
+ defaultInputName = opName + "Request";
+ boolean specifiedDefault = inputName.equals(defaultInputName);
+ Request input = op.getRequest();
+
+ if (input != null)
+ {
+ String opInputName = input.getName();
+
+ if (opInputName == null)
+ {
+ if (!specifiedDefault)
+ {
+ op = null;
+ }
+ }
+ else if (!opInputName.equals(inputName))
+ {
+ op = null;
+ }
+ }
+ else
+ {
+ op = null;
+ }
+ }
+
+ if (op != null && outputName != null)
+ {
+ String defaultOutputName = opName;
+ defaultOutputName = opName + "Response";
+ boolean specifiedDefault = outputName.equals(defaultOutputName);
+ Response output = op.getResponse();
+
+ if (output != null)
+ {
+ String opOutputName = output.getName();
+
+ if (opOutputName == null)
+ {
+ if (!specifiedDefault)
+ {
+ op = null;
+ }
+ }
+ else if (!opOutputName.equals(outputName))
+ {
+ op = null;
+ }
+ }
+ else
+ {
+ op = null;
+ }
+ }
+
+ if (op != null)
+ {
+ if (found)
+ {
+ throw new IllegalArgumentException("Duplicate operation with " +
+ "name=" + name +
+ (inputName != null
+ ? ", inputName=" + inputName
+ : "") +
+ (outputName != null
+ ? ", outputName=" + outputName
+ : "") +
+ ", found in portType '" +
+ getQName() + "'.");
+ }
+ else
+ {
+ found = true;
+ ret = op;
+ }
+ }
+ }
+
+ return ret;
+ }
+ public ModelReference getModelReference(){
+ if(modelReferences == null)
+ return null;
+ return modelReferences.get(0);
+ }
+
+ /**
+ * Set the modelReference.
+ *
+ * @param modelReference The desired modelReference.
+ */
+ public void addModelReference(ModelReference modelReference){
+ if(modelReferences == null)
+ modelReferences = new ArrayList();
+ modelReferences.add(0, modelReference);
+ }
+ public List getModelReferences() {
+ return modelReferences;
+ }
+
+ public void setModelReferences(List refs) {
+ modelReferences = refs;
+ }
+ /**
+ * Get all the operations defined here.
+ */
+ public List getMethods()
+ {
+ return methods;
+ }
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ public void setUndefined(boolean isUndefined)
+ {
+ this.isUndefined = isUndefined;
+ }
+
+ public boolean isUndefined()
+ {
+ return isUndefined;
+ }
+
+ /**
+ * Set an extension attribute on this element. Pass in a null value to remove
+ * an extension attribute.
+ *
+ * @param name the extension attribute name
+ * @param value the extension attribute value. Can be a String, a QName, a
+ * List of Strings, or a List of QNames.
+ *
+ * @see #getExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public void setExtensionAttribute(QName name, Object value)
+ {
+ if (value != null)
+ {
+ extensionAttributes.put(name, value);
+ }
+ else
+ {
+ extensionAttributes.remove(name);
+ }
+ }
+
+ /**
+ * Retrieve an extension attribute from this element. If the extension
+ * attribute is not defined, null is returned.
+ *
+ * @param name the extension attribute name
+ *
+ * @return the value of the extension attribute, or null if
+ * it is not defined. Can be a String, a QName, a List of Strings, or a List
+ * of QNames.
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public Object getExtensionAttribute(QName name)
+ {
+ return extensionAttributes.get(name);
+ }
+
+ /**
+ * Get the map containing all the extension attributes defined
+ * on this element. The keys are the qnames of the attributes.
+ *
+ * @return a map containing all the extension attributes defined
+ * on this element
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttribute
+ */
+ public Map getExtensionAttributes()
+ {
+ return extensionAttributes;
+ }
+
+ /**
+ * Get the list of local attribute names defined for this element in
+ * the WSDL specification.
+ *
+ * @return a List of Strings, one for each local attribute name
+ */
+ public List getNativeAttributeNames()
+ {
+ return nativeAttributeNames;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("PortType: name=" + name);
+
+ if (methods != null)
+ {
+ Iterator opIterator = methods.iterator();
+
+ while (opIterator.hasNext())
+ {
+ strBuf.append("\n" + opIterator.next());
+ }
+ }
+
+ Iterator keys = extensionAttributes.keySet().iterator();
+
+ while (keys.hasNext())
+ {
+ QName name = (QName)keys.next();
+
+ strBuf.append("\nextension attribute: " + name + "=" +
+ extensionAttributes.get(name));
+ }
+
+ return strBuf.toString();
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,205 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an output message, and contains the name
+ * of the output and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public class ResponseImpl implements Response
+{
+ protected String name = null;
+ List inputXSDList = new Vector();
+ List paramList = new Vector();
+ protected List modelReferences = null;
+ protected Element docEl = null;
+ protected Map extensionAttributes = new HashMap();
+ protected List nativeAttributeNames =
+ Arrays.asList(Constants.OUTPUT_ATTR_NAMES);
+
+ public static final long serialVersionUID = 1;
+
+ /**
+ * Set the name of this output message.
+ *
+ * @param name the desired name
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public void setInputXSDList(List inputXSDList){
+ this.inputXSDList=inputXSDList;
+ }
+ public List getInputXSDList(){
+
+ return this.inputXSDList;
+ }
+
+
+ public void setParamList(List paramList){
+ this.paramList=paramList;
+ }
+ public List getParamList(){
+
+ return this.paramList;
+ }
+ /**
+ * Get the name of this output message.
+ *
+ * @return the output message name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+ public void setDocumentationElement(Element docEl)
+ {
+ this.docEl = docEl;
+ }
+ public ModelReference getModelReference(){
+ if(modelReferences == null)
+ return null;
+ return modelReferences.get(0);
+ }
+
+ /**
+ * Set the modelReference.
+ *
+ * @param modelReference The desired modelReference.
+ */
+ public void addModelReference(ModelReference modelReference){
+ if(modelReferences == null)
+ modelReferences = new ArrayList();
+ modelReferences.add(0, modelReference);
+ }
+ public List getModelReferences() {
+ return modelReferences;
+ }
+
+ public void setModelReferences(List refs) {
+ modelReferences = refs;
+ }
+ /**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+ public Element getDocumentationElement()
+ {
+ return docEl;
+ }
+
+ /**
+ * Set an extension attribute on this element. Pass in a null value to remove
+ * an extension attribute.
+ *
+ * @param name the extension attribute name
+ * @param value the extension attribute value. Can be a String, a QName, a
+ * List of Strings, or a List of QNames.
+ *
+ * @see #getExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public void setExtensionAttribute(QName name, Object value)
+ {
+ if (value != null)
+ {
+ extensionAttributes.put(name, value);
+ }
+ else
+ {
+ extensionAttributes.remove(name);
+ }
+ }
+
+ /**
+ * Retrieve an extension attribute from this element. If the extension
+ * attribute is not defined, null is returned.
+ *
+ * @param name the extension attribute name
+ *
+ * @return the value of the extension attribute, or null if
+ * it is not defined. Can be a String, a QName, a List of Strings, or a List
+ * of QNames.
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttributes
+ * @see ExtensionRegistry#registerExtensionAttributeType
+ * @see ExtensionRegistry#queryExtensionAttributeType
+ */
+ public Object getExtensionAttribute(QName name)
+ {
+ return extensionAttributes.get(name);
+ }
+
+ /**
+ * Get the map containing all the extension attributes defined
+ * on this element. The keys are the qnames of the attributes.
+ *
+ * @return a map containing all the extension attributes defined
+ * on this element
+ *
+ * @see #setExtensionAttribute
+ * @see #getExtensionAttribute
+ */
+ public Map getExtensionAttributes()
+ {
+ return extensionAttributes;
+ }
+
+ /**
+ * Get the list of local attribute names defined for this element in
+ * the WSDL specification.
+ *
+ * @return a List of Strings, one for each local attribute name
+ */
+ public List getNativeAttributeNames()
+ {
+ return nativeAttributeNames;
+ }
+
+ public String toString()
+ {
+ StringBuffer strBuf = new StringBuffer();
+
+ strBuf.append("Output: name=" + name);
+
+
+ Iterator keys = extensionAttributes.keySet().iterator();
+
+ while (keys.hasNext())
+ {
+ QName name = (QName)keys.next();
+
+ strBuf.append("\nextension attribute: " + name + "=" +
+ extensionAttributes.get(name));
+ }
+
+ return strBuf.toString();
+ }
+}
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class has changed
diff -r 000000000000 -r 049760c677de WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.java Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,153 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.Method;
+import javax.wadls.Param;
+import javax.wadls.Request;
+import javax.wadls.Resource;
+import javax.wadls.WADLSException;
+import javax.wadls.factory.WADLFactory;
+import javax.wadls.xml.WADLReader;
+import javax.xml.namespace.QName;
+
+
+public class SAWADLParserDriver {
+
+
+ private List completeMethodList = new ArrayList();
+ private List url = new ArrayList();
+ private List paramList = new ArrayList();
+ private List paramTypeList = new ArrayList();
+ private List paramModelRef = new ArrayList();
+ private Application application;
+
+
+ public List getCompleteMethodList() {
+ return completeMethodList;
+ }
+
+ public List