Class ContentSearchHelper

    • Method Detail

      • getMetadataSearchField

        public SearchField getMetadataSearchField​(String metadataPath,
                                                  MetadataType metadataType,
                                                  boolean isTypeContentWithMultilingualTitle)
        Get a SearchField corresponding to a metadata.
        Parameters:
        metadataPath - The metadata path.
        metadataType - The metadata type.
        isTypeContentWithMultilingualTitle - true if the type is Content and the linked contents have multilingual titles
        Returns:
        the search field.
      • getMetadataSearchField

        public SearchField getMetadataSearchField​(List<String> joinPaths,
                                                  String metadataPath,
                                                  MetadataType metadataType,
                                                  boolean isTypeContentWithMultilingualTitle)
        Get a SearchField corresponding to a metadata.
        Parameters:
        joinPaths - The join paths
        metadataPath - The metadata path.
        metadataType - The metadata type.
        isTypeContentWithMultilingualTitle - true if the type is Content and the linked contents have multilingual titles
        Returns:
        the search field.
      • getSearchField

        public Optional<SearchFieldgetSearchField​(Collection<String> contentTypes,
                                                    String fieldPath)
        Get a SearchField from a field name in a batch of content types.
        Parameters:
        contentTypes - The content types, can be empty to search on any content type. In that case, only the title metadata and system properties will be usable in sort and facets specs.
        fieldPath - The field path, can be either a system property ID or a indexing field name or path.
        Returns:
        The SearchField corresponding to the field path, or an empty optional if not found
      • _getSearchField

        protected SearchField _getSearchField​(MetadataIndexingField indexingField,
                                              String[] remainingPathSegments,
                                              List<String> joinPaths,
                                              boolean addLast)
        Get the search field from the indexing field and compute the join paths. Can be null if the last indexing field is a custom indexing field.
        Parameters:
        indexingField - The initial indexing field
        remainingPathSegments - The path to access the metadata or an another indexing field from the initial indexing field
        joinPaths - The consecutive's path in case of joint to access the field/metadata
        addLast - true to add the last join path element to the list, false otherwise.
        Returns:
        The search field or null if not found
      • isTitleMultilingual

        public boolean isTitleMultilingual​(MetadataDefinition def)
        Determines if the given metadata definition represents a CONTENT metadata with contents with multilingual titles
        Parameters:
        def - The metadata definition
        Returns:
        true if the given metadata definition represents a CONTENT metadata with contents with multilingual titles
      • isTitleMultilingual

        public boolean isTitleMultilingual​(ModelItem modelItem)
        Determines if the given metadata definition represents a CONTENT metadata with contents with multilingual titles
        Parameters:
        modelItem - The metadata definition
        Returns:
        true if the given metadata definition represents a CONTENT metadata with contents with multilingual titles
      • getAttributeValues

        public Map<String,​ObjectgetAttributeValues​(String contentId,
                                                           Collection<String> dataPaths,
                                                           Locale defaultLocale)
        Get attributes values by their paths
        Parameters:
        contentId - The id of content
        dataPaths - The paths of data to retrieve
        defaultLocale - The default locale to resolve multilingual values if the content's language is null. Can be null.
        Returns:
        The attributes values
      • getAttributeValues

        public Map<String,​ObjectgetAttributeValues​(Content content,
                                                           Collection<String> dataPaths,
                                                           Locale defaultLocale)
        Get attributes values by their paths
        Parameters:
        content - The initial content
        dataPaths - The path of data to retrieve, slash-separated.
        defaultLocale - The default locale to resolve multilingual values if the content's language is null. Can be null.
        Returns:
        The attributes values
      • getAttributeValue

        public Object getAttributeValue​(Content content,
                                        String dataPath,
                                        Locale defaultLocale)
        Get the value(s) of an attribute - transformed into JSONified value - of a content at given path. The path can represent a path of an attribute into the content or an attribute on one or more linked contents, such as 'composite/linkedContent/secondContent/composite/attribute'. The returned value is typed.
        Parameters:
        content - The content
        dataPath - The path to the attribute, separated by '/'
        defaultLocale - The default locale to resolve multilingual values if the content's language is null. Can be null.
        Returns:
        The final value.
      • getAttributeValue

        public Object getAttributeValue​(Content content,
                                        String dataPath,
                                        Locale defaultLocale,
                                        boolean resolveReferences)
        Get the value(s) of an attribute - transformed into JSONified value - of a content at given path. The path can represent a path of an attribute into the content or an attribute on one or more linked contents, such as 'composite/linkedContent/secondContent/composite/attribute'.
        Parameters:
        content - The content
        dataPath - The path to the attribute, separated by '/'
        defaultLocale - The default locale to resolve multilingual values if the content's language is null. Can be null.
        resolveReferences - true to generate full representation of attribute's values : the references will be resolved and the label of enumerated values will be returned.
        Returns:
        The final value, transformed for search.
      • getAttributeValue

        public Object getAttributeValue​(Content content,
                                        String dataPath,
                                        ModelItem modelItem,
                                        Locale defaultLocale,
                                        boolean resolveReferences)
        Get the value(s) of an attribute - transformed into JSONified value - of a content at given path. The path can represent a path of an attribute into the content or an attribute on one or more linked contents, such as 'composite/linkedContent/secondContent/composite/attribute'.
        Parameters:
        content - The initial content.
        dataPath - The path to the attribute, separated by '/'
        modelItem - The attribute definition.
        defaultLocale - The default locale to resolve multilingual values if the content's language is null. Can be null.
        resolveReferences - true to generate full representation of attribute's values : the references will be resolved and the label of enumerated values will be returned.
        Returns:
        The final value, transformed for search.
      • _transformValue

        private Object _transformValue​(Content content,
                                       ElementDefinition definition,
                                       Object value,
                                       Locale locale,
                                       boolean resolveReferences)
        Transform the raw value into a JSONified value, understandable for search UI
        Parameters:
        content - the content
        definition - definition of the attribute to transform
        value - The typed values to transform
        locale - Locale to use for localized values if content's language is null.
        resolveReferences - true to generate full representation of attribute's values
        Returns:
        The transformed values