/** * Checks that the desired MediaType is compatible with the one present in the request. * * @param expectedType The expected type. * @param request The request whose MediaType is being checked. * @return true, if the MediaTypes match. --- OR false, if the MediaTypes do not match, or the * request is null. */ private boolean checkMediaType(MediaType expectedType, Representation request) { if (request == null) { return false; } return expectedType.isCompatible(request.getMediaType()); } }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if ((source instanceof JSONArray) || (source instanceof JSONObject) || (source instanceof JSONTokener)) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_JSON.isCompatible(target .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } return result; }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if ((source instanceof JSONArray) || (source instanceof JSONObject) || (source instanceof JSONTokener)) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_JSON.isCompatible(target .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } return result; }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if (source instanceof FormDataSet) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_WWW_FORM.isCompatible(target .getMediaType()) || MediaType.MULTIPART_FORM_DATA.isCompatible(target .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } return result; }
/** * Checks, if the wrapped MessageBodyWriter supports at least one of the * requested {@link MediaType}s. * * @param requested * the requested {@link MediaType}s * @return true, if at least one of the requested {@link MediaType}s is * supported, otherwise false. */ public boolean supportsWrite(MediaType requested) { for (final MediaType produced : getProducedMimes()) { if (requested.isCompatible(produced)) { return true; } } return false; }
/** * Checks, if the wrapped MessageBodyWriter supports at least one of the * requested {@link MediaType}s. * * @param mediaTypes * the {@link MediaType}s * @return true, if at least one of the requested {@link MediaType}s is * supported, otherwise false. */ public boolean supportsWrite(Iterable<MediaType> mediaTypes) { for (final MediaType produced : getProducedMimes()) { for (final MediaType requested : mediaTypes) { if (requested.isCompatible(produced)) { return true; } } } return false; }
@Override public <T> float score(Representation source, Class<T> target, Resource resource) { float result = -1.0F; if (target != null) { if (FormDataSet.class.isAssignableFrom(target)) { if (MediaType.APPLICATION_WWW_FORM.isCompatible(source .getMediaType()) || MediaType.MULTIPART_FORM_DATA.isCompatible(source .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } } return result; }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if (source instanceof Feed) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_ATOM.isCompatible(target .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } else if (source instanceof Service) { if ((target != null) && MediaType.APPLICATION_ATOMPUB_SERVICE .isCompatible(target.getMediaType())) { result = 1.0F; } else { result = 0.5F; } } return result; }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if (source instanceof Document) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_ALL_XML.isCompatible(target .getMediaType())) { result = 0.8F; } else if (MediaType.APPLICATION_XML.isCompatible(target .getMediaType())) { result = 0.9F; } else if (MediaType.TEXT_XML.isCompatible(target.getMediaType())) { result = 0.9F; } else { result = 0.5F; } } return result; }
@Override public float score(Object source, Variant target, Resource resource) { float result = -1.0F; if (source instanceof Document) { if (target == null) { result = 0.5F; } else if (MediaType.APPLICATION_ALL_XML.isCompatible(target .getMediaType())) { result = 0.8F; } else if (MediaType.APPLICATION_XML.isCompatible(target .getMediaType())) { result = 0.9F; } else if (MediaType.TEXT_XML.isCompatible(target.getMediaType())) { result = 0.9F; } else { result = 0.5F; } } return result; }
/** * Checks, if this MessageBodyReader supports the given MediaType. * * @param mediaType */ public boolean supportsRead(MediaType mediaType) { boolean result = false; for (int i = 0; !result && i < getConsumedMimes().size(); i++) { result = getConsumedMimes().get(i).isCompatible(mediaType) || (mediaType == null); } return result; }
@Override public <T> float score(Representation source, Class<T> target, Resource resource) { float result = -1.0F; if ((target != null) && (Document.class.isAssignableFrom(target) || DomRepresentation.class.isAssignableFrom(target) || SaxRepresentation.class .isAssignableFrom(target))) { if (MediaType.APPLICATION_ALL_XML.isCompatible(source .getMediaType())) { result = 0.8F; } else if (MediaType.APPLICATION_XML.isCompatible(source .getMediaType())) { result = 0.9F; } else if (MediaType.TEXT_XML.isCompatible(source.getMediaType())) { result = 0.9F; } else { result = 0.5F; } } return result; }
@Override public <T> float score(Representation source, Class<T> target, Resource resource) { float result = -1.0F; if ((target != null) && (Document.class.isAssignableFrom(target) || DomRepresentation.class.isAssignableFrom(target) || SaxRepresentation.class .isAssignableFrom(target))) { if (MediaType.APPLICATION_ALL_XML.isCompatible(source .getMediaType())) { result = 0.8F; } else if (MediaType.APPLICATION_XML.isCompatible(source .getMediaType())) { result = 0.9F; } else if (MediaType.TEXT_XML.isCompatible(source.getMediaType())) { result = 0.9F; } else { result = 0.5F; } } return result; }
@Override public <T> float score(Representation source, Class<T> target, Resource resource) { float result = -1.0F; if (target != null) { if (Feed.class.isAssignableFrom(target)) { if (MediaType.APPLICATION_ATOM.isCompatible(source .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } else if (Service.class.isAssignableFrom(target)) { if (MediaType.APPLICATION_ATOMPUB_SERVICE.isCompatible(source .getMediaType())) { result = 1.0F; } else { result = 0.5F; } } } return result; }
@Override public <T> float score(Representation source, Class<T> target, Resource resource) { for (Variant v : variants) { if (v.getMediaType().isCompatible(source.getMediaType())) { return .5F; } } return -1F; }
@Override public void write(OutputStream outputStream) throws IOException { if (MediaType.APPLICATION_JAVA_OBJECT.isCompatible(getMediaType())) { ObjectOutputStream oos = new ObjectOutputStream(outputStream); oos.writeObject(getObject()); oos.flush(); } else if (MediaType.APPLICATION_JAVA_OBJECT_XML .isCompatible(getMediaType())) { java.beans.XMLEncoder encoder = new java.beans.XMLEncoder( outputStream); encoder.writeObject(getObject()); encoder.close(); } }
@Override public void write(Writer writer) throws IOException { QueryResponseWriter qrWriter; if (MediaType.APPLICATION_JSON.isCompatible(getMediaType()) || MediaType.APPLICATION_JAVASCRIPT .isCompatible(getMediaType())) { qrWriter = new JSONResponseWriter(); } else { qrWriter = new XMLResponseWriter(); } qrWriter.write(writer, solrQueryRequest, solrQueryResponse); }
/** * Creates a Jackson object reader based on a mapper. Has a special handling * for CSV media types. * * @return The Jackson object reader. */ protected ObjectReader createObjectReader() { ObjectReader result = null; if (MediaType.TEXT_CSV.isCompatible(getMediaType())) { CsvMapper csvMapper = (CsvMapper) getObjectMapper(); CsvSchema csvSchema = createCsvSchema(csvMapper); result = csvMapper.reader(getObjectClass()).with(csvSchema); } else { result = getObjectMapper().reader(getObjectClass()); } return result; }
/** * Creates a Jackson object writer based on a mapper. Has a special handling * for CSV media types. * * @return The Jackson object writer. */ protected ObjectWriter createObjectWriter() { ObjectWriter result = null; if (MediaType.TEXT_CSV.isCompatible(getMediaType())) { CsvMapper csvMapper = (CsvMapper) getObjectMapper(); CsvSchema csvSchema = createCsvSchema(csvMapper); result = csvMapper.writer(csvSchema); } else { result = getObjectMapper().writerWithType(getObjectClass()); } return result; }
@Override protected Representation get(Variant variant) throws ResourceException { Representation result = null; // Create the mail bean Mail mail = new Mail(); mail.setStatus("received"); mail.setSubject("Message to self"); mail.setContent("Doh!"); mail.setAccountRef(new Reference(getReference(), "..").getTargetRef() .toString()); if (MediaType.APPLICATION_XML.isCompatible(variant.getMediaType())) { // Wraps the bean with an XStream representation result = new XstreamRepresentation<Mail>(mail); } else if (MediaType.APPLICATION_JSON.isCompatible(variant .getMediaType())) { // Wraps the bean with a Jackson representation result = new JacksonRepresentation<Mail>(mail); } return result; }