All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.unsecurity.hlinx.SimpleLinx.scala Maven / Gradle / Ivy

There is a newer version: 2.0-M15
Show newest version
package io.unsecurity.hlinx

// TODO move overlaps functionality into this
// TODO good error messages when overlapping
// TODO wrapper class instead of List
sealed trait SimpleLinx extends Ordered[SimpleLinx] {
  override def compare(that: SimpleLinx): Int =
    (this, that) match {
      case (a: SimpleStatic, b: SimpleStatic)     => a.segment.compare(b.segment)
      case (a: SimpleStatic, b: SimpleVariable)   => -1
      case (a: SimpleVariable, b: SimpleStatic)   => 1
      case (a: SimpleVariable, b: SimpleVariable) => a.name.compare(b.name)
    }
}
case class SimpleStatic(segment: String) extends SimpleLinx {
  override def toString: String = segment
}
case class SimpleVariable(name: String) extends SimpleLinx {
  override def toString: String = s"{$name}"
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy