From: Christos KK Loverdos Date: Thu, 24 May 2012 10:37:55 +0000 (+0300) Subject: Rename agreement snapshot stuff. Agreement history utilities X-Git-Url: https://code.grnet.gr/git/aquarium/commitdiff_plain/6c47e2db2f93495d6e6b7868eb2eeed57cf6b41c Rename agreement snapshot stuff. Agreement history utilities --- diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/AgreementsSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistory.scala similarity index 88% rename from src/main/scala/gr/grnet/aquarium/computation/data/AgreementsSnapshot.scala rename to src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistory.scala index a7c7860..18e1dd5 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/AgreementsSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistory.scala @@ -45,16 +45,13 @@ import scala.collection.immutable.{SortedMap, TreeMap} * User agreement data that will be part of UserState. * The provided list of agreements cannot have time gaps. This is checked at object creation type. * - * Note: This is copied from UserDataSnapshot.scala/AgreementSnapshot. - * TODO: Review - * * @author Christos KK Loverdos */ -case class AgreementsSnapshot(agreements: List[AgreementSnapshot]) { +case class AgreementHistory(agreements: List[AgreementHistoryItem]) { ensureNoGaps(agreements.sortWith((a,b) => if (b.validFrom > a.validFrom) true else false)) - def ensureNoGaps(agreements: List[AgreementSnapshot]): Unit = agreements match { + def ensureNoGaps(agreements: List[AgreementHistoryItem]): Unit = agreements match { case ha :: (t @ (hb :: tail)) => assert(ha.validTo - hb.validFrom == 1); ensureNoGaps(t) @@ -78,3 +75,11 @@ case class AgreementsSnapshot(agreements: List[AgreementSnapshot]) { } } } + +object AgreementHistory { + final val Empty = AgreementHistory(Nil) + + def initial(agreement: String, validFrom: Long): AgreementHistory ={ + AgreementHistory(AgreementHistoryItem(agreement, validFrom) :: Nil) + } +} diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/AgreementSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistoryItem.scala similarity index 94% rename from src/main/scala/gr/grnet/aquarium/computation/data/AgreementSnapshot.scala rename to src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistoryItem.scala index 19fa677..26c5815 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/AgreementSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistoryItem.scala @@ -45,13 +45,13 @@ import gr.grnet.aquarium.logic.accounting.dsl.Timeslot * * @author Christos KK Loverdos */ -case class AgreementSnapshot(name: String, validFrom: Long, validTo: Long = Long.MaxValue) { +case class AgreementHistoryItem(name: String, validFrom: Long, validTo: Long = Long.MaxValue) { require(validTo > validFrom) require(!name.isEmpty) def timeslot = Timeslot(validFrom, validTo) override def toString = - "AgreementSnapshot(%s, %s, %s)". + "AgreementHistoryItem(%s, %s, %s)". format(name, new MutableDateCalc(validFrom), new MutableDateCalc(validTo)) }