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

lspace.structure.IriResource.scala Maven / Gradle / Ivy

package lspace.structure

import lspace.datatype.IriType
import lspace.structure.util.ClassTypeable

trait IriResource {

  /**
    * An empty uri means that there is no URI assigned.
    * @return
    */
  def iri: String

  /**
    * @id is a IRI/URI identifier
    * @return a String which is empty if no @id is assigned, TODO: should this be an Option[String]?
    */
  def `@id` = iri

  override def equals(o: scala.Any): Boolean = o match {
    case resource: IriResource =>
      resource.iri == iri
    case _ => false
  }
}

object IriResource {
  def apply(_iri: String): IriResource = new IriResource {
    val iri: String = _iri
  }

  implicit def default: ClassTypeable.Aux[IriResource, IriResource, IriType[IriResource]] =
    new ClassTypeable[IriResource] {
      type C  = IriResource
      type CT = IriType[IriResource]
      def ct: CT = IriType[IriResource]
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy