Reorganizing packages

This commit is contained in:
Andrew Golovashevich 2025-01-06 01:47:48 +03:00
parent 91ac6c464a
commit f0ffe331af
34 changed files with 121 additions and 115 deletions

View File

@ -1,8 +0,0 @@
package ru.landgrafhomyak.serdha.api.v0.dml
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
public interface SelectedTable<SelectedTableUserExtension : Any, QueryUserExtension : Any> {
public fun <RT, DT : ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType<RT>> selectColumn(column: Column<RT, DT, SelectedTableUserExtension>): Expression<RT, DT, QueryUserExtension>
}

View File

@ -1,8 +1,7 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.misc
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.dml.SelectedTable
import ru.landgrafhomyak.serdha.api.v0.table.Table
/**
* Descriptor of data column (of table or query). Used for schema manipulations and [access in queries builder][SelectedTable.selectColumn].

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.types
package ru.landgrafhomyak.serdha.api.v0.misc
import kotlin.jvm.JvmField
import kotlin.jvm.JvmName
@ -6,6 +6,7 @@ import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import ru.landgrafhomyak.serdha.api.v0.table.RowId
/**
* Descriptor of a database type.

View File

@ -1,7 +1,8 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.types
package ru.landgrafhomyak.serdha.api.v0.misc
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.table.RowId
import ru.landgrafhomyak.serdha.api.v0.table.Table
/**
* Provider of database types descriptors.

View File

@ -1,10 +1,9 @@
package ru.landgrafhomyak.serdha.api.v0
package ru.landgrafhomyak.serdha.api.v0.misc
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
public interface Expression<RuntimeType, DT : DatabaseType<RuntimeType>, OwnerBuilderUserExtension : Any> {
public interface Builder<OwnerBuilderUserExtension : Any> {

View File

@ -1,7 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.dml
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
package ru.landgrafhomyak.serdha.api.v0.misc
public interface InputParam<RT, DT : DatabaseType<RT>, OwnerQueryUserExtension : Any> : Expression<RT, DT, OwnerQueryUserExtension> {
public val name: String

View File

@ -0,0 +1,5 @@
package ru.landgrafhomyak.serdha.api.v0.misc
public interface SelectedTable<SelectedTableUserExtension : Any, QueryUserExtension : Any> {
public fun <RT, DT : DatabaseType<RT>> selectColumn(column: Column<RT, DT, SelectedTableUserExtension>): Expression<RT, DT, QueryUserExtension>
}

View File

@ -1,13 +1,14 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.module
package ru.landgrafhomyak.serdha.api.v0.module
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.dml.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.dml.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.dml.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.dml.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateQuery
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.queries.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.queries.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.queries.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.queries.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.queries.UpdateQuery
import ru.landgrafhomyak.serdha.api.v0.runtime.SynchronizedDatabase
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
import ru.landgrafhomyak.serdha.api.v0.table.CreateTableScope
/**
* Scope methods for creating new [module template][ModuleTemplate].
@ -40,7 +41,7 @@ public interface CreateModuleScope {
* @see CreateModuleScope.createTransactionScopeTemporaryTable
* @see UpgradeModuleScope.TableUpgrade
*/
public fun createTable(creator: ru.landgrafhomyak.serdha.api.v0.ddl.table.CreateTableScope<TableUserExtension>): TableUserExtension
public fun createTable(creator: CreateTableScope<TableUserExtension>): TableUserExtension
}
/**

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.module
package ru.landgrafhomyak.serdha.api.v0.module
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.runtime.SynchronizedDatabase

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.module
package ru.landgrafhomyak.serdha.api.v0.module
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.module
package ru.landgrafhomyak.serdha.api.v0.module
public interface Namespace {
@Suppress("SpellCheckingInspection")

View File

@ -1,7 +1,7 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.module
package ru.landgrafhomyak.serdha.api.v0.module
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.table.UpdateTableScope
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.table.UpdateTableScope
/**
* Scope methods for upgrading [module template][ModuleTemplate].

View File

@ -1,10 +1,10 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
public interface CopyQuery<QueryUserExtension : Any> {
public val userExtension: QueryUserExtension

View File

@ -1,9 +1,10 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
public interface DeleteQuery<QueryUserExtension : Any> : _CommonCreateQueryScope.CanBeSubquery<QueryUserExtension> {
public val userExtension: QueryUserExtension

View File

@ -1,10 +1,11 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.InputParam
public interface InsertQuery<QueryUserExtension : Any> {
public val userExtension: QueryUserExtension

View File

@ -1,8 +1,8 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.ddl.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
public interface SelectQuery<QueryUserExtension : Any> : _CommonCreateQueryScope.CanBeSubquery<QueryUserExtension> {
public val userExtension: QueryUserExtension

View File

@ -1,10 +1,11 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.module.CreateModuleScope
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
public interface UpdateQuery<QueryUserExtension : Any> : _CommonCreateQueryScope.CanBeSubquery<QueryUserExtension> {
public val userExtension: QueryUserExtension

View File

@ -1,11 +1,13 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseTypesProvider
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
import ru.landgrafhomyak.serdha.api.v0.misc.InputParam
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
import ru.landgrafhomyak.serdha.api.v0.runtime.ParametersSetter
import ru.landgrafhomyak.serdha.api.v0.runtime._ParametersSetter

View File

@ -1,9 +1,10 @@
package ru.landgrafhomyak.serdha.api.v0.dml
package ru.landgrafhomyak.serdha.api.v0.queries
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.ddl.table.UniqueIndex
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.table.UniqueIndex
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.SelectedTable
@Suppress("ClassName")
public interface _CreateInsertOrCopyQueryScope<QueryUserExtension : Any, TargetTableUserExtension : Any> : _CommonCreateQueryScope<QueryUserExtension> {

View File

@ -1,6 +1,6 @@
package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.dml.InputParam
import ru.landgrafhomyak.serdha.api.v0.misc.InputParam
public interface ParametersSetter<QueryUserExtension : Any> {
public operator fun <RuntimeType> set(c: InputParam<RuntimeType, *, QueryUserExtension>, value: RuntimeType)

View File

@ -1,6 +1,6 @@
package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Column
import ru.landgrafhomyak.serdha.api.v0.misc.Column
public interface Row<QueryUserExtension : Any> {
public operator fun <RuntimeType> get(c: Column<RuntimeType, *, QueryUserExtension>): RuntimeType

View File

@ -1,14 +1,14 @@
package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
import ru.landgrafhomyak.serdha.api.v0.ddl.module.Module
import ru.landgrafhomyak.serdha.api.v0.ddl.types.RowId
import ru.landgrafhomyak.serdha.api.v0.ddl.table.Table
import ru.landgrafhomyak.serdha.api.v0.dml.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.dml.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.dml.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.dml.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateQuery
import ru.landgrafhomyak.serdha.api.v0.module.Module
import ru.landgrafhomyak.serdha.api.v0.table.RowId
import ru.landgrafhomyak.serdha.api.v0.table.Table
import ru.landgrafhomyak.serdha.api.v0.queries.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.queries.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.queries.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.queries.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.queries.UpdateQuery
public interface SynchronizedDatabase<DatabaseUserExtension : Any> : Module<DatabaseUserExtension> {
@Suppress("FunctionName")

View File

@ -1,11 +1,11 @@
package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
import ru.landgrafhomyak.serdha.api.v0.dml.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.dml.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.dml.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.dml.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateQuery
import ru.landgrafhomyak.serdha.api.v0.queries.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.queries.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.queries.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.queries.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.queries.UpdateQuery
public interface Transaction {
@Suppress("FunctionName")

View File

@ -1,6 +1,6 @@
package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.ddl.module.ModuleTemplate
import ru.landgrafhomyak.serdha.api.v0.module.ModuleTemplate
@Suppress("SpellCheckingInspection")
public interface UnsynchronizedDatabase {

View File

@ -6,11 +6,11 @@ import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.LowLevelApi
import ru.landgrafhomyak.serdha.api.v0.dml.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.dml.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.dml.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.dml.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.dml.UpdateQuery
import ru.landgrafhomyak.serdha.api.v0.queries.CopyQuery
import ru.landgrafhomyak.serdha.api.v0.queries.DeleteQuery
import ru.landgrafhomyak.serdha.api.v0.queries.InsertQuery
import ru.landgrafhomyak.serdha.api.v0.queries.SelectQuery
import ru.landgrafhomyak.serdha.api.v0.queries.UpdateQuery
@Suppress("FunctionName")

View File

@ -1,8 +1,9 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
/**
* Descriptor of 'check' constraint on columns. Used for schema manipulations.

View File

@ -1,9 +1,9 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseTypesProvider
import ru.landgrafhomyak.serdha.api.v0.ddl.types.RowId
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseTypesProvider
public interface CreateTableScope<TableUserExtension : Any> {
public val expressionBuilder: Expression.Builder<TableUserExtension>

View File

@ -1,7 +1,9 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
/**
* Descriptor of default value attached to [column][Column]. Used for schema manipulations.
@ -10,7 +12,7 @@ import ru.landgrafhomyak.serdha.api.v0.Expression
* @param DT Descriptor of column type on database side.
* @param TableUserExtension Type of [owner's table][Column.table] user expression for static reporting errors when this descriptor passed to wrong table.
*/
public interface DefaultConstraint<RT, DT : ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType<RT>, TableUserExtension : Any> {
public interface DefaultConstraint<RT, DT : DatabaseType<RT>, TableUserExtension : Any> {
/**
* Name of constraint for debugging, errors and raw schema access.
*/

View File

@ -1,8 +1,8 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.ddl.types.RowId
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
/**
* Descriptor of a reference to row in another table (== foreign key to `INTEGER PRIMARY KEY AUTOINCREMENT`). Used for schema manipulations.

View File

@ -1,6 +1,7 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import kotlin.jvm.JvmName
import ru.landgrafhomyak.serdha.api.v0.misc.Column
/**
* Descriptor of index. Used for schema manipulations.

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.types
package ru.landgrafhomyak.serdha.api.v0.table
public interface RowId<@Suppress("unused") OwnerTableUserExtension: Any>

View File

@ -1,6 +1,6 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import ru.landgrafhomyak.serdha.api.v0.ddl.module.Module
import ru.landgrafhomyak.serdha.api.v0.module.Module
public interface Table<UserExtension : Any, PreviousUserExtension : Any> {
public val userExtension: UserExtension

View File

@ -1,4 +1,4 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
public interface UniqueIndex<OwnerTableUserExtension : Any> : Index<OwnerTableUserExtension> {
public val areNullsDistinct: Boolean

View File

@ -1,7 +1,8 @@
package ru.landgrafhomyak.serdha.api.v0.ddl.table
package ru.landgrafhomyak.serdha.api.v0.table
import ru.landgrafhomyak.serdha.api.v0.Expression
import ru.landgrafhomyak.serdha.api.v0.ddl.types.DatabaseType
import ru.landgrafhomyak.serdha.api.v0.misc.Column
import ru.landgrafhomyak.serdha.api.v0.misc.Expression
import ru.landgrafhomyak.serdha.api.v0.misc.DatabaseType
public interface UpdateTableScope<TableNewUserExtension : Any, TableOldUserExtension : Any> : CreateTableScope<TableNewUserExtension> {