ReportStructureBuilder

abstract class ReportStructureBuilder : KoinComponent

Abstrakcyjna fabryka do tworzenia struktur raportów.

Używa wzorca Template Method do zdefiniowania szkieletu procesu budowania raportu. Klasy dziedziczące implementują konkretne części:

  • Zapytanie SQL

  • Definicje kolumn

  • Akcje użytkownika

Przykład implementacji:

class UsersReportStructureBuilder : ReportStructureBuilder() {
override fun getReportName() = "users"
override fun buildQuery() = Query("SELECT id, name, email FROM users")
override fun buildColumns() = mapOf(
"id" to NumberColumn("ID"),
"name" to StringColumn("Nazwa"),
"email" to StringColumn("Email")
)
}

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
val dataAccess: DataAccess

Functions

Link copied to clipboard

Główna metoda budująca. Orkiestruje proces i nie powinna być nadpisywana.

Link copied to clipboard

Buduje i zwraca mapę kolumn dla raportu.

Link copied to clipboard

Buduje i zwraca domyślną akcję dla wierszy. Domyślnie zwraca null.

Link copied to clipboard

Buduje i zwraca listę akcji dla menu "Dodaj". Domyślnie zwraca pustą listę.

Link copied to clipboard
abstract fun buildQuery(): QueryFragment

Buduje i zwraca obiekt Query dla raportu.

Link copied to clipboard
open fun buildQuickSearch(searchQuery: String): QueryFragment?

Buduje fragment zapytania dla szybkiego wyszukiwania. Nadpisz tę metodę, aby dostarczyć niestandardową logikę wyszukiwania.

Link copied to clipboard

Buduje i zwraca listę akcji dla wierszy. Domyślnie zwraca pustą listę, ponieważ nie każdy raport ma akcje.

Link copied to clipboard

Metoda szablonowa, która składa raport z części dostarczonych przez metody abstrakcyjne.

Link copied to clipboard
open fun getKoin(): Koin
Link copied to clipboard
abstract fun getReportName(): String

Zwraca nazwę raportu.