return applyProcessors(builder.buildClass());
/** * Picks a constructor from an annotated resource class based on spec rules. * * @param annotatedResourceClass annotated resource class * @return {@link ResourceConstructor} */ public ResourceConstructor getConstructor(Class<?> annotatedResourceClass) { Constructor constructor = PickConstructor.pickPerRequestConstructor(annotatedResourceClass); if (constructor == null) { throw new RuntimeException(Messages.MESSAGES.couldNotFindConstructor(annotatedResourceClass.getName())); } ResourceConstructorBuilder builder = buildRootResource(annotatedResourceClass).constructor(constructor); if (constructor.getParameterTypes() != null) { for (int i = 0; i < constructor.getParameterTypes().length; i++) builder.param(i).fromAnnotations(); } ResourceClass resourceClass = applyProcessors(builder.buildConstructor().buildClass()); return resourceClass.getConstructor(); }
private static ResourceClass fromAnnotations(boolean isLocator, Class<?> clazz) { // stupid hack for Weld as it loses generic type information, but retains annotations. if (!clazz.isInterface() && clazz.getSuperclass() != null && !clazz.getSuperclass().equals(Object.class) && clazz.isSynthetic()) { clazz = clazz.getSuperclass(); } ResourceClassBuilder builder = null; if (isLocator) builder = locator(clazz); else { Path path = clazz.getAnnotation(Path.class); if (path == null) builder = rootResource(clazz, null); else builder = rootResource(clazz, path.value()); } for (Method method : clazz.getMethods()) { if(!method.isSynthetic() && !method.getDeclaringClass().equals(Object.class)) processMethod(isLocator, builder, clazz, method); } if (!clazz.isInterface()) { processFields(builder, clazz); } processSetters(builder, clazz); return builder.buildClass(); }
return applyProcessors(builder.buildClass());
/** * Picks a constructor from an annotated resource class based on spec rules. * * @param annotatedResourceClass annotated resource class * @return {@link ResourceConstructor} */ public ResourceConstructor getConstructor(Class<?> annotatedResourceClass) { Constructor constructor = PickConstructor.pickPerRequestConstructor(annotatedResourceClass); if (constructor == null) { throw new RuntimeException(Messages.MESSAGES.couldNotFindConstructor(annotatedResourceClass.getName())); } ResourceConstructorBuilder builder = buildRootResource(annotatedResourceClass).constructor(constructor); if (constructor.getParameterTypes() != null) { for (int i = 0; i < constructor.getParameterTypes().length; i++) builder.param(i).fromAnnotations(); } ResourceClass resourceClass = applyProcessors(builder.buildConstructor().buildClass()); return resourceClass.getConstructor(); }
/** * Picks a constructor from an annotated resource class based on spec rules * * @param annotatedResourceClass * @return */ public static ResourceConstructor constructor(Class<?> annotatedResourceClass) { Constructor constructor = PickConstructor.pickPerRequestConstructor(annotatedResourceClass); if (constructor == null) { throw new RuntimeException(Messages.MESSAGES.couldNotFindConstructor(annotatedResourceClass.getName())); } ResourceConstructorBuilder builder = rootResource(annotatedResourceClass).constructor(constructor); if (constructor.getParameterTypes() != null) { for (int i = 0; i < constructor.getParameterTypes().length; i++) builder.param(i).fromAnnotations(); } return builder.buildConstructor().buildClass().getConstructor(); }