Clover Coverage Report - KS Common 1.2-M2-SNAPSHOT (Aggregated)
Coverage timestamp: Fri Apr 22 2011 04:34:25 EST
../../../../../../img/srcFileCovDistChart9.png 17% of files have more coverage
23   83   10   5.75
10   51   0.43   4
4     2.5  
1    
 
  DefaultPathParser       Line # 28 23 0% 10 4 89.2% 0.8918919
 
  (4)
 
1    /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10    * software distributed under the License is distributed on an "AS IS"
11    * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12    * or implied. See the License for the specific language governing
13    * permissions and limitations under the License.
14    */
15   
16    /**
17    *
18    */
19    package org.kuali.student.common.assembly.data;
20   
21    import java.util.Iterator;
22   
23    import org.kuali.student.common.assembly.data.Data.Key;
24    /**
25    * @author wilj
26    *
27    */
 
28    public class DefaultPathParser implements PathParser {
29   
30    private static final String PATH_SEPARATOR = "/";
31   
 
32  16 toggle @Override
33    public String format(final QueryPath path) {
34  16 final StringBuilder sb = new StringBuilder();
35  35 for (final Iterator<Key> itr = path.iterator(); itr.hasNext();) {
36  19 final Key key = itr.next();
37  19 if (key == null) {
38    // note, this branch should ideally never be hit
39    // but if we throw an exception here, it breaks the eclipse debugger when trying to introspect
40  0 sb.append("null");
41    } else {
42  19 sb.append(key.toString());
43    }
44  19 if (itr.hasNext()) {
45  7 sb.append(PATH_SEPARATOR);
46    }
47    }
48  16 return sb.toString();
49    }
50   
 
51  6 toggle @Override
52    public String getWildCard() {
53  6 return "*";
54    }
55   
 
56  36 toggle @Override
57    public QueryPath parse(final String path) {
58  36 final QueryPath result = new QueryPath();
59  36 final String[] elements = path.split(PATH_SEPARATOR);
60  36 for (String element : elements) {
61  49 element = element.trim();
62  49 if (!element.isEmpty()) {
63  39 Integer index = null;
64  39 try {
65  39 index = Integer.valueOf(element);
66    } catch (final Exception e) {
67    // do nothing
68    }
69  39 if (index == null) {
70  36 result.add(new Data.StringKey(element));
71    } else {
72  3 result.add(new Data.IntegerKey(index));
73    }
74    }
75    }
76  36 return result;
77    }
78   
 
79  0 toggle @Override
80    public String getPathSeparator() {
81  0 return PATH_SEPARATOR;
82    }
83    }