From e3e3263af770f52c0c91c08138e11a0434e2be32 Mon Sep 17 00:00:00 2001 From: olegivo Date: Mon, 28 Oct 2019 11:44:59 +0300 Subject: [PATCH] made HabitData data class custom toString, equals and hashCode not need as data class already implements it (all properties involved as it was before), also removed dependency of EqualsBuilder and HashCodeBuilder default constructor made with default parameters copy-constructor replaced by data class .copy() --- .../org/isoron/uhabits/core/models/Habit.kt | 125 +++--------------- 1 file changed, 16 insertions(+), 109 deletions(-) diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.kt b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.kt index 380443924..38863f3fa 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.kt +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.kt @@ -19,8 +19,6 @@ package org.isoron.uhabits.core.models -import org.apache.commons.lang3.builder.EqualsBuilder -import org.apache.commons.lang3.builder.HashCodeBuilder import org.apache.commons.lang3.builder.ToStringBuilder import org.isoron.uhabits.core.models.Checkmark.UNCHECKED import org.isoron.uhabits.core.utils.StringUtils.defaultToStringStyle @@ -189,7 +187,7 @@ class Habit { } internal constructor(factory: ModelFactory, data: HabitData) { - this.data = HabitData(data) + this.data = data.copy() checkmarks = factory.buildCheckmarkList(this) streaks = factory.buildStreakList(this) scores = factory.buildScoreList(this) @@ -213,7 +211,7 @@ class Habit { */ @Synchronized fun copyFrom(model: Habit) { - this.data = HabitData(model.data) + this.data = model.data.copy() observable.notifyListeners() } @@ -239,117 +237,26 @@ class Habit { } fun getData(): HabitData { - return HabitData(data) + return data.copy() } fun setPosition(newPosition: Int) { data.position = newPosition } - class HabitData { - var name: String - - var description: String - - var frequency: Frequency - - var color: Int = 0 - - var archived: Boolean = false - - var targetType: Int = 0 - - var targetValue: Double = 0.toDouble() - - var type: Int = 0 - - var unit: String - - var reminder: Reminder? = null - - var position: Int = 0 - - constructor() { - this.color = 8 - this.archived = false - this.frequency = Frequency(3, 7) - this.type = YES_NO_HABIT - this.name = "" - this.description = "" - this.targetType = AT_LEAST - this.targetValue = 100.0 - this.unit = "" - this.position = 0 - } - - constructor(model: HabitData) { - this.name = model.name - this.description = model.description - this.frequency = model.frequency - this.color = model.color - this.archived = model.archived - this.targetType = model.targetType - this.targetValue = model.targetValue - this.type = model.type - this.unit = model.unit - this.reminder = model.reminder - this.position = model.position - } - - override fun toString(): String { - return ToStringBuilder(this, defaultToStringStyle()) - .append("name", name) - .append("description", description) - .append("frequency", frequency) - .append("color", color) - .append("archived", archived) - .append("targetType", targetType) - .append("targetValue", targetValue) - .append("type", type) - .append("unit", unit) - .append("reminder", reminder) - .append("position", position) - .toString() - } - - override fun equals(o: Any?): Boolean { - if (this === o) return true - - if (o == null || javaClass != o.javaClass) return false - - val habitData = o as HabitData? - - return EqualsBuilder() - .append(color, habitData!!.color) - .append(archived, habitData.archived) - .append(targetType, habitData.targetType) - .append(targetValue, habitData.targetValue) - .append(type, habitData.type) - .append(name, habitData.name) - .append(description, habitData.description) - .append(frequency, habitData.frequency) - .append(unit, habitData.unit) - .append(reminder, habitData.reminder) - .append(position, habitData.position) - .isEquals - } - - override fun hashCode(): Int { - return HashCodeBuilder(17, 37) - .append(name) - .append(description) - .append(frequency) - .append(color) - .append(archived) - .append(targetType) - .append(targetValue) - .append(type) - .append(unit) - .append(reminder) - .append(position) - .toHashCode() - } - } + data class HabitData( + var name: String = "", + var description: String = "", + var frequency: Frequency = Frequency(3, 7), + var color: Int = 8, + var archived: Boolean = false, + var targetType: Int = AT_LEAST, + var targetValue: Double = 100.0, + var type: Int = YES_NO_HABIT, + var unit: String = "", + var reminder: Reminder? = null, + var position: Int = 0 + ) override fun toString(): String { return ToStringBuilder(this, defaultToStringStyle())