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

org.scalarules.dsl.nl.finance.termijnen.scala Maven / Gradle / Ivy

The newest version!
package org.scalarules.dsl.nl.finance

/** Mogelijke periodes om te gebruiken met [[Per]]. */
sealed trait Termijn extends Periode

// scalastyle:off magic.number

/** Representeert een termijn van 1 maand. */
class Maand private[finance] () extends Periode(1) with Termijn {
  override def toString = "maand"
}

/** Representeert een termijn van 3 maanden. */
class Kwartaal private[finance] () extends Periode(3) with Termijn {
  override def toString = "kwartaal"
}

/** Representeert een termijn van 6 maanden. */
class Halfjaar private[finance] () extends Periode(6) with Termijn {
  override def toString = "halfjaar"
}

/** Representeert een termijn van 12 maanden / 1 jaar. */
class Jaar private[finance] () extends Periode(12) with Termijn {
  override def toString = "jaar"
}

// scalastyle:on magic.number

object Termijn {
  /*
   * These instances must be val instead of object. If they're objects, their type will become 'Jaar.type'
   * instead of 'Jaar', and then Per needs to become covariant, which we don't want.
   */

  /** Singleton Termijn-instantie van 1 maand. */
  val Maand = new Maand
  /** Singleton Termijn-instantie van 3 maanden. */
  val Kwartaal = new Kwartaal
  /** Singleton Termijn-instantie van 6 maanden. */
  val Halfjaar = new Halfjaar
  /** Singleton Termijn-instantie van 12 maanden / 1 jaar. */
  val Jaar = new Jaar
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy