algorithm : DSLAlgorithm,
pricelist : DSLPriceList,
creditplan: DSLCreditPlan
-) extends DSLItem
+) extends DSLItem {
+
+ override def toMap(): Map[String, Any] = {
+ val parent = overrides match {
+ case Some(x) => Map(Vocabulary.overrides -> x.name)
+ case _ => Map()
+ }
+
+ parent ++
+ Map(Vocabulary.name -> name) ++
+ Map(Vocabulary.algorithm -> algorithm.name) ++
+ Map(Vocabulary.pricelist -> pricelist.name) ++
+ Map(Vocabulary.creditplan -> creditplan.name)
+ }
+}
object DSLAgreement {
val emptyAgreement = DSLAgreement("", None, DSLAlgorithm.emptyAlgorithm,
override val effective: DSLTimeFrame
) extends DSLTimeBoundedItem[DSLAlgorithm](name, overrides, effective) {
+ override def toMap() =
+ super.toMap ++ algorithms.map(x => (x._1.name, x._2))
}
object DSLAlgorithm {
val emptyAlgorithm = DSLAlgorithm("", None, Map(), DSLTimeFrame.emptyTimeFrame)
}
-
override val effective: DSLTimeFrame
) extends DSLTimeBoundedItem[DSLCreditPlan](name, overrides, effective) {
- override def toMap(): Map[String, Any] = {
- val data = new scala.collection.mutable.HashMap[String, Any]()
-
- data ++= super.toMap
- data += (Vocabulary.credits -> credits)
- data += (Vocabulary.at -> atCron)
-
- data.toMap
- }
+ override def toMap(): Map[String, Any] =
+ super.toMap ++ Map(Vocabulary.credits -> credits) ++ Map(Vocabulary.at -> atCron)
}
object DSLCreditPlan {
- val emptyCreditPlan = DSLCreditPlan("", None, 0,
- List(DSLTimeSpec.emtpyTimeSpec), "", DSLTimeFrame.emptyTimeFrame)
+ val emptyCreditPlan = DSLCreditPlan("", None, 0, List(), "", DSLTimeFrame.emptyTimeFrame)
}
\ No newline at end of file
def findAgreement(name: String): Option[DSLAgreement] = {
agreements.find(a => a.name.equals(name))
}
+
+ override def toMap() =
+ Map(Vocabulary.algorithms -> algorithms.map{a => a.toYAML}) ++
+ Map(Vocabulary.pricelists -> pricelists.map{p => p.toYAML}) ++
+ Map(Vocabulary.resources -> resources.map{r => r.toYAML}) ++
+ Map(Vocabulary.creditplans -> creditplans.map{c => c.toYAML}) ++
+ Map(Vocabulary.agreements -> agreements.map{a => a.toYAML})
}
object DSLPolicy {
override val effective: DSLTimeFrame
) extends DSLTimeBoundedItem[DSLPriceList](name, overrides, effective) {
- override def toMap(): Map[String, Any] = {
- val data = new scala.collection.mutable.HashMap[String, Any]()
-
- data ++= super.toMap
-
- prices.keys.foreach{x => data += (x.name -> prices.get(x))}
-
- data.toMap
- }
+ override def toMap(): Map[String, Any] =
+ super.toMap ++ prices.map{x => (x._1.name -> x._2)}
}
object DSLPriceList {
package gr.grnet.aquarium.logic.accounting.dsl
-import gr.grnet.aquarium.util.yaml.{YAMLNode}
-
-
/**
* Represents a chargable resource.
*
val costpolicy: DSLCostPolicy
) extends DSLItem {
def isComplex: Boolean
+
+ override def toMap(): Map[String, Any] =
+ Map(Vocabulary.name -> name) ++
+ Map(Vocabulary.unit -> unit) ++
+ Map(Vocabulary.costpolicy -> costpolicy.name)
}
/**
descriminatorField: String
) extends DSLResource(name, unit, costpolicy) {
override def isComplex = true
+
+ override def toMap(): Map[String, Any] =
+ super.toMap ++ Map(Vocabulary.descriminatorfield -> descriminatorField)
}
/**