Rename agreement snapshot stuff. Agreement history utilities
authorChristos KK Loverdos <loverdos@gmail.com>
Thu, 24 May 2012 10:37:55 +0000 (13:37 +0300)
committerChristos KK Loverdos <loverdos@gmail.com>
Thu, 24 May 2012 10:40:09 +0000 (13:40 +0300)
src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistory.scala [moved from src/main/scala/gr/grnet/aquarium/computation/data/AgreementsSnapshot.scala with 88% similarity]
src/main/scala/gr/grnet/aquarium/computation/data/AgreementHistoryItem.scala [moved from src/main/scala/gr/grnet/aquarium/computation/data/AgreementSnapshot.scala with 94% similarity]

@@ -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 <loverdos@gmail.com>
  */
 
-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)
+  }
+}
@@ -45,13 +45,13 @@ import gr.grnet.aquarium.logic.accounting.dsl.Timeslot
  *
  * @author Christos KK Loverdos <loverdos@gmail.com>
  */
-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))
 }