@Override public @NotNull MediaBuilder urlMode(UrlMode value) { this.mediaArgs.urlMode(value); return this; }
@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; }