List of usage examples for org.aspectj.lang.reflect ConstructorSignature getParameterNames
String[] getParameterNames();
From source file:net.sf.oval.guard.ParameterNameResolverAspectJImpl.java
License:Open Source License
private void determineParamterNames(final Class<?> clazz) throws IllegalArgumentException, IllegalAccessException { assert clazz != null; for (final Field field : clazz.getDeclaredFields()) { // search for static fields of type JoinPoint.StaticPart if (ReflectionUtils.isStatic(field) && field.getType() == JoinPoint.StaticPart.class) { // access the StaticPart object field.setAccessible(true);//from w w w . j a v a 2 s .co m final JoinPoint.StaticPart staticPart = (JoinPoint.StaticPart) field.get(null); if (staticPart == null) { break; } if (staticPart.getSignature() instanceof ConstructorSignature) { final ConstructorSignature sig = (ConstructorSignature) staticPart.getSignature(); final String[] parameterNames = sig.getParameterNames(); final Constructor<?> constr = sig.getConstructor(); if (parameterNames.length > 0) { parameterNamesCache.put(constr, parameterNames); } } else if (staticPart.getSignature() instanceof MethodSignature) { final MethodSignature sig = (MethodSignature) staticPart.getSignature(); final String[] parameterNames = sig.getParameterNames(); final Method method = sig.getMethod(); if (parameterNames.length > 0) { parameterNamesCache.put(method, parameterNames); } } } } }