Clover Coverage Report - KS Contract Documentation Generator 0.0.1-SNAPSHOT
Coverage timestamp: Wed Dec 31 1969 19:00:00 EST
../../../../../../img/srcFileCovDistChart0.png 0% of files have more coverage
81   135   14   13.5
10   115   0.17   6
6     2.33  
1    
 
  MessageStructureHierarchyDumper       Line # 18 81 0% 14 97 0% 0.0
 
No Tests
 
1    /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
4    */
5    package org.kuali.student.contract.model.util;
6   
7    import java.io.PrintStream;
8    import java.util.Stack;
9   
10    import org.kuali.student.contract.model.MessageStructure;
11    import org.kuali.student.contract.model.ServiceContractModel;
12    import org.kuali.student.contract.model.XmlType;
13   
14    /**
15    *
16    * @author nwright
17    */
 
18    public class MessageStructureHierarchyDumper {
19   
20    private ServiceContractModel model;
21    private ModelFinder finder;
22    private PrintStream out;
23   
 
24  0 toggle public MessageStructureHierarchyDumper(PrintStream out,
25    ServiceContractModel model) {
26  0 this.out = out;
27  0 this.model = model;
28  0 this.finder = new ModelFinder(model);
29    }
30   
 
31  0 toggle public void writeTabbedHeader() {
32  0 out.print("id");
33  0 out.print("\t");
34  0 out.print("Action");
35  0 out.print("\t");
36  0 out.print("xmlObject");
37  0 out.print("\t");
38  0 out.print("ShortName");
39  0 out.print("\t");
40  0 out.print("Name");
41  0 out.print("\t");
42  0 out.print("Type");
43  0 out.print("\t");
44  0 out.print("Description");
45  0 out.print("\t");
46  0 out.print("Required");
47  0 out.print("\t");
48  0 out.print("Cardinality");
49  0 out.print("\t");
50  0 out.print("XMLAttribute");
51  0 out.print("\t");
52  0 out.print("Status");
53  0 out.print("\t");
54  0 out.print("Feedback");
55  0 out.println("");
56    }
57   
 
58  0 toggle private String clean(String str) {
59  0 int len = str.length();
60  0 StringBuffer buffer = new StringBuffer(len);
61  0 for (int i = 0; i < len; i++) {
62  0 char c = str.charAt(i);
63    // skip \n, \r, \r\n
64  0 switch (c) {
65  0 case '\n':
66  0 case '\r': // do lookahead
67  0 if (i + 1 < len && str.charAt(i + 1) == '\n') {
68  0 i++;
69    }
70   
71  0 buffer.append(" ");
72  0 break;
73  0 default:
74  0 buffer.append(c);
75    }
76    }
77  0 return buffer.toString();
78    }
79   
 
80  0 toggle public String calcId(MessageStructure ms, Stack<String> parents) {
81  0 StringBuilder bldr = new StringBuilder();
82    {
83  0 for (String parent : parents) {
84  0 bldr.append(parent);
85  0 bldr.append(".");
86    }
87    }
88  0 bldr.append(ms.getShortName());
89  0 return bldr.toString();
90    }
91   
 
92  0 toggle public void writeTabbedData(MessageStructure ms, Stack<String> parents) {
93  0 out.print(calcId(ms, parents));
94  0 out.print("\t");
95  0 out.print("");
96  0 out.print("\t");
97  0 out.print(ms.getXmlObject());
98  0 out.print("\t");
99  0 out.print(ms.getShortName());
100  0 out.print("\t");
101  0 out.print(ms.getName());
102  0 out.print("\t");
103  0 out.print(ms.getType());
104  0 out.print("\t");
105  0 out.print(clean(ms.getDescription()));
106  0 out.print("\t");
107  0 out.print(ms.getRequired());
108  0 out.print("\t");
109  0 out.print(ms.getCardinality());
110  0 out.print("\t");
111  0 out.print(ms.getXmlAttribute());
112  0 out.print("\t");
113  0 out.print(ms.getStatus());
114  0 out.print("\t");
115  0 out.print(ms.getImplNotes());
116  0 out.println("");
117  0 XmlType st = finder.findXmlType(stripList(ms.getType()));
118  0 if (st.getPrimitive().equalsIgnoreCase(XmlType.COMPLEX)) {
119  0 if (!parents.contains(st.getName())) {
120  0 parents.push(st.getName());
121  0 for (MessageStructure childMs : finder.findMessageStructures(st.getName())) {
122  0 this.writeTabbedData(childMs, parents);
123    }
124  0 parents.pop();
125    }
126    }
127    }
128   
 
129  0 toggle private String stripList(String type) {
130  0 if (type.endsWith("List")) {
131  0 return type.substring(0, type.length() - "List".length());
132    }
133  0 return type;
134    }
135    }