generated from SmartOperatingBlock/kotlin-template-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
57aa1f7
commit a508ec9
Showing
1 changed file
with
43 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/* | ||
* Copyright (c) 2023. Smart Operating Block | ||
* | ||
* Use of this source code is governed by an MIT-style | ||
* license that can be found in the LICENSE file or at | ||
* https://opensource.org/licenses/MIT. | ||
*/ | ||
|
||
package entity.zone | ||
|
||
/** | ||
* It describes a zone inside the Operating block. | ||
* Each zone is identified by an [id] and described | ||
* by a [name] and a [description]. | ||
*/ | ||
data class Zone( | ||
val id: ZoneID, | ||
val name: String, | ||
val description: String, | ||
) { | ||
init { | ||
require(this.name.isNotEmpty()) | ||
require(this.description.isNotEmpty()) | ||
} | ||
|
||
override fun equals(other: Any?): Boolean = when { | ||
other === this -> true | ||
other is Zone -> this.id == other.id | ||
else -> false | ||
} | ||
|
||
override fun hashCode(): Int = this.id.hashCode() | ||
} | ||
|
||
/** | ||
* It represents the Operating Block zone ID [value]. | ||
*/ | ||
data class ZoneID(val value: String) { | ||
init { | ||
// Constructor validation: the id must not be empty | ||
require(this.value.isNotEmpty()) | ||
} | ||
} |