/** * Create a resource model builder initialized by introspecting an annotated * JAX-RS resource class. * * @param resourceClass resource class to be modelled. * @param disableValidation if set to {@code true}, then any model validation checks will be disabled. * @return resource model builder initialized by the class or {@code null} if the * class does not represent a resource. */ public static Builder builder(Class<?> resourceClass, boolean disableValidation) { final Builder builder = new IntrospectionModeller(resourceClass, disableValidation).createResourceBuilder(); return builder.isEmpty() ? null : builder; }
private Resource.Builder doCreateResourceBuilder() { if (!disableValidation) { checkForNonPublicMethodIssues(); extractMediaTypes(annotatedResourceClass.getAnnotation(Consumes.class)); final List<MediaType> defaultProducedTypes = extractMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final Collection<Class<? extends Annotation>> defaultNameBindings = ReflectionHelper.getAnnotationTypes(annotatedResourceClass, NameBinding.class); checkResourceClassSetters(methodList, keepEncodedParams, resourceClassParameters); checkResourceClassFields(keepEncodedParams, InvocableValidator.isSingleton(handlerClass), resourceClassParameters); addResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceLocators(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, extended);
private static List<MediaType> extractMediaTypes(final Consumes annotation) { return (annotation != null) ? extractMediaTypes(annotation.value()) : Collections.<MediaType>emptyList(); }
private void checkForNonPublicMethodIssues() { final MethodList allDeclaredMethods = new MethodList(getAllDeclaredMethods(handlerClass)); // non-public resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withoutAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource locators for (AnnotatedMethod m : allDeclaredMethods.withoutMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_LOC(m.getMethod().toGenericString())); } }
private static List<MediaType> extractMediaTypes(final Produces annotation) { return (annotation != null) ? extractMediaTypes(annotation.value()) : Collections.<MediaType>emptyList(); }
private void checkForNonPublicMethodIssues() { final MethodList allDeclaredMethods = new MethodList(getAllDeclaredMethods(handlerClass)); // non-public resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withoutAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource locators for (AnnotatedMethod m : allDeclaredMethods.withoutMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_LOC(m.getMethod().toGenericString())); } }
private Resource.Builder doCreateResourceBuilder() { if (!disableValidation) { checkForNonPublicMethodIssues(); extractMediaTypes(annotatedResourceClass.getAnnotation(Consumes.class)); final List<MediaType> defaultProducedTypes = extractMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final Collection<Class<? extends Annotation>> defaultNameBindings = ReflectionHelper.getAnnotationTypes(annotatedResourceClass, NameBinding.class); checkResourceClassSetters(methodList, keepEncodedParams, resourceClassParameters); checkResourceClassFields(keepEncodedParams, InvocableValidator.isSingleton(handlerClass), resourceClassParameters); addResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceLocators(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, extended);
/** * Create a resource model builder initialized by introspecting an annotated * JAX-RS resource class. * * @param resourceClass resource class to be modelled. * @param disableValidation if set to {@code true}, then any model validation checks will be disabled. * @return resource model builder initialized by the class or {@code null} if the * class does not represent a resource. */ public static Builder builder(Class<?> resourceClass, boolean disableValidation) { final Builder builder = new IntrospectionModeller(resourceClass, disableValidation).createResourceBuilder(); return builder.isEmpty() ? null : builder; }
private static List<MediaType> extractMediaTypes(final Consumes annotation) { return (annotation != null) ? extractMediaTypes(annotation.value()) : Collections.<MediaType>emptyList(); }
private void checkForNonPublicMethodIssues() { final MethodList allDeclaredMethods = new MethodList(getAllDeclaredMethods(handlerClass)); // non-public resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withoutAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource locators for (AnnotatedMethod m : allDeclaredMethods.withoutMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_LOC(m.getMethod().toGenericString())); } }
private Resource.Builder doCreateResourceBuilder() { if (!disableValidation) { checkForNonPublicMethodIssues(); extractMediaTypes(annotatedResourceClass.getAnnotation(Consumes.class)); final List<MediaType> defaultProducedTypes = extractMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final Collection<Class<? extends Annotation>> defaultNameBindings = ReflectionHelper.getAnnotationTypes(annotatedResourceClass, NameBinding.class); checkResourceClassSetters(methodList, keepEncodedParams, resourceClassParameters); checkResourceClassFields(keepEncodedParams, InvocableValidator.isSingleton(handlerClass), resourceClassParameters); addResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceLocators(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, extended);
/** * Create a resource model initialized by introspecting an annotated * JAX-RS resource class. * * @param resourceClass resource class to be modelled. * @param disableValidation if set to {@code true}, then any model validation checks will be disabled. * @return resource model initialized by the class or {@code null} if the * class does not represent a resource. */ public static Resource from(Class<?> resourceClass, boolean disableValidation) { final Builder builder = new IntrospectionModeller(resourceClass, disableValidation).createResourceBuilder(); return builder.isEmpty() ? null : builder.build(); }
private static List<MediaType> extractMediaTypes(final Produces annotation) { return (annotation != null) ? extractMediaTypes(annotation.value()) : Collections.<MediaType>emptyList(); }
private void checkForNonPublicMethodIssues() { final MethodList allDeclaredMethods = new MethodList(getAllDeclaredMethods(handlerClass)); // non-public resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withoutAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource locators for (AnnotatedMethod m : allDeclaredMethods.withoutMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_LOC(m.getMethod().toGenericString())); } }
private Resource.Builder doCreateResourceBuilder() { if (!disableValidation) { checkForNonPublicMethodIssues(); extractMediaTypes(annotatedResourceClass.getAnnotation(Consumes.class)); final List<MediaType> defaultProducedTypes = extractMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final Collection<Class<? extends Annotation>> defaultNameBindings = ReflectionHelper.getAnnotationTypes(annotatedResourceClass, NameBinding.class); checkResourceClassSetters(methodList, keepEncodedParams, resourceClassParameters); checkResourceClassFields(keepEncodedParams, InvocableValidator.isSingleton(handlerClass), resourceClassParameters); addResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceLocators(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, extended);
/** * Create a resource model initialized by introspecting an annotated * JAX-RS resource class. * * @param resourceClass resource class to be modelled. * @param disableValidation if set to {@code true}, then any model validation checks will be disabled. * @return resource model initialized by the class or {@code null} if the * class does not represent a resource. */ public static Resource from(Class<?> resourceClass, boolean disableValidation) { final Builder builder = new IntrospectionModeller(resourceClass, disableValidation).createResourceBuilder(); return builder.isEmpty() ? null : builder.build(); }
private static List<MediaType> resolveProducedTypes(final AnnotatedMethod am, final List<MediaType> defaultProducedTypes) { // Override default types if the annotation is present on the method if (am.isAnnotationPresent(Produces.class)) { return extractMediaTypes(am.getAnnotation(Produces.class)); } return defaultProducedTypes; }
private void checkForNonPublicMethodIssues() { final MethodList allDeclaredMethods = new MethodList(getAllDeclaredMethods(handlerClass)); // non-public resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withoutAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource methods for (AnnotatedMethod m : allDeclaredMethods.withMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_METHOD(m.getMethod().toGenericString())); } // non-public sub-resource locators for (AnnotatedMethod m : allDeclaredMethods.withoutMetaAnnotation(HttpMethod.class) .withAnnotation(Path.class).isNotPublic()) { Errors.warning(handlerClass, LocalizationMessages.NON_PUB_SUB_RES_LOC(m.getMethod().toGenericString())); } }
private Resource.Builder doCreateResourceBuilder() { if (!disableValidation) { checkForNonPublicMethodIssues(); extractMediaTypes(annotatedResourceClass.getAnnotation(Consumes.class)); final List<MediaType> defaultProducedTypes = extractMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final Collection<Class<? extends Annotation>> defaultNameBindings = ReflectionHelper.getAnnotationTypes(annotatedResourceClass, NameBinding.class); checkResourceClassSetters(methodList, keepEncodedParams, resourceClassParameters); checkResourceClassFields(keepEncodedParams, InvocableValidator.isSingleton(handlerClass), resourceClassParameters); addResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceMethods(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, defaultConsumedTypes, defaultProducedTypes, defaultNameBindings, extended); addSubResourceLocators(resourceBuilder, methodList, resourceClassParameters, keepEncodedParams, extended);
/** * Create a resource model builder initialized by introspecting an annotated * JAX-RS resource class. * * @param resourceClass resource class to be modelled. * @param disableValidation if set to {@code true}, then any model validation checks will be disabled. * @return resource model builder initialized by the class or {@code null} if the * class does not represent a resource. */ public static Builder builder(Class<?> resourceClass, boolean disableValidation) { final Builder builder = new IntrospectionModeller(resourceClass, disableValidation).createResourceBuilder(); return builder.isEmpty() ? null : builder; }