diff --git a/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Definition.kt b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Definition.kt index 6c071b5..0947c8f 100644 --- a/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Definition.kt +++ b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Definition.kt @@ -1,5 +1,6 @@ package fr.uca.iut.urbandictionarylight.model -data class Definition(val content: String, var upvotes: UInt = 0u, val example: String) { +data class Definition(val content: String, val example: String) { + var upvotes: UInt = 0u fun upvote() { upvotes++ } } \ No newline at end of file diff --git a/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Dictionary.kt b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Dictionary.kt new file mode 100644 index 0000000..b05b611 --- /dev/null +++ b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Dictionary.kt @@ -0,0 +1,41 @@ +package fr.uca.iut.urbandictionarylight.model + +class Dictionary { + private val entries: MutableSet = mutableSetOf() + + fun createEntry(entry: Entry) { + if (entry.phrase.isNotBlank() && entry.readAllDefinitions().isNotEmpty()) { + entries.add(entry) + } + } + + fun readEntry(id: Int): Entry { + // TODO implement once ORM is in place + return Entry(phrase = "womp womp -- WIP").also { e -> e.createDefinition(e.readDefinition(-1)) } + } + + fun readAllEntries() = entries.toSet() + + fun updateEntry(entry: Entry) { + // TODO implement once ORM is in place +// removeEntry(entry.id) + createEntry(entry) + } + + // TODO throw this away soon + fun updateEntry(old: Entry, new: Entry) { + deleteEntry(old) + createEntry(new) + } + + fun deleteEntry(entry: Entry) { + entries.remove(entry) + } + + fun deleteEntry(id: Int) { + // TODO implement once ORM is in place +// entries.removeIf { e -> id == e.id } + } + + // TODO ? redefine equals and hashset ? +} \ No newline at end of file diff --git a/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Entry.kt b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Entry.kt index dfbbd28..cf9f301 100644 --- a/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Entry.kt +++ b/app/src/main/java/fr/uca/iut/urbandictionarylight/model/Entry.kt @@ -56,4 +56,6 @@ class Entry(val phrase: String) { // TODO implement once ORM is in place // definitions.removeIf { def -> id == def.id } } + + // TODO redefine equals and hashset } \ No newline at end of file