Clover Coverage Report - KS Common 1.2.1-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Nov 2 2011 04:55:08 EST
../../../../../../img/srcFileCovDistChart10.png 0% 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 2 94.6% 0.9459459
 
  (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  29 toggle @Override
33    public String format(final QueryPath path) {
34  29 final StringBuilder sb = new StringBuilder();
35  70 for (final Iterator<Key> itr = path.iterator(); itr.hasNext();) {
36  41 final Key key = itr.next();
37  41 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  41 sb.append(key.toString());
43    }
44  41 if (itr.hasNext()) {
45  16 sb.append(PATH_SEPARATOR);
46    }
47    }
48  29 return sb.toString();
49    }
50   
 
51  6 toggle @Override
52    public String getWildCard() {
53  6 return "*";
54    }
55   
 
56  49 toggle @Override
57    public QueryPath parse(final String path) {
58  49 final QueryPath result = new QueryPath();
59  49 final String[] elements = path.split(PATH_SEPARATOR);
60  49 for (String element : elements) {
61  91 element = element.trim();
62  91 if (!element.isEmpty()) {
63  79 Integer index = null;
64  79 try {
65  79 index = Integer.valueOf(element);
66    } catch (final Exception e) {
67    // do nothing
68    }
69  79 if (index == null) {
70  73 result.add(new Data.StringKey(element));
71    } else {
72  6 result.add(new Data.IntegerKey(index));
73    }
74    }
75    }
76  49 return result;
77    }
78   
 
79  11 toggle @Override
80    public String getPathSeparator() {
81  11 return PATH_SEPARATOR;
82    }
83    }