1 package org.apache.maven.shared.transfer.repository.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.lang.reflect.InvocationTargetException;
23
24 import org.apache.maven.shared.transfer.repository.RepositoryManagerException;
25
26
27
28
29 final class Invoker
30 {
31 private Invoker()
32 {
33
34 }
35
36 public static <T> T invoke( Object object, String method )
37 throws RepositoryManagerException
38 {
39 try
40 {
41 @SuppressWarnings( "unchecked" )
42 T invoke = (T) object.getClass().getMethod( method ).invoke( object );
43 return invoke;
44 }
45 catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
46 {
47 throw new RepositoryManagerException( e.getMessage(), e );
48 }
49 }
50
51 public static <T> T invoke( Object object, String method, Class<?> argClazz, Object arg )
52 throws RepositoryManagerException
53 {
54 try
55 {
56 final Class<?> objectClazz = object.getClass();
57 @SuppressWarnings( "unchecked" )
58 T invoke = (T) objectClazz.getMethod( method, argClazz ).invoke( object, arg );
59 return invoke;
60 }
61 catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
62 {
63 throw new RepositoryManagerException( e.getMessage(), e );
64 }
65 }
66
67 public static Object invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
68 throws RepositoryManagerException
69 {
70 try
71 {
72 return objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
73 }
74 catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
75 {
76 throw new RepositoryManagerException( e.getMessage(), e );
77 }
78 }
79 }