1 package org.apache.maven.shared.transfer.collection.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.collection.DependencyCollectionException;
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 DependencyCollectionException
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 DependencyCollectionException( e.getMessage(), e );
48 }
49 }
50
51 public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
52 throws DependencyCollectionException
53 {
54 try
55 {
56 @SuppressWarnings( "unchecked" )
57 T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
58 return invoke;
59 }
60 catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
61 {
62 throw new DependencyCollectionException( e.getMessage(), e );
63 }
64 }
65
66
67
68
69
70
71
72
73
74
75
76 public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?>[] argClasses, Object[] args )
77 throws DependencyCollectionException
78 {
79 if ( args.length != argClasses.length )
80 {
81 throw new IllegalArgumentException( "The number of elements in argClasses and args are not the same." );
82 }
83
84 try
85 {
86 @SuppressWarnings( "unchecked" )
87 T invoke = (T) objectClazz.getMethod( staticMethod, argClasses ).invoke( null, args );
88 return invoke;
89 }
90 catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
91 {
92 throw new DependencyCollectionException( e.getMessage(), e );
93 }
94 }
95
96 }