package org.jboss.seam.example.restbay.resteasy;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
import java.util.Arrays;
/**
* Plain JAX RS root resource, no Seam components/lifecycle.
*
* @author Christian Bauer
*/
public class TestResource
{
@Context
protected UriInfo uriInfo;
@Context
protected HttpHeaders headers;
public void setUriInfo(UriInfo uriInfo)
{
this.uriInfo = uriInfo;
}
public void setHeaders(HttpHeaders headers)
{
this.headers = headers;
}
public String echoUri()
{
return uriInfo.getPath();
}
public String echoQueryParam(String bar)
{
return bar;
}
public String echoHeaderParam(String bar)
{
return bar;
}
public String echoCookieParam(String bar)
{
return bar;
}
public String echoTwoParams(String one, String two)
{
return one+two;
}
public String echoEncoded(String val)
{
return val;
}
public String echoFormParams(MultivaluedMap<String, String> formMap)
{
String result = "";
for (String s : formMap.get("foo"))
{
result = result + s;
}
return result;
}
public String echoFormParams2(String[] foo)
{
String result = "";
for (String s : foo)
{
result = result + s;
}
return result;
}
public String echoFormParams3(TestForm form)
{
return form.toString();
}
public SubResource getBar(String baz)
{
return new SubResource(baz);
}
public long convertPathParam(GregorianCalendar isoDate)
{
return isoDate.getTime().getTime();
}
public String throwException()
{
throw new UnsupportedOperationException("foo");
}
public List<String[]> getCommaSeparated() {
assert headers.getAcceptableMediaTypes().size() == 2;
assert headers.getAcceptableMediaTypes().get(0).toString().equals("text/plain");
assert headers.getAcceptableMediaTypes().get(1).toString().equals("text/csv");
return new TestComponent().getCommaSeparated();
}
public String[] getCommaSeparatedStrings() {
return new String[] {"foo", "bar", "baz"};
}
public Integer[] getCommaSeparatedIntegers() {
return new Integer[] {1, 2, 3};
}
}