Previously we had things like TitleHolder and Themeable as mixin names. The problem is that there are two kinds in fact: one that only holds accessors and one that enables mutation of the underlying field. The new convention is that we'll use HasX to represent the accessor like HasText:
interface HasText {
val text: String
}
and XOverride to enable mutability like TextOverride:
interface TextOverride : HasText {
override var text: String
override val textProperty: Property<String>
}
Previously we had things like TitleHolder and Themeable as mixin names. The problem is that there are two kinds in fact: one that only holds accessors and one that enables mutation of the underlying field. The new convention is that we'll use
HasX
to represent the accessor likeHasText
:and
XOverride
to enable mutability likeTextOverride
:The obsolete interfaces should be deprecated.