Hexworks / zircon

Zircon is an extensible and user-friendly, multiplatform tile engine.
https://hexworks.org/projects/zircon/
Apache License 2.0
753 stars 137 forks source link

Harmonize mutable and accessor mixin names. #344

Closed adam-arold closed 3 years ago

adam-arold commented 3 years ago

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>

}

The obsolete interfaces should be deprecated.