Skip to content
Snippets Groups Projects
Labeller.kt 946 B
Newer Older
package unibz.cs.semint.kprime.domain.ddl

class Labeller: Labelled {

npedot's avatar
npedot committed
    private var labels : MutableList<Label>? = null

    override
    fun resetLabels(labelsAsString: String):String {
        if (labels==null) labels = mutableListOf()
npedot's avatar
npedot committed
        else labels?.clear()
        addLabels(labelsAsString)
        return labelsAsString()
    }

    override
    fun addLabels(labelsAsString: String):String {
        if (labels==null) labels = mutableListOf()
npedot's avatar
npedot committed
        labels?.addAll(labelsAsString.split(","))
        return labelsAsString()
    }

    override
    fun addLabels(newLabels: List<Label>): String {
        if (labels==null) labels = mutableListOf()
npedot's avatar
npedot committed
        labels?.addAll(newLabels)
        return labelsAsString()
    }

    override
    fun labelsAsString(): String {
        return labels?.joinToString(",")?: ""
    }

    override
    fun hasLabel(label:String):Boolean {
        return labelsAsString().contains(label)
    }
}