1 package org.apache.maven.plugin.surefire.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.Collections;
24 import java.util.List;
25
26 import org.apache.commons.lang3.StringUtils;
27
28 import javax.annotation.Nonnull;
29
30 final class ScannerUtil {
31
32 private ScannerUtil() {}
33
34 private static final String FS = System.getProperty( "file.separator" );
35
36 private static final String JAVA_SOURCE_FILE_EXTENSION = ".java";
37
38 private static final String JAVA_CLASS_FILE_EXTENSION = ".class";
39
40 private static final boolean IS_NON_UNIX_FS = (!FS.equals( "/" ));
41
42 public static @Nonnull String convertToJavaClassName( @Nonnull String test )
43 {
44 return StringUtils.removeEnd( test, ".class" ).replace( FS, "." );
45 }
46
47 public static @Nonnull String convertJarFileResourceToJavaClassName( @Nonnull String test )
48 {
49 return StringUtils.removeEnd( test, ".class" ).replace( "/", "." );
50 }
51
52 public static @Nonnull String convertSlashToSystemFileSeparator( @Nonnull String path )
53 {
54 return ( IS_NON_UNIX_FS ? path.replace( "/", FS ) : path );
55 }
56
57 public static @Nonnull String stripBaseDir( String basedir, String test )
58 {
59 return StringUtils.removeStart( test, basedir );
60 }
61
62 public static @Nonnull String[] processIncludesExcludes( @Nonnull List<String> list )
63 {
64 List<String> newList = new ArrayList<String>();
65 for ( Object aList : list )
66 {
67 String include = (String) aList;
68 String[] includes = include.split( "," );
69 Collections.addAll( newList, includes );
70 }
71
72 String[] incs = new String[newList.size()];
73
74 for ( int i = 0; i < incs.length; i++ )
75 {
76 String inc = newList.get( i );
77 if ( inc.endsWith( JAVA_SOURCE_FILE_EXTENSION ) )
78 {
79 inc = StringUtils.removeEnd( inc, JAVA_SOURCE_FILE_EXTENSION ) + JAVA_CLASS_FILE_EXTENSION;
80 }
81 incs[i] = convertSlashToSystemFileSeparator( inc );
82
83 }
84 return incs;
85 }
86 }