1 package com.atlassian.plugins.rest.common.json;
2
3 import javax.xml.bind.JAXBException;
4
5 /**
6 * Utility service that will allow clients to marshall a Jaxb bean to Json using the same configuration that the REST
7 * module uses internally to create Json.
8 *
9 * @since v1.0.2
10 */
11 public interface JaxbJsonMarshaller
12 {
13 /**
14 * Given a jaxbBean this method will return a JSON string.
15 *
16 * @param jaxbBean the bean to be converted to JSON
17 * @return a JSON string
18 * @throws JsonMarshallingException if any error occurs marshalling the JSON object
19 * @since 1.1
20 */
21 String marshal(Object jaxbBean) throws JsonMarshallingException;
22
23 /**
24 * Given a jaxbBean and all the jaxb classes required to convert the bean to JSON this method will return a JSON
25 * string.
26 *
27 * @param jaxbBean the bean to be converted to JSON
28 * @param jaxbClasses the jaxb classes in use by the jaxb bean.
29 * @return a JSON string
30 * @throws javax.xml.bind.JAXBException if there's a problem marshalling the bean provided
31 * @since 1.0.2
32 * @deprecated since 1.1, use {@link #marshal(Object)}
33 */
34 @Deprecated
35 String marshal(Object jaxbBean, Class... jaxbClasses) throws JAXBException;
36 }