MessageBodyWriter<T> ret = null; for (MediaTypeMap<MessageBodyWriter<?>>.OFHolder<MessageBodyWriter<?>> factory : writersFactories) { MessageBodyWriter<?> writer = factory.getInstance(runtimeContext); if (isWriteable(writer, type, genericType, annotations, mediaType, runtimeContext, factory.isSystemProvider)) { if (logger.isTraceEnabled()) {
Annotation[] ann = new Annotation[0]; for (MediaTypeMap<MessageBodyReader<?>>.OFHolder<MessageBodyReader<?>> factory : readerFactories) { MessageBodyReader<?> reader = factory.getInstance(runtimeContext); Consumes consumes = factory.getInstanceClass().getAnnotation(Consumes.class); String[] values = null;
public MediaType getMessageBodyWriterMediaTypeLimitByIsWritable(Class<?> type, RuntimeContext runtimeContext) { logger.trace("Searching MessageBodyWriters media types limited by class type {}", type); //$NON-NLS-1$ List<MediaTypeMap<MessageBodyWriter<?>>.OFHolder<MessageBodyWriter<?>>> writerFactories = messageBodyWriters.getProvidersByMediaType(MediaType.WILDCARD_TYPE, type); logger.trace("Found all MessageBodyWriter ObjectFactories limited by class type {}", //$NON-NLS-1$ writerFactories); Annotation[] ann = new Annotation[0]; for (MediaTypeMap<MessageBodyWriter<?>>.OFHolder<MessageBodyWriter<?>> factory : writerFactories) { MessageBodyWriter<?> writer = factory.getInstance(runtimeContext); Produces produces = factory.getInstanceClass().getAnnotation(Produces.class); String[] values = null; if (produces != null) { values = AnnotationUtils.parseConsumesProducesValues(produces.value()); } else { values = new String[] {MediaType.WILDCARD}; } for (String v : values) { MediaType mt = MediaType.valueOf(v); if (isWriteable(writer, type, type, ann, mt, runtimeContext, factory.isSystemProvider)) { logger.trace("Returning media type {}", mt); //$NON-NLS-1$ return mt; } } } return null; }
MessageBodyReader<T> ret = null; for (MediaTypeMap<MessageBodyReader<?>>.OFHolder<MessageBodyReader<?>> factory : factories) { MessageBodyReader<?> reader = factory.getInstance(runtimeContext); if (isReadable(reader, type, genericType, annotations, mediaType, runtimeContext, factory.isSystemProvider)) { ret = (MessageBodyReader<T>)reader;