%line | %branch | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
net.sf.tlc.util.ClassPathUtils |
|
|
1 | /* |
|
2 | * Created on May 19, 2005 |
|
3 | * |
|
4 | * ClassPathUtils provides a set of static utility methods used in the |
|
5 | * manipulation of paths to classes. |
|
6 | */ |
|
7 | package net.sf.tlc.util; |
|
8 | ||
9 | /** |
|
10 | * ClassPathUtils provides a set of static utility methods used in the |
|
11 | * manipulation of paths to classes. |
|
12 | * |
|
13 | * @author aisrael |
|
14 | */ |
|
15 | public final class ClassPathUtils { |
|
16 | ||
17 | private static final String CLASS_EXT = ".class"; |
|
18 | ||
19 | /** |
|
20 | * ClassPathUtils instances should NOT be constructed in standard |
|
21 | * programming. |
|
22 | */ |
|
23 | 0 | private ClassPathUtils() { |
24 | // noop |
|
25 | 0 | } |
26 | ||
27 | /** |
|
28 | * Returns the expected class name from a class file's absolute path or null |
|
29 | * if the path does not end with ".class". |
|
30 | * |
|
31 | * @param path |
|
32 | * the absolute path to the class |
|
33 | * @return the expected class name, or null |
|
34 | */ |
|
35 | public static String toClassName(final String path) { |
|
36 | final int offset; |
|
37 | 110 | if (path.startsWith("/")) { |
38 | 20 | offset = 1; |
39 | } else { |
|
40 | 90 | offset = 0; |
41 | } |
|
42 | 110 | return toClassName(offset, path); |
43 | } |
|
44 | ||
45 | /** |
|
46 | * Returns the expected class name from a class file's absolute path and the |
|
47 | * 'base dir' to calculate it from, or null if the absolutePath does not |
|
48 | * start with the baseDir and does not end with ".class". |
|
49 | * |
|
50 | * @param baseDir |
|
51 | * the base directory |
|
52 | * @param absolutePath |
|
53 | * the absolute path to the class |
|
54 | * @return the expected class name, or null |
|
55 | */ |
|
56 | public static String toClassName(final String baseDir, class="keyword">final String absolutePath) { |
|
57 | final String result; |
|
58 | final int offset; |
|
59 | 90 | if (baseDir.endsWith("/")) { |
60 | 20 | offset = 0; |
61 | } else { |
|
62 | 70 | offset = 1; |
63 | } |
|
64 | 90 | if (absolutePath.startsWith(baseDir)) { |
65 | 80 | result = toClassName(baseDir.length() + offset, absolutePath); |
66 | } else { |
|
67 | 10 | result = null; |
68 | } |
|
69 | 90 | return result; |
70 | } |
|
71 | ||
72 | /** |
|
73 | * Returns the expected class name from a class file's absolute path |
|
74 | * starting at the offset, or null if the absolutePath does not end with |
|
75 | * ".class". |
|
76 | * |
|
77 | * @param offset |
|
78 | * int |
|
79 | * @param path |
|
80 | * String |
|
81 | * @return the expected class name, or null |
|
82 | */ |
|
83 | private static String toClassName(final int offset, class="keyword">final String path) { |
|
84 | final String result; |
|
85 | 190 | if (path.endsWith(CLASS_EXT)) { |
86 | 170 | result = path.substring(offset, path.lastIndexOf(CLASS_EXT)).replace('/', '.'); |
87 | } else { |
|
88 | 20 | result = null; |
89 | } |
|
90 | 190 | return result; |
91 | } |
|
92 | } |
This report is generated by jcoverage, Maven and Maven JCoverage Plugin. |