Examples of MediaTypeComparator


Examples of org.apache.clerezza.triaxrs.util.MediaTypeComparator

        while (true) {
          SortedSet<MediaType> typeForBaseType = availableProviderTypes
              .get(baseType);
          if (typeForBaseType == null) {
            typeForBaseType = new TreeSet<MediaType>(
                new MediaTypeComparator());
            try {
              availableProviderTypes.put((BaseMediaType)baseType.clone(), typeForBaseType);
            } catch (CloneNotSupportedException ex) {
              throw new RuntimeException(ex);
            }
View Full Code Here

Examples of org.apache.clerezza.triaxrs.util.MediaTypeComparator

          if (mediaType == null) {
            continue METHODS;
          }
          Consumes consumes = method.getAnnotation(Consumes.class);
          SortedSet<MediaType> sortedConsumedType = new TreeSet<MediaType>(
              new MediaTypeComparator());
          if (consumes == null) {
            sortedConsumedType.add(MediaType.WILDCARD_TYPE);
          } else {
            for (String consumesString : consumes.value()) {
              sortedConsumedType.add(MediaType
View Full Code Here

Examples of org.apache.clerezza.triaxrs.util.MediaTypeComparator

    MessageBodyWriter<Object> writer = null;
    List<Set<MediaType>> expandedMethodProducibleMediaTypeClasses
        = getSortedClasses(expandedMethodProducibleMediaTypesList,
        new InconsistentMediaTypeComparator(acceptHeader));
    Collections.sort(methodProducibleMediaTypesList,
        new MediaTypeComparator(acceptHeader));
    MediaType relevantMethodProducibleType = null;

    for (Set<MediaType> preferenceClass : expandedMethodProducibleMediaTypeClasses) {
      int lastWriterConcreteness = -1;
      for (MediaType mediaType : preferenceClass) {
        MessageBodyWriter<Object> currentWriter = (MessageBodyWriter<Object>) JaxRsHandler.providers.getMessageBodyWriter(entity.getClass(), entityType,
            annotations, mediaType);
        if (currentWriter != null) {
          int writerConcreteness = getWriterConcreteness(currentWriter, mediaType);
          if (writerConcreteness > lastWriterConcreteness) {
            for (MediaType methodMediaType : methodProducibleMediaTypesList) {
              if (methodMediaType.isCompatible(mediaType)) {
                relevantMethodProducibleType = methodMediaType;
                break;
              }
            }
            writer = currentWriter;
          }
        }
      }
      if (writer != null) {
        break;
      }
    }


    if (writer == null) {
      for (MediaType mediaType : expandedMethodProducibleMediaTypesList) {
        try {
          writer = new JafMessageBodyWriter<Object>(entity, mediaType);
        } catch (UnsupportedDataTypeException ex) {
          logger.debug("No JafMessageBodyWriter for {}", mediaType);
        }
        if (writer != null) {
          relevantMethodProducibleType = mediaType;
          break;
        }
      }
    }
    if (writer == null) {
      javax.ws.rs.core.Response r = javax.ws.rs.core.Response.status(
          Status.INTERNAL_SERVER_ERROR).entity(
          "No suitable MessageBodyWriter available").type(
          MediaType.TEXT_PLAIN_TYPE).build();
      throw new WebApplicationException(r);
    }

    // gain producible concreteness by looking at writer's @Produces
    MediaType relevantProducibleType = null;
    if ((relevantMethodProducibleType == null) || (MediaTypeComparator.countWildChars(relevantMethodProducibleType) > 0)) {

      List<MediaType> writerProducibleMediaTypes = getWriterProduces(writer);
      Collections.sort(writerProducibleMediaTypes,
          new MediaTypeComparator(acceptHeader));
      if (relevantMethodProducibleType != null) {
        Iterator<MediaType> writerProducibleMediaTypesIter = writerProducibleMediaTypes.iterator();
        while (writerProducibleMediaTypesIter.hasNext()) {
          MediaType currentProducible = writerProducibleMediaTypesIter.next();
          if (!relevantMethodProducibleType.isCompatible(currentProducible)) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.