@Override public String buildUrl() { return build().getUrl(); }
/** * Builds image element for given media metadata. * @param pMedia Media metadata * @param element Original element * @return Image element or null if media reference is invalid */ private Element buildImageElement(Media pMedia, Element element) { if (pMedia.isValid()) { element.setAttribute("src", pMedia.getUrl()); } return element; }
@SuppressWarnings("null") @Override public @NotNull Link resolveLink(@NotNull Link link) { LinkRequest linkRequest = link.getLinkRequest(); ValueMap props = linkRequest.getResourceProperties(); // get properties String mediaRef = props.get(LinkNameConstants.PN_LINK_MEDIA_REF, String.class); boolean isDownload = props.get(LinkNameConstants.PN_LINK_MEDIA_DOWNLOAD, false); MediaArgs mediaArgs = new MediaArgs() // only allow linking to "download" media formats .download(true) .contentDispositionAttachment(isDownload) .urlMode(linkRequest.getLinkArgs().getUrlMode()); // resolve media library reference Media media = mediaHandler.get(mediaRef, mediaArgs).build(); if (media != null) { // set resovled media references information in link metadata link.setUrl(media.getUrl()); link.setTargetAsset(media.getAsset()); link.setTargetRendition(media.getRendition()); } // mark link as invalid if a reference was set that could not be resolved if (link.getUrl() == null && StringUtils.isNotEmpty(mediaRef)) { link.setLinkReferenceInvalid(true); } return link; }
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; }