@Override
 public String marshal(Object obj, MediaType mediaType)
     throws MarshalException, UnsupportedMediaTypeException {
   if (mediaType != null) {
     if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType)
         || MediaType.TEXT_XML_TYPE.isCompatible(mediaType)) {
       return marshalToXML(obj);
     } else if (MediaType.APPLICATION_JSON_TYPE.isCompatible(mediaType)) {
       return marshalToJSON(obj);
     }
   }
   // If we get here then we deal with an unknown media type
   throw new UnsupportedMediaTypeException(
       "Unsupported media type: "
           + mediaType
           + ". Cannot marshal the given input to this media type.");
 }
  /* (non-Javadoc)
   * @see sif3.infra.common.conversion.UnmarshalFactory#unmarschal(java.lang.String, java.lang.Class, javax.ws.rs.core.MediaType)
   */
  @Override
  public Object unmarshal(String payload, Class<?> clazz, MediaType mediaType)
      throws UnmarshalException, UnsupportedMediaTypeException {
    if (mediaType != null) {
      //			if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType) ||
      // MediaType.TEXT_XML_TYPE.isCompatible(mediaType)  ||
      //	MediaType.TEXT_PLAIN_TYPE.isCompatible(mediaType))
      if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType)
          || MediaType.TEXT_XML_TYPE.isCompatible(mediaType)) {
        return unmarshalFromXML(payload, clazz);
      } else if (MediaType.APPLICATION_JSON_TYPE.isCompatible(mediaType)) {
        return unmarshalFromJSON(payload, clazz);
      }
    }

    // If we get here then we deal with an unknown media type
    throw new UnsupportedMediaTypeException(
        "Unsupported media type: "
            + mediaType
            + ". Cannot unmarshal the given input from this media type.");
  }