Class QueryServiceImpl

    • Constructor Detail

      • QueryServiceImpl

        public QueryServiceImpl()
    • Method Detail

      • setPersistenceService

        public void setPersistenceService​(PersistenceService persistenceService)
      • setDefinitionsService

        public void setDefinitionsService​(DefinitionsService definitionsService)
      • postConstruct

        public void postConstruct()
      • preDestroy

        public void preDestroy()
      • getAggregate

        public Map<String,​Long> getAggregate​(String itemType,
                                                   String property)
        Description copied from interface: QueryService
        Retrieves the number of items with the specified type as defined by the Item subclass public field ITEM_TYPE and aggregated by possible values of the specified property.
        Specified by:
        getAggregate in interface QueryService
        Parameters:
        itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
        property - the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that value
        Returns:
        a Map associating a specific value of the property to the cardinality of items with that value
        See Also:
        Item for a discussion of
      • getAggregate

        @Deprecated
        public Map<String,​Long> getAggregate​(String itemType,
                                                   String property,
                                                   AggregateQuery query)
        Deprecated.
        As of version 1.3.0-incubating, use getAggregateWithOptimizedQuery(String, String, AggregateQuery) instead
        Description copied from interface: QueryService
        TODO: rework, this method is confusing since it either behaves like QueryService.getAggregate(String, String) if query is null but completely differently if it isn't Retrieves the number of items with the specified type as defined by the Item subclass public field ITEM_TYPE and aggregated by possible values of the specified property or, if the specified query is not null, perform that aggregate query. Also return the global count of document matching the ITEM_TYPE
        Specified by:
        getAggregate in interface QueryService
        Parameters:
        itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
        property - the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that value
        query - the AggregateQuery specifying the aggregation that should be perfomed
        Returns:
        a Map associating a specific value of the property to the cardinality of items with that value
        See Also:
        Item for a discussion of
      • getAggregateWithOptimizedQuery

        public Map<String,​Long> getAggregateWithOptimizedQuery​(String itemType,
                                                                     String property,
                                                                     AggregateQuery query)
        Description copied from interface: QueryService
        Retrieves the number of items with the specified type as defined by the Item subclass public field ITEM_TYPE and aggregated by possible values of the specified property or, if the specified query is not null, perform that aggregate query. This aggregate won't return the global count and should therefore be much faster than QueryService.getAggregate(String, String, AggregateQuery)
        Specified by:
        getAggregateWithOptimizedQuery in interface QueryService
        Parameters:
        itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
        property - the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that value
        query - the AggregateQuery specifying the aggregation that should be perfomed
        Returns:
        a Map associating a specific value of the property to the cardinality of items with that value
        See Also:
        Item for a discussion of
      • getMetric

        public Map<String,​Double> getMetric​(String type,
                                                  String property,
                                                  String slashConcatenatedMetrics,
                                                  Condition condition)
        Description copied from interface: QueryService
        Retrieves the specified metrics for the specified field of items of the specified type as defined by the Item subclass public field ITEM_TYPE and matching the specified Condition.
        Specified by:
        getMetric in interface QueryService
        Parameters:
        type - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
        property - the name of the field for which the metrics should be computed
        slashConcatenatedMetrics - a String specifying which metrics should be computed, separated by a slash (/) (possible values: sum for the sum of the values, avg for the average of the values, min for the minimum value and max for the maximum value)
        condition - the condition the items must satisfy
        Returns:
        a Map associating computed metric name as key to its associated value
        See Also:
        Item for a discussion of
      • getQueryCount

        public long getQueryCount​(String itemType,
                                  Condition condition)
        Description copied from interface: QueryService
        Retrieves the number of items of the specified type as defined by the Item subclass public field ITEM_TYPE and matching the specified Condition.
        Specified by:
        getQueryCount in interface QueryService
        Parameters:
        itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
        condition - the condition the items must satisfy
        Returns:
        the number of items of the specified type
        See Also:
        Item for a discussion of