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 */
020package org.kuali.student.contract.model.util;
021
022import java.io.PrintStream;
023
024import org.kuali.student.contract.model.ServiceMethod;
025import org.kuali.student.contract.model.ServiceMethodError;
026import org.kuali.student.contract.model.ServiceMethodParameter;
027
028/**
029 *
030 * @author nwright
031 */
032public 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}