@Override public @NotNull MediaBuilder args(MediaArgs value) { if (value == null) { throw new IllegalArgumentException("MediaArgs is null."); } // clone media args to make sure the original object is not modified this.mediaArgs = value.clone(); return this; }
MediaBuilderImpl(MediaRequest mediaRequest, MediaHandlerImpl mediaHandler) { if (mediaRequest == null) { throw new IllegalArgumentException("Media request is null."); } this.resource = mediaRequest.getResource(); this.mediaRef = mediaRequest.getMediaRef(); // clone media args to make sure the original object is not modified this.mediaArgs = mediaRequest.getMediaArgs().clone(); this.refProperty = mediaRequest.getRefProperty(); this.cropProperty = mediaRequest.getCropProperty(); this.mediaHandler = mediaHandler; }
/** * 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; }