001    /**
002     * Copyright 2004-2014 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    /*
017     * To change this template, choose Tools | Templates
018     * and open the template in the editor.
019     */
020    package org.kuali.student.contract.model.util;
021    
022    import java.io.PrintStream;
023    
024    import org.kuali.student.contract.model.ServiceMethod;
025    import org.kuali.student.contract.model.ServiceMethodError;
026    import org.kuali.student.contract.model.ServiceMethodParameter;
027    
028    /**
029     *
030     * @author nwright
031     */
032    public class ServiceMethodDumper {
033    
034        private ServiceMethod method;
035        private PrintStream out;
036    
037        public ServiceMethodDumper(ServiceMethod method, PrintStream out) {
038            this.method = method;
039            this.out = out;
040        }
041    
042        public void dump() {
043            out.println(method.getService() + "." + method.getName() + " - " + method.getDescription());
044            for (ServiceMethodParameter param : method.getParameters()) {
045                out.println(" Param: " + param.getName() + " (" + param.getType() + ") " + param.getDescription() + " http://XXX" + param.getUrl());
046            }
047            for (ServiceMethodError param : method.getErrors()) {
048                out.println(" Error: " + param.getType() + " - " + param.getDescription());
049            }
050            out.println(" return: " + method.getReturnValue().getType() + " - " + method.getReturnValue().
051                    getDescription() + " http://XXX" + method.getReturnValue().getUrl());
052        }
053    
054        public void writeTabbedHeader() {
055            out.print("Service");
056            out.print("\t");
057            out.print("Key");
058            out.print("\t");
059            out.print("ShortName");
060            out.print("\t");
061            out.print("LongName");
062            out.print("\t");
063            out.print("Description");
064            out.print("\t");
065            out.print("url");
066            out.println("");
067        }
068    
069        public void writeTabbedData() {
070            out.print(method.getService());
071            out.print("\t");
072            out.print("Method");
073            out.print("\t");
074            out.print(method.getName());
075            out.print("\t");
076            out.print("");
077            out.print("\t");
078            out.print("");
079            out.print("\t");
080            out.print(method.getUrl());
081            out.println();
082    
083            out.print(method.getService());
084            out.print("\t");
085            out.print("Description");
086            out.print("\t");
087            out.print(method.getDescription());
088            out.print("\t");
089            out.print("");
090            out.println();
091            if (method.getParameters().size() == 0) {
092                out.print(method.getService());
093                out.print("\t");
094                out.print("Parameters");
095                out.print("\t");
096                out.print("None");
097                out.print("\t");
098                out.print("None");
099                out.print("\t");
100                out.print("No parameters");
101                out.print("\t");
102                out.print("");
103                out.println();
104            } else {
105                String parameters = "Parameters";
106                for (ServiceMethodParameter param : method.getParameters()) {
107                    out.print(method.getService());
108                    out.print("\t");
109                    out.print(parameters);
110                    parameters = "";
111                    out.print("\t");
112                    out.print(param.getType());
113                    out.print("\t");
114                    out.print(param.getName());
115                    out.print("\t");
116                    out.print(param.getDescription());
117                    out.print("\t");
118                    out.print(param.getUrl());
119                    out.println();
120                }
121            }
122    
123            out.print(method.getService());
124            out.print("\t");
125            out.print("Return");
126            out.print("\t");
127            out.print(method.getReturnValue().getType());
128            out.print("\t");
129            out.print(method.getReturnValue().getDescription());
130            out.print("\t");
131            out.print("");
132            out.print("\t");
133            out.print(method.getReturnValue().getUrl());
134            out.println();
135    
136            String errors = "Errors";
137            for (ServiceMethodError error : method.getErrors()) {
138                out.print(method.getService());
139                out.print("\t");
140                out.print(errors);
141                errors = "";
142                out.print("\t");
143                out.print(error.getType());
144                out.print("\t");
145                out.print(error.getDescription());
146                out.print("\t");
147                out.print("");
148                out.print("\t");
149                out.print("");
150                out.println();
151            }
152    
153            out.print(method.getService());
154            out.print("\t");
155            out.print("Capabilities");
156            out.print("\t");
157            out.print("");
158            out.print("\t");
159            out.print("");
160            out.print("\t");
161            out.print("");
162            out.print("\t");
163            out.print("");
164            out.println();
165    
166            out.print(method.getService());
167            out.print("\t");
168            out.print("Use Cases");
169            out.print("\t");
170            out.print("");
171            out.print("\t");
172            out.print("");
173            out.print("\t");
174            out.print("");
175            out.print("\t");
176            out.print("");
177            out.println();
178    
179            out.print(method.getService());
180            out.print("\t");
181            out.print("Comments/Feedback");
182            out.print("\t");
183            out.print("");
184            out.print("\t");
185            out.print("");
186            out.print("\t");
187            out.print("");
188            out.print("\t");
189            out.print("");
190            out.println();
191        }
192    }