Class MediaSource

    • Constructor Detail

      • MediaSource

        public MediaSource()
    • Method Detail

      • getId

        @NotNull
        public abstract @NotNull java.lang.String getId()
        Returns:
        Media source ID
      • getPrimaryMediaRefProperty

        @Nullable
        public abstract @Nullable java.lang.String getPrimaryMediaRefProperty()
        Returns:
        Name of the property in which the primary media request is stored
      • accepts

        public boolean accepts​(@NotNull
                               @NotNull MediaRequest mediaRequest)
        Checks whether a media request can be handled by this media source
        Parameters:
        mediaRequest - Media request
        Returns:
        true if this media source can handle the given media request
      • accepts

        public abstract boolean accepts​(@Nullable
                                        @Nullable java.lang.String mediaRef)
        Checks whether a media request string can be handled by this media source
        Parameters:
        mediaRef - Media request string
        Returns:
        true if this media source can handle the given media request
      • resolveMedia

        @NotNull
        public abstract @NotNull Media resolveMedia​(@NotNull
                                                    @NotNull Media media)
        Resolves a media request
        Parameters:
        media - Media metadata
        Returns:
        Resolved media metadata. Never null.
      • enableMediaDrop

        public abstract void enableMediaDrop​(@NotNull
                                             @NotNull io.wcm.handler.commons.dom.HtmlElement element,
                                             @NotNull
                                             @NotNull MediaRequest mediaRequest)
        Create a drop area for given HTML element to enable drag and drop of DAM assets from content finder to this element.
        Parameters:
        element - Html element
        mediaRequest - Media request to detect media args and property names
      • setCustomIPECropRatios

        public void setCustomIPECropRatios​(@NotNull
                                           @NotNull io.wcm.handler.commons.dom.HtmlElement element,
                                           @NotNull
                                           @NotNull MediaRequest mediaRequest)
        Sets list of cropping ratios to a list matching the selected media formats.
        Parameters:
        element - Html element
        mediaRequest - Media request to detect media args and property names
      • getMediaRef

        @Nullable
        protected final @Nullable java.lang.String getMediaRef​(@NotNull
                                                               @NotNull MediaRequest mediaRequest,
                                                               @Nullable
                                                               @Nullable MediaHandlerConfig mediaHandlerConfig)
        Get media request path to media library
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config (can be null, but should not be null)
        Returns:
        Path or null if not present
      • getMediaRefProperty

        @NotNull
        protected final @NotNull java.lang.String getMediaRefProperty​(@NotNull
                                                                      @NotNull MediaRequest mediaRequest,
                                                                      @Nullable
                                                                      @Nullable MediaHandlerConfig mediaHandlerConfig)
        Get property name containing the media request path
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config (can be null, but should not be null)
        Returns:
        Property name
      • getMediaCropDimension

        @Nullable
        protected final @Nullable CropDimension getMediaCropDimension​(@NotNull
                                                                      @NotNull MediaRequest mediaRequest,
                                                                      @Nullable
                                                                      @Nullable MediaHandlerConfig mediaHandlerConfig)
        Get (optional) crop dimensions from resource
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config (can be null, but should not be null)
        Returns:
        Crop dimension or null if not set or invalid
      • getMediaCropProperty

        @NotNull
        protected final @NotNull java.lang.String getMediaCropProperty​(@NotNull
                                                                       @NotNull MediaRequest mediaRequest,
                                                                       @Nullable
                                                                       @Nullable MediaHandlerConfig mediaHandlerConfig)
        Get property name containing the cropping parameters
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config (can be null, but should not be null)
        Returns:
        Property name
      • getMediaRotation

        @Nullable
        protected final @Nullable java.lang.Integer getMediaRotation​(@NotNull
                                                                     @NotNull MediaRequest mediaRequest,
                                                                     @NotNull
                                                                     @NotNull MediaHandlerConfig mediaHandlerConfig)
        Get (optional) rotation from resource
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config
        Returns:
        Rotation value or null if not set or invalid
      • getMediaRotationProperty

        @NotNull
        protected final @NotNull java.lang.String getMediaRotationProperty​(@NotNull
                                                                           @NotNull MediaRequest mediaRequest,
                                                                           @NotNull
                                                                           @NotNull MediaHandlerConfig mediaHandlerConfig)
        Get property name containing the rotation parameter
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config
        Returns:
        Property name
      • getMediaMap

        @Nullable
        protected final @Nullable java.util.List<ImageMapArea> getMediaMap​(@NotNull
                                                                           @NotNull MediaRequest mediaRequest,
                                                                           @NotNull
                                                                           @NotNull MediaHandlerConfig mediaHandlerConfig)
        Get (optional) image map areas from resource
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config
        Returns:
        Rotation value or null if not set or invalid
      • getMediaMapProperty

        @NotNull
        protected final @NotNull java.lang.String getMediaMapProperty​(@NotNull
                                                                      @NotNull MediaRequest mediaRequest,
                                                                      @NotNull
                                                                      @NotNull MediaHandlerConfig mediaHandlerConfig)
        Get property name containing the image map parameter
        Parameters:
        mediaRequest - Media request
        mediaHandlerConfig - Media handler config
        Returns:
        Property name
      • updateMediaArgsFromResource

        protected final void updateMediaArgsFromResource​(@NotNull
                                                         @NotNull MediaArgs mediaArgs,
                                                         @NotNull
                                                         @NotNull org.apache.sling.api.resource.Resource resource,
                                                         @NotNull
                                                         @NotNull MediaHandlerConfig mediaHandlerConfig)
        Updates media args settings that have default default values with values defined in the current resource that defines the media reference (e.g. alt. text settings).
        Parameters:
        mediaArgs - Media args
        resource - Resource with media reference
        mediaHandlerConfig - Media handler config
      • resolveRenditions

        protected final boolean resolveRenditions​(Media media,
                                                  Asset asset,
                                                  MediaArgs mediaArgs)
        Resolves single rendition (or multiple renditions if any of the MediaArgs.MediaFormatOption.isMandatory() is set to true and sets the resolved rendition and the URL of the first (best-matching) rendition in the media object.
        Parameters:
        media - Media object
        asset - Asset
        mediaArgs - Media args
        Returns:
        true if all requested mandatory renditions could be resolved (at least one or all if none was set to mandatory)