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
37   132   10   6.17
8   85   0.27   6
6     1.67  
1    
 
  PureJavaInfcWriter       Line # 38 37 0% 10 51 0% 0.0
 
No Tests
 
1    /*
2    * Copyright 2009 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.osedu.org/licenses/ECL-2.0
9    *
10    * Unless required by applicable law or agreed to in writing, software
11    * distributed under the License is distributed on an "AS IS" BASIS,
12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13    * See the License for the specific language governing permissions and
14    * limitations under the License.
15    */
16    package org.kuali.student.contract.writer.service;
17   
18    import java.util.Collection;
19    import java.util.HashMap;
20    import java.util.HashSet;
21    import java.util.List;
22    import java.util.Map;
23    import java.util.Set;
24   
25    import org.kuali.student.contract.model.Service;
26    import org.kuali.student.contract.model.ServiceContractModel;
27    import org.kuali.student.contract.model.ServiceMethod;
28    import org.kuali.student.contract.model.ServiceMethodError;
29    import org.kuali.student.contract.model.XmlType;
30    import org.kuali.student.contract.model.util.ServicesFilter;
31    import org.kuali.student.contract.model.validation.DictionaryValidationException;
32    import org.kuali.student.contract.model.validation.ServiceContractModelValidator;
33   
34    /**
35    *
36    * @author nwright
37    */
 
38    public class PureJavaInfcWriter {
39   
40    private ServiceContractModel model;
41    private String directory;
42    private String rootPackage;
43    public static final String DEFAULT_ROOT_PACKAGE = "org.kuali.student.service";
44    private ServicesFilter filter;
45   
 
46  0 toggle public PureJavaInfcWriter(ServiceContractModel model,
47    String directory,
48    String rootPackage,
49    ServicesFilter filter) {
50  0 this.model = model;
51  0 this.directory = directory;
52  0 this.rootPackage = rootPackage;
53  0 this.filter = filter;
54    }
55   
56    /**
57    * Write out the entire file
58    * @param out
59    */
 
60  0 toggle public void write() {
61  0 this.validate();
62   
63  0 for (Service service : filterServices()) {
64  0 new PureJavaInfcWriterForOneService(model, directory, rootPackage, service.getKey()).write();
65    }
66   
67    // the Info interfaces's
68  0 System.out.println("Generating common Info interfaces");
69  0 for (XmlType xmlType : getXmlTypesUsedByMoreThanOneByService()) {
70  0 System.out.println("Generating info interface for " + xmlType.getName());
71  0 new PureJavaInfcInfcWriter(model, directory, rootPackage, xmlType.getService(), xmlType).write();
72  0 new PureJavaInfcBeanWriter(model, directory, rootPackage, xmlType.getService(), xmlType).write();
73    }
74   
75    // exceptions
76    // Decided to just use the exisiting exceptions that are hand crafted
77    // no need to generate
78    // for (ServiceMethodError error : getServiceMethodErrors ().values ())
79    // {
80    // System.out.println ("generating exception class: " + error.getType ());
81    // new ServiceExceptionWriter (model, directory, rootPackage, error).write ();
82    // }
83   
84    }
85   
 
86  0 toggle private Set<XmlType> getXmlTypesUsedByMoreThanOneByService() {
87  0 Set<XmlType> set = new HashSet();
88  0 for (XmlType type : model.getXmlTypes()) {
89  0 if (type.getService().contains(",")) {
90  0 if (type.getPrimitive().equalsIgnoreCase(XmlType.COMPLEX)) {
91  0 System.out.println(type.getName() + "==>" + type.getService());
92  0 set.add(type);
93    }
94    }
95    }
96  0 return set;
97    }
98   
 
99  0 toggle private Map<String, ServiceMethodError> getServiceMethodErrors() {
100  0 Map<String, ServiceMethodError> errors = new HashMap();
101  0 for (ServiceMethod method : model.getServiceMethods()) {
102  0 for (ServiceMethodError error : method.getErrors()) {
103  0 errors.put(error.getType(), error);
104    }
105    }
106  0 return errors;
107    }
108   
 
109  0 toggle private List<Service> filterServices() {
110  0 if (filter == null) {
111  0 return model.getServices();
112    }
113  0 return filter.filter(model.getServices());
114    }
115   
 
116  0 toggle private void validate() {
117  0 Collection<String> errors =
118    new ServiceContractModelValidator(model).validate();
119  0 if (errors.size() > 0) {
120  0 StringBuffer buf = new StringBuffer();
121  0 buf.append(errors.size() + " errors found while validating the data.");
122  0 int cnt = 0;
123  0 for (String msg : errors) {
124  0 cnt++;
125  0 buf.append("\n");
126  0 buf.append("*error*" + cnt + ":" + msg);
127    }
128   
129  0 throw new DictionaryValidationException(buf.toString());
130    }
131    }
132    }