Skip to content

Commit d5507ed

Browse files
authored
chore!: Raise deprecation level of OptionalReferrers (#2325)
1 parent a17161d commit d5507ed

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

documentation-website/Writerside/topics/Breaking-Changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
-- Starting from version 0.57.0
2525
INSERT INTO TEST DEFAULT VALUES
2626
```
27+
* The `OptionalReferrers` class is now deprecated as it is a complete duplicate of the `Referrers` class; therefore, the latter should be used instead.
2728

2829
## 0.56.0
2930
* If the `distinct` parameter of `groupConcat()` is set to `true`, when using Oracle or SQL Server, this will now fail early with an

exposed-dao/api/exposed-dao.api

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,12 @@ public abstract class org/jetbrains/exposed/dao/EntityClass {
146146
public final fun optionalBackReferencedOnOpt (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;)Lorg/jetbrains/exposed/dao/OptionalBackReference;
147147
public final fun optionalReferencedOn (Lorg/jetbrains/exposed/dao/id/IdTable;)Lorg/jetbrains/exposed/dao/OptionalReference;
148148
public final fun optionalReferencedOn (Lorg/jetbrains/exposed/sql/Column;)Lorg/jetbrains/exposed/dao/OptionalReference;
149-
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;)Lorg/jetbrains/exposed/dao/OptionalReferrers;
150-
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;Z)Lorg/jetbrains/exposed/dao/OptionalReferrers;
151-
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;)Lorg/jetbrains/exposed/dao/OptionalReferrers;
152-
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;Z)Lorg/jetbrains/exposed/dao/OptionalReferrers;
153-
public static synthetic fun optionalReferrersOn$default (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;ZILjava/lang/Object;)Lorg/jetbrains/exposed/dao/OptionalReferrers;
154-
public static synthetic fun optionalReferrersOn$default (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;ZILjava/lang/Object;)Lorg/jetbrains/exposed/dao/OptionalReferrers;
149+
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;)Lorg/jetbrains/exposed/dao/Referrers;
150+
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;Z)Lorg/jetbrains/exposed/dao/Referrers;
151+
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;)Lorg/jetbrains/exposed/dao/Referrers;
152+
public final fun optionalReferrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;Z)Lorg/jetbrains/exposed/dao/Referrers;
153+
public static synthetic fun optionalReferrersOn$default (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;ZILjava/lang/Object;)Lorg/jetbrains/exposed/dao/Referrers;
154+
public static synthetic fun optionalReferrersOn$default (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/sql/Column;ZILjava/lang/Object;)Lorg/jetbrains/exposed/dao/Referrers;
155155
public final fun referencedOn (Lorg/jetbrains/exposed/dao/id/IdTable;)Lorg/jetbrains/exposed/dao/Reference;
156156
public final fun referencedOn (Lorg/jetbrains/exposed/sql/Column;)Lorg/jetbrains/exposed/dao/Reference;
157157
public final fun referrersOn (Lorg/jetbrains/exposed/dao/EntityClass;Lorg/jetbrains/exposed/dao/id/IdTable;)Lorg/jetbrains/exposed/dao/Referrers;

exposed-dao/src/main/kotlin/org/jetbrains/exposed/dao/EntityClass.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ abstract class EntityClass<ID : Any, out T : Entity<ID>>(
654654
infix fun <TargetID : Any, Target : Entity<TargetID>, REF : Any> EntityClass<TargetID, Target>.optionalReferrersOn(
655655
column: Column<REF?>
656656
) =
657-
registerRefRule(column) { OptionalReferrers<ID, Entity<ID>, TargetID, Target, REF>(column, this, true) }
657+
registerRefRule(column) { Referrers<ID, Entity<ID>, TargetID, Target, REF?>(column, this, true) }
658658

659659
/**
660660
* Registers an optional reference as an immutable field of the parent entity class, which returns a collection of
@@ -671,10 +671,10 @@ abstract class EntityClass<ID : Any, out T : Entity<ID>>(
671671
*/
672672
infix fun <TargetID : Any, Target : Entity<TargetID>> EntityClass<TargetID, Target>.optionalReferrersOn(
673673
table: IdTable<*>
674-
): OptionalReferrers<ID, Entity<ID>, TargetID, Target, Any> {
674+
): Referrers<ID, Entity<ID>, TargetID, Target, Any?> {
675675
val tableFK = this@EntityClass.getCompositeForeignKey(table)
676676
val delegate = tableFK.from.first() as Column<Any?>
677-
return registerRefRule(delegate) { OptionalReferrers(delegate, this, true, tableFK.references) }
677+
return registerRefRule(delegate) { Referrers(delegate, this, true, tableFK.references) }
678678
}
679679

680680
/**
@@ -694,7 +694,7 @@ abstract class EntityClass<ID : Any, out T : Entity<ID>>(
694694
column: Column<REF?>,
695695
cache: Boolean = false
696696
) =
697-
registerRefRule(column) { OptionalReferrers<ID, Entity<ID>, TargetID, Target, REF>(column, this, cache) }
697+
registerRefRule(column) { Referrers<ID, Entity<ID>, TargetID, Target, REF?>(column, this, cache) }
698698

699699
/**
700700
* Registers an optional reference as an immutable field of the parent entity class, which returns a collection of
@@ -708,10 +708,10 @@ abstract class EntityClass<ID : Any, out T : Entity<ID>>(
708708
fun <TargetID : Any, Target : Entity<TargetID>> EntityClass<TargetID, Target>.optionalReferrersOn(
709709
table: IdTable<*>,
710710
cache: Boolean = false
711-
): OptionalReferrers<ID, Entity<ID>, TargetID, Target, Any> {
711+
): Referrers<ID, Entity<ID>, TargetID, Target, Any?> {
712712
val tableFK = this@EntityClass.getCompositeForeignKey(table)
713713
val delegate = tableFK.from.first() as Column<Any?>
714-
return registerRefRule(delegate) { OptionalReferrers(delegate, this, cache, tableFK.references) }
714+
return registerRefRule(delegate) { Referrers(delegate, this, cache, tableFK.references) }
715715
}
716716

717717
/**

exposed-dao/src/main/kotlin/org/jetbrains/exposed/dao/References.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class OptionalBackReference<ParentID : Any, out Parent : Entity<ParentID>, Child
8484
factory: EntityClass<ParentID, Parent>,
8585
references: Map<Column<*>, Column<*>>? = null
8686
) : ReadOnlyProperty<Child, Parent?> {
87-
internal val delegate = OptionalReferrers<ChildID, Child, ParentID, Parent, REF>(reference, factory, true, references)
87+
internal val delegate = Referrers<ChildID, Child, ParentID, Parent, REF?>(reference, factory, true, references)
8888

8989
override operator fun getValue(thisRef: Child, property: KProperty<*>) =
9090
delegate.getValue(thisRef.apply { thisRef.id.value }, property).singleOrNull() // flush entity before to don't miss newly created entities
@@ -190,7 +190,7 @@ open class Referrers<ParentID : Any, in Parent : Entity<ParentID>, ChildID : Any
190190
@Deprecated(
191191
message = "The OptionalReferrers class is a complete duplicate of the Referrers class; therefore, the latter should be used instead.",
192192
replaceWith = ReplaceWith("Referrers"),
193-
level = DeprecationLevel.WARNING
193+
level = DeprecationLevel.ERROR
194194
)
195195
class OptionalReferrers<ParentID : Any, in Parent : Entity<ParentID>, ChildID : Any, out Child : Entity<ChildID>, REF>(
196196
reference: Column<REF?>,
@@ -345,7 +345,7 @@ private fun <ID : Any> List<Entity<ID>>.preloadRelations(
345345
}
346346
}
347347
is OptionalBackReference<*, *, *, *, *> -> {
348-
(refObject.delegate as OptionalReferrers<ID, Entity<ID>, *, Entity<*>, Any>).allReferences.let { refColumns ->
348+
(refObject.delegate as Referrers<ID, Entity<ID>, *, Entity<*>, Any?>).allReferences.let { refColumns ->
349349
val delegateRefColumn = refObject.delegate.reference
350350
if (hasSingleReferenceWithReferee(refColumns)) {
351351
val refIds = this.map { it.run { delegateRefColumn.referee<Any>()!!.lookup() } }

0 commit comments

Comments
 (0)