@Override public Rendition getRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getDamRendition(mediaArgs); // check if rendition is valid - otherwise return null if (StringUtils.isEmpty(rendition.getUrl())) { rendition = null; } return rendition; }
@Override public Rendition getDownloadRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isDownload()) { return rendition; } else { return null; } }
private JSONArray toResultJson(List<Media> mediaList) throws JSONException { JSONArray array = new JSONArray(); for (Media media : mediaList) { Rendition rendition = media.getRendition(); JSONObject mediaObject = new JSONObject(); mediaObject.put("assetPath", media.getAsset().getPath()); mediaObject.put("url", media.getUrl()); if (rendition.getWidth() > 0 && rendition.getHeight() > 0) { mediaObject.put("width", rendition.getWidth()); mediaObject.put("height", rendition.getHeight()); } if (rendition.getFileSize() > 0) { mediaObject.put("fileSize", rendition.getFileSize()); } mediaObject.putOpt("fileExtension", rendition.getFileExtension()); mediaObject.putOpt("mimeType", rendition.getMimeType()); array.put(mediaObject); } return array; }
/** * Build JSON metadata for one rendition as image source. * @param media Media * @param rendition Rendition * @return JSON metadata */ @SuppressWarnings("null") protected JSONObject toReponsiveImageSource(Media media, Rendition rendition) { try { JSONObject source = new JSONObject(); MediaFormat mediaFormat = rendition.getMediaFormat(); source.put(MediaNameConstants.PROP_BREAKPOINT, mediaFormat.getProperties().get(MediaNameConstants.PROP_BREAKPOINT)); source.put(PROP_SRC, rendition.getUrl()); return source; } catch (JSONException ex) { throw new RuntimeException("Error building JSON source.", ex); } }
@Override public Rendition getImageRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isImage()) { return rendition; } else { return null; } }
@SuppressWarnings("deprecation") @Override public Rendition getFlashRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isFlash()) { return rendition; } else { return null; } }
@Override public Rendition getImageRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isImage()) { return rendition; } else { return null; } }
@SuppressWarnings("deprecation") @Override public Rendition getFlashRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isFlash()) { return rendition; } else { return null; } }
@Override public Rendition getRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getInlineRendition(mediaArgs); // check if rendition is valid - otherwise return null if (StringUtils.isEmpty(rendition.getUrl())) { rendition = null; } return rendition; }
@Override public final boolean accepts(@NotNull Media media) { // accept if rendition is an image rendition, and resolving was successful return media.isValid() && media.getRendition() != null && media.getRendition().isImage(); }
@Override public Rendition getDownloadRendition(@NotNull MediaArgs mediaArgs) { Rendition rendition = getRendition(mediaArgs); if (rendition != null && rendition.isDownload()) { return rendition; } else { return null; } }
/** * Check if a matching rendition is found for any of the provided media formats and other media args. * The first match is returned. * @param media Media * @param asset Asset * @param mediaArgs Media args * @return true if a rendition was found */ private boolean resolveFirstMatchRenditions(Media media, Asset asset, MediaArgs mediaArgs) { Rendition rendition = asset.getRendition(mediaArgs); if (rendition != null) { media.setRenditions(ImmutableList.of(rendition)); media.setUrl(rendition.getUrl()); return true; } return false; }
/** * Iterates over all defined media format and tries to find a matching rendition for each of them * in combination with the other media args. * @param media Media * @param asset Asset * @param mediaArgs Media args * @return true if for *all* media formats a rendition could be found. */ private boolean resolveAllMandatoryRenditions(Media media, Asset asset, MediaArgs mediaArgs) { boolean allResolved = true; List<Rendition> resolvedRenditions = new ArrayList<>(); for (MediaFormat mediaFormat : mediaArgs.getMediaFormats()) { MediaArgs renditionMediaArgs = mediaArgs.clone(); renditionMediaArgs.mediaFormat(mediaFormat); renditionMediaArgs.mediaFormatsMandatory(false); Rendition rendition = asset.getRendition(renditionMediaArgs); if (rendition != null) { resolvedRenditions.add(rendition); } else { allResolved = false; } } media.setRenditions(resolvedRenditions); if (!resolvedRenditions.isEmpty()) { media.setUrl(resolvedRenditions.get(0).getUrl()); } return allResolved; }