1 package org.apache.commons.beanutils2;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static java.lang.Thread.currentThread;
23 import static org.apache.commons.beanutils2.Assertions.checkNotNull;
24
25 final class DefaultClassLoaderBuilder
26 implements ClassLoaderBuilder
27 {
28
29 private final String beanTypeName;
30
31 public DefaultClassLoaderBuilder( String beanTypeName )
32 {
33 this.beanTypeName = beanTypeName;
34 }
35
36
37
38
39 public ClassAccessor<?> loadWithThreadContextClassLoader()
40 {
41 return loadWith( currentThread().getContextClassLoader() );
42 }
43
44
45
46
47 public ClassAccessor<?> loadWithBeanUtilsClassLoader()
48 {
49 return loadWith( getClass().getClassLoader() );
50 }
51
52
53
54
55 public ClassAccessor<?> loadWith( ClassLoader classLoader )
56 {
57 classLoader = checkNotNull( classLoader, "No ClassLoader specified" );
58
59 Class<?> beanType;
60 try
61 {
62 beanType = classLoader.loadClass( beanTypeName );
63 }
64 catch ( ClassNotFoundException e )
65 {
66 throw new BeanClassNotFoundException( beanTypeName, e );
67 }
68
69 @SuppressWarnings( { "rawtypes", "unchecked" } )
70 DefaultClassAccessor<?> accessor = new DefaultClassAccessor( beanType );
71 return accessor;
72 }
73
74 }