package io.gsonfire.postprocessors.methodinvoker; import io.gsonfire.annotations.ExposeMethodResult; import io.gsonfire.util.reflection.AnnotationInspector; import java.lang.reflect.Method; /** * Created by julio on 7/25/15. */ final class MappedMethodInspector extends AnnotationInspector<Method, MappedMethod> { @Override protected Method[] getDeclaredMembers(Class clazz) { return clazz.getDeclaredMethods(); } @Override protected MappedMethod map(Method member) { if (member.getParameterTypes().length > 0) { throw new IllegalArgumentException("The methods annotated with ExposeMethodResult should have no arguments"); } ExposeMethodResult exposeMethodResult = member.getAnnotation(ExposeMethodResult.class); MappedMethod mm = new MappedMethod(member, exposeMethodResult.value(), exposeMethodResult.conflictResolution()); return mm; } }