package org.jboss.resteasy.test.providers.jaxb.resource;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Variant;
import java.util.List;

@Path("/")
public class CharacterSetResource {

   private final String[] characterSets = {"US-ASCII", "UTF-8", "ISO-8859-1"};

   @GET
   @Path("variant-selection")
   @Produces("application/xml")
   public Response getVariantSelection(@Context Request request) {
      int i = characterSets.length;
      MediaType[] mediaTypes = new MediaType[i];
      while (--i >= 0) {
         mediaTypes[i] = MediaType.valueOf("application/xml;charset=" + characterSets[i]);
      }
      List<Variant> variants = Variant.mediaTypes(mediaTypes).build();
      Variant variant = request.selectVariant(variants);
      if (variant == null) {
         return Response.notAcceptable(variants).build();
      }
      return Response.ok(new CharacterSetData(), variant).build();
   }
}
