/** * Add consumed media types supported by the component. * * @param types consumed media types. * @return updated builder object. */ public Builder consumes(String... types) { return consumes(MediaTypes.createFrom(types)); }
private static void addReaders(final List<ReaderModel> models, final Set<MessageBodyReader> readers, final boolean custom) { for (final MessageBodyReader provider : readers) { final List<MediaType> values = MediaTypes.createFrom(provider.getClass().getAnnotation(Consumes.class)); models.add(new ReaderModel(provider, values, custom)); } }
private static void addWriters(final List<WriterModel> models, final Set<MessageBodyWriter> writers, final boolean custom) { for (final MessageBodyWriter provider : writers) { final List<MediaType> values = MediaTypes.createFrom(provider.getClass().getAnnotation(Produces.class)); models.add(new WriterModel(provider, values, custom)); } }
private static void addWriters(final List<WriterModel> models, final Set<MessageBodyWriter> writers, final boolean custom) { for (final MessageBodyWriter provider : writers) { final List<MediaType> values = MediaTypes.createFrom(provider.getClass().getAnnotation(Produces.class)); models.add(new WriterModel(provider, values, custom)); } }
/** * Create an unmodifiable list of media types from the values declared in the {@link Consumes} * annotation. * * @param annotation the Consumes annotation. * @return the list of {@link MediaType}, ordered according to {@link #PARTIAL_ORDER_COMPARATOR}. */ public static List<MediaType> createFrom(Consumes annotation) { if (annotation == null) { return WILDCARD_TYPE_SINGLETON_LIST; } return createFrom(annotation.value()); }
/** * Create an unmodifiable list of media types from the values declared in the {@link Produces} * annotation. * * @param annotation the Produces annotation. * @return the list of {@link MediaType}, ordered according to {@link #PARTIAL_ORDER_COMPARATOR}. */ public static List<MediaType> createFrom(Produces annotation) { if (annotation == null) { return WILDCARD_TYPE_SINGLETON_LIST; } return createFrom(annotation.value()); }
private static void addReaders(final List<ReaderModel> models, final Set<MessageBodyReader> readers, final boolean custom) { for (final MessageBodyReader provider : readers) { final List<MediaType> values = MediaTypes.createFrom(provider.getClass().getAnnotation(Consumes.class)); models.add(new ReaderModel(provider, values, custom)); } }
/** * Add produced media types supported by the component. * * @param types produced media types. * @return updated builder object. */ public Builder produces(String... types) { return produces(MediaTypes.createFrom(types)); }
/** * Add consumed media types supported by the component. * * @param types consumed media types. * @return updated builder object. */ public Builder consumes(String... types) { return consumes(MediaTypes.createFrom(types)); }
/** * Create an unmodifiable list of media types from the values declared in the {@link Consumes} * annotation. * * @param annotation the Consumes annotation. * @return the list of {@link MediaType}, ordered according to {@link #PARTIAL_ORDER_COMPARATOR}. */ public static List<MediaType> createFrom(Consumes annotation) { if (annotation == null) { return WILDCARD_TYPE_SINGLETON_LIST; } return createFrom(annotation.value()); }
/** * Add produced media types supported by the component. * * @param types produced media types. * @return updated builder object. */ public Builder produces(String... types) { return produces(MediaTypes.createFrom(types)); }
/** * Create an unmodifiable list of media types from the values declared in the {@link Produces} * annotation. * * @param annotation the Produces annotation. * @return the list of {@link MediaType}, ordered according to {@link #PARTIAL_ORDER_COMPARATOR}. */ public static List<MediaType> createFrom(Produces annotation) { if (annotation == null) { return WILDCARD_TYPE_SINGLETON_LIST; } return createFrom(annotation.value()); }
private void initialize(List<ContextResolver> contextResolvers) { Map<Type, Map<MediaType, List<ContextResolver>>> rs = new HashMap<>(); for (ContextResolver provider : contextResolvers) { List<MediaType> ms = MediaTypes.createFrom(provider.getClass().getAnnotation(Produces.class)); Type type = getParameterizedType(provider.getClass()); Map<MediaType, List<ContextResolver>> mr = rs.get(type); if (mr == null) { mr = new HashMap<>(); rs.put(type, mr); } for (MediaType m : ms) { List<ContextResolver> crl = mr.get(m); if (crl == null) { crl = new ArrayList<>(); mr.put(m, crl); } crl.add(provider); } } // Reduce set of two or more context resolvers for same type and // media type for (Map.Entry<Type, Map<MediaType, List<ContextResolver>>> e : rs.entrySet()) { Map<MediaType, ContextResolver> mr = new KeyComparatorHashMap<>(4, MessageBodyFactory.MEDIA_TYPE_KEY_COMPARATOR); resolver.put(e.getKey(), mr); cache.put(e.getKey(), new ConcurrentHashMap<>(4)); for (Map.Entry<MediaType, List<ContextResolver>> f : e.getValue().entrySet()) { mr.put(f.getKey(), reduce(f.getValue())); } } }
private void initialize(List<ContextResolver> contextResolvers) { Map<Type, Map<MediaType, List<ContextResolver>>> rs = new HashMap<>(); for (ContextResolver provider : contextResolvers) { List<MediaType> ms = MediaTypes.createFrom(provider.getClass().getAnnotation(Produces.class)); Type type = getParameterizedType(provider.getClass()); Map<MediaType, List<ContextResolver>> mr = rs.get(type); if (mr == null) { mr = new HashMap<>(); rs.put(type, mr); } for (MediaType m : ms) { List<ContextResolver> crl = mr.get(m); if (crl == null) { crl = new ArrayList<>(); mr.put(m, crl); } crl.add(provider); } } // Reduce set of two or more context resolvers for same type and // media type for (Map.Entry<Type, Map<MediaType, List<ContextResolver>>> e : rs.entrySet()) { Map<MediaType, ContextResolver> mr = new KeyComparatorHashMap<>(4, MessageBodyFactory.MEDIA_TYPE_KEY_COMPARATOR); resolver.put(e.getKey(), mr); cache.put(e.getKey(), new ConcurrentHashMap<>(4)); for (Map.Entry<MediaType, List<ContextResolver>> f : e.getValue().entrySet()) { mr.put(f.getKey(), reduce(f.getValue())); } } }
/** * Creates enhancing methods for given resource. * * @param resourceClass resource class for which enhancing methods should be created. * @param resourceInstance resource instance for which enhancing methods should be created. May be {@code null}. * @param newMethods list to store new methods into. */ private void createEnhancingMethods(final Class<?> resourceClass, final Object resourceInstance, final List<ModelProcessorUtil.Method> newMethods) { final Template template = resourceClass.getAnnotation(Template.class); if (template != null) { final Class<?> annotatedResourceClass = ModelHelper.getAnnotatedResourceClass(resourceClass); final List<MediaType> produces = MediaTypes .createQualitySourceMediaTypes(annotatedResourceClass.getAnnotation(Produces.class)); final List<MediaType> consumes = MediaTypes.createFrom(annotatedResourceClass.getAnnotation(Consumes.class)); final TemplateInflectorImpl inflector = new TemplateInflectorImpl(template.name(), resourceClass, resourceInstance); newMethods.add(new ModelProcessorUtil.Method(HttpMethod.GET, consumes, produces, inflector)); newMethods.add(new ModelProcessorUtil.Method(IMPLICIT_VIEW_PATH_PARAMETER_TEMPLATE, HttpMethod.GET, consumes, produces, inflector)); } } }
/** * Add consumed media types supported by the component. * * @param types consumed media types. * @return updated builder object. */ public Builder consumes(String... types) { return consumes(MediaTypes.createFrom(types)); }
/** * Add produced media types supported by the component. * * @param types produced media types. * @return updated builder object. */ public Builder produces(String... types) { return produces(MediaTypes.createFrom(types)); }
/** * Add produced media types supported by the component. * * @param types produced media types. * @return updated builder object. */ public Builder produces(String... types) { return produces(MediaTypes.createFrom(types)); }
/** * Add produced media types supported by the component. * * @param types produced media types. * @return updated builder object. */ public Builder produces(String... types) { return produces(MediaTypes.createFrom(types)); }
/** * Add consumed media types supported by the component. * * @param types consumed media types. * @return updated builder object. */ public Builder consumes(String... types) { return consumes(MediaTypes.createFrom(types)); }