@Override @SuppressWarnings("null") public boolean accepts(@NotNull MediaRequest mediaRequest) { // if no media source id is defined fallback to auto-detection of inline media object in resource String mediaSourceId = mediaRequest.getResourceProperties().get(MediaNameConstants.PN_MEDIA_SOURCE, String.class); if (StringUtils.isEmpty(mediaSourceId)) { // accept for inline media if "mediaInline" child node is present return getMediaInlineResource(mediaRequest) != null; } else { return super.accepts(mediaRequest); } }
/** * Checks whether a media request can be handled by this media source * @param mediaRequest Media request * @return true if this media source can handle the given media request */ @SuppressWarnings("null") public boolean accepts(@NotNull MediaRequest mediaRequest) { // if an explicit media request is set check this first if (StringUtils.isNotEmpty(mediaRequest.getMediaRef())) { return accepts(mediaRequest.getMediaRef()); } // otherwise check resource which contains media request properties ValueMap props = mediaRequest.getResourceProperties(); // check for matching media source ID in link resource String mediaSourceId = props.get(MediaNameConstants.PN_MEDIA_SOURCE, String.class); if (StringUtils.isNotEmpty(mediaSourceId)) { return StringUtils.equals(mediaSourceId, getId()); } // if not link type is set at all check if link ref attribute contains a valid link else { String refProperty = StringUtils.defaultString(mediaRequest.getRefProperty(), getPrimaryMediaRefProperty()); String mediaRef = props.get(refProperty, String.class); return accepts(mediaRef); } }