Files
SCM-Manager/scm-webapp/src/main/java/sonia/scm/api/rest/JsonJaxbContextResolver.java

74 lines
1.5 KiB
Java
Raw Normal View History

2010-09-03 14:43:10 +02:00
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sonia.scm.api.rest;
//~--- non-JDK imports --------------------------------------------------------
2010-09-08 15:16:42 +02:00
import sonia.scm.group.Group;
2010-09-03 14:43:10 +02:00
//~--- JDK imports ------------------------------------------------------------
import com.sun.jersey.api.json.JSONConfiguration;
import com.sun.jersey.api.json.JSONJAXBContext;
import java.util.Arrays;
import java.util.List;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import javax.xml.bind.JAXBContext;
/**
*
* @author Sebastian Sdorra
*/
2010-09-04 16:05:26 +02:00
@Provider
2010-09-03 14:43:10 +02:00
public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
{
/**
* Constructs ...
*
*
* @throws Exception
*/
public JsonJaxbContextResolver() throws Exception
{
this.context = new JSONJAXBContext(
JSONConfiguration.mapped().rootUnwrapping(true).arrays(
2010-09-04 15:11:18 +02:00
"member", "groups").build(), types.toArray(new Class[0]));
2010-09-03 14:43:10 +02:00
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param objectType
*
* @return
*/
@Override
public JAXBContext getContext(Class<?> objectType)
{
return (types.contains(objectType))
? context
: null;
}
//~--- fields ---------------------------------------------------------------
/** Field description */
private JAXBContext context;
/** Field description */
2010-09-04 15:11:18 +02:00
private List<Class> types = Arrays.asList(new Class[] {
Group.class });
2010-09-03 14:43:10 +02:00
}