Interface DiscoveryFacet

  • All Superinterfaces:
    org.gcube.informationsystem.base.reference.Element, org.gcube.informationsystem.model.reference.entities.Entity, org.gcube.informationsystem.base.reference.entities.EntityElement, org.gcube.informationsystem.model.reference.ERElement, org.gcube.informationsystem.model.reference.entities.Facet, org.gcube.informationsystem.base.reference.IdentifiableElement, org.gcube.informationsystem.model.reference.ModelElement, org.gcube.informationsystem.base.reference.SchemaMixedElement, Serializable
    All Known Implementing Classes:
    DiscoveryFacetImpl

    @TypeMetadata(name="DiscoveryFacet",
                  description="This facet defines a group of resources to be discovered and potentially selected for inclusion in a context. It enables dynamic resource discovery through queries and supports selection constraints.",
                  version="1.0.0")
    @Change(version="1.0.0",
            description="First Version")
    public interface DiscoveryFacet
    extends org.gcube.informationsystem.model.reference.entities.Facet
    Author:
    Luca Frosini (ISTI - CNR)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String DESCRIPTION_PROPERTY
      The name of 'description' property
      static String GROUP_PROPERTY
      The name of 'group' property
      static String MAX_PROPERTY
      The name of 'max' property
      static String MIN_PROPERTY
      The name of 'min' property
      static String NAME
      The name associated with this facet
      static String QUERIES_PROPERTY
      The name of 'queries' property
      static String QUERY_TEMPLATES_PROPERTY
      The name of 'queryTemplates' property
      • Fields inherited from interface org.gcube.informationsystem.base.reference.Element

        DATETIME_PATTERN, TYPE_PROPERTY
      • Fields inherited from interface org.gcube.informationsystem.model.reference.ERElement

        CONTEXTS_PROPERTY
      • Fields inherited from interface org.gcube.informationsystem.base.reference.IdentifiableElement

        ID_PROPERTY, METADATA_PROPERTY
      • Fields inherited from interface org.gcube.informationsystem.model.reference.ModelElement

        EXPECTED_TYPE_PROPERTY, SUPERTYPES_PROPERTY
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addQuery​(org.gcube.com.fasterxml.jackson.databind.node.ObjectNode query)
      Adds a JSON query object used to discover resources.
      void addQueryTemplates​(org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference queryTemplates)
      Adds a query template reference with parameters.
      static DiscoveryFacet getDefaultInstance()
      Returns a default instance of DiscoveryFacet
      String getDescription()
      Human-readable description displayed to users explaining what type of resources will be discovered in this group
      String getGroup()
      The name identifier of the resource group to discover.
      Integer getMax()
      Maximum number of resources that can be selected from this group.
      int getMin()
      Minimum number of resources that must be selected from this group.
      org.gcube.com.fasterxml.jackson.databind.node.ArrayNode getQueries()
      Array of JSON query objects used to discover resources.
      List<org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference> getQueryTemplates()
      Array of query template references with parameters.
      void setDescription​(String description)
      Sets a human-readable description displayed to users explaining what type of resources will be discovered in this group
      void setGroup​(String group)
      Sets the name identifier of the resource group to discover.
      void setMax​(Integer max)
      Sets the maximum number of resources that can be selected from this group.
      void setMin​(int min)
      Sets the minimum number of resources that must be selected from this group.
      void setQueries​(org.gcube.com.fasterxml.jackson.databind.node.ArrayNode queries)
      Sets the array of JSON query objects used to discover resources.
      void setQueryTemplates​(List<org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference> queryTemplates)
      Sets the array of query template references with parameters.
      • Methods inherited from interface org.gcube.informationsystem.base.reference.Element

        getTypeName
      • Methods inherited from interface org.gcube.informationsystem.base.reference.entities.EntityElement

        getID, getMetadata, setID, setMetadata
      • Methods inherited from interface org.gcube.informationsystem.model.reference.ERElement

        getContexts
      • Methods inherited from interface org.gcube.informationsystem.model.reference.entities.Facet

        getAdditionalProperties, getAdditionalProperty, setAdditionalProperties, setAdditionalProperty
      • Methods inherited from interface org.gcube.informationsystem.model.reference.ModelElement

        getExpectedtype, getSupertypes
    • Method Detail

      • getDefaultInstance

        static DiscoveryFacet getDefaultInstance()
        Returns a default instance of DiscoveryFacet
        Returns:
        a default instance of DiscoveryFacet
      • getGroup

        @ISProperty(name="group",
                    description="The name identifier of the resource group to discover. This serves as a unique identifier for organizing and categorizing discovered resources.",
                    mandatory=true,
                    nullable=false)
        String getGroup()
        The name identifier of the resource group to discover. This serves as a unique identifier for organizing and categorizing discovered resources.
        Returns:
        the group name
      • setGroup

        void setGroup​(String group)
        Sets the name identifier of the resource group to discover. This serves as a unique identifier for organizing and categorizing discovered resources.
        Parameters:
        group - the group name
      • getDescription

        @ISProperty(name="description",
                    description="Human-readable description displayed to users explaining what type of resources will be discovered in this group")
        String getDescription()
        Human-readable description displayed to users explaining what type of resources will be discovered in this group
        Returns:
        the description
      • setDescription

        void setDescription​(String description)
        Sets a human-readable description displayed to users explaining what type of resources will be discovered in this group
        Parameters:
        description - the description
      • getMin

        @ISProperty(name="min",
                    description="Minimum number of resources that must be selected from this group. Default is 0 (optional selection).",
                    readonly=false,
                    mandatory=true,
                    nullable=false,
                    defaultValue="0")
        int getMin()
        Minimum number of resources that must be selected from this group. Default is 0 (optional selection).
        Returns:
        the min
      • setMin

        void setMin​(int min)
        Sets the minimum number of resources that must be selected from this group. Default is 0 (optional selection).
        Parameters:
        min - the min
      • getMax

        @ISProperty(name="max",
                    description="Maximum number of resources that can be selected from this group. Null means unlimited selection.",
                    readonly=false,
                    mandatory=true,
                    nullable=true,
                    defaultValue="null")
        Integer getMax()
        Maximum number of resources that can be selected from this group. Null means unlimited selection.
        Returns:
        the max
      • setMax

        void setMax​(Integer max)
        Sets the maximum number of resources that can be selected from this group. Null means unlimited selection.
        Parameters:
        max - the max
      • getQueries

        @ISProperty(name="queries",
                    description="Array of JSON query objects used to discover resources. Each query is executed and results are combined (union of all query results).",
                    readonly=false,
                    mandatory=true,
                    nullable=true,
                    defaultValue="null")
        org.gcube.com.fasterxml.jackson.databind.node.ArrayNode getQueries()
        Array of JSON query objects used to discover resources. Each query is executed and results are combined (union of all query results).
        Returns:
        the queries
      • setQueries

        void setQueries​(org.gcube.com.fasterxml.jackson.databind.node.ArrayNode queries)
        Sets the array of JSON query objects used to discover resources. Each query is executed and results are combined (union of all query results).
        Parameters:
        queries - the queries
      • addQuery

        void addQuery​(org.gcube.com.fasterxml.jackson.databind.node.ObjectNode query)
        Adds a JSON query object used to discover resources.
        Parameters:
        query - the query
      • getQueryTemplates

        @ISProperty(name="queryTemplates",
                    description="Array of query template references with parameters. These are named, reusable query definitions that can accept variables for dynamic resource discovery.",
                    readonly=false,
                    mandatory=true,
                    nullable=true,
                    defaultValue="null")
        List<org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference> getQueryTemplates()
        Array of query template references with parameters. These are named, reusable query definitions that can accept variables for dynamic resource discovery.
        Returns:
        the query templates
      • setQueryTemplates

        void setQueryTemplates​(List<org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference> queryTemplates)
        Sets the array of query template references with parameters. These are named, reusable query definitions that can accept variables for dynamic resource discovery.
        Parameters:
        queryTemplates - the query templates
      • addQueryTemplates

        void addQueryTemplates​(org.gcube.informationsystem.queries.templates.reference.properties.QueryTemplateReference queryTemplates)
        Adds a query template reference with parameters. These are named, reusable query definitions that can accept variables for dynamic resource discovery.
        Parameters:
        queryTemplates - the query template to add