docs / it.uniroma3.dbtree.spi / KeyParserGroupBy

KeyParserGroupBy

abstract class KeyParserGroupBy<K> : KeyParser<K> where K : Comparable<K>, K : Serializable (source)

Abstract class that extends the KeyParser interface.

The KeyParserGroupBy is an auxiliary abstract class that adds more information about the key that are needed to perform the groupBy operation.

All keys used in a groupBy query can be summarize as a pair (x,y) where x is the most significant part and identify a group and y is the least significant part that identify the range. The KeyParserGroupBy helps the Connector to identify the x and y part of a key.

Parameters

K - the comparable Key.

Constructors

<init>

Abstract class that extends the KeyParser interface.

KeyParserGroupBy()

Properties

keyColumnsDefinitionDB

It is the list of all the column names and their definition that identify a key.

open val keyColumnsDefinitionDB: List<Pair<String, String>>

leastSignificantDefinition

abstract val leastSignificantDefinition: List<Pair<String, String>>

mostSignificantDefinition

abstract val mostSignificantDefinition: List<Pair<String, String>>

Functions

bind

Returns a key K.

abstract fun bind(x: List<Any>, y: List<Any>): K

group

Returns the group of the passed composite key.

abstract fun group(s: String): List<Any>

lsp_geqDB

DB query for 'greater than or equal' relationship.

abstract fun lsp_geqDB(columnName: List<String>, y: List<Any>): String

lsp_gtDB

DB query for 'greater than' relationship.

abstract fun lsp_gtDB(columnName: List<String>, y: List<Any>): String

lsp_leqDB

DB query for 'less than or equal' relationship.

abstract fun lsp_leqDB(columnName: List<String>, y: List<Any>): String

lsp_ltDB

DB query for 'less than' relationship.

abstract fun lsp_ltDB(columnName: List<String>, y: List<Any>): String

most_neqDB

Let k_min = (x_min, y_min). Let k_max = (x_max, y_max).

abstract fun most_neqDB(columnNameMin: List<String>, columnNameMax: List<String>): String

Inheritors

DepartmentEmployeesParser

Example of KeyParserGroupBy class, managing a groupBy key: DepartmentEmployee. Group: the name of the department. Least significant key's component: Person.

class DepartmentEmployeesParser : KeyParserGroupBy<DepartmentEmployee>