Fix a compilation error (did not implement a MemStore method)
[aquarium] / src / main / scala / gr / grnet / aquarium / logic / accounting / dsl / DSLTimeFrameRepeat.scala
1 /*
2  * Copyright 2011-2012 GRNET S.A. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or
5  * without modification, are permitted provided that the following
6  * conditions are met:
7  *
8  *   1. Redistributions of source code must retain the above
9  *      copyright notice, this list of conditions and the following
10  *      disclaimer.
11  *
12  *   2. Redistributions in binary form must reproduce the above
13  *      copyright notice, this list of conditions and the following
14  *      disclaimer in the documentation and/or other materials
15  *      provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  *
30  * The views and conclusions contained in the software and
31  * documentation are those of the authors and should not be
32  * interpreted as representing official policies, either expressed
33  * or implied, of GRNET S.A.
34  */
35
36 package gr.grnet.aquarium.logic.accounting.dsl
37
38 import org.quartz.CronExpression
39 import java.util.Date
40
41 /**
42  * Encapsulates a repeating item
43  *
44  * @author Georgios Gousios <gousiosg@gmail.com>
45  */
46 case class DSLTimeFrameRepeat (
47 //  start: List[DSLTimeSpec],
48 //  end: List[DSLTimeSpec],
49   startCron: String,
50   endCron: String
51 ) {
52
53 //  private def makeCronExpression(s: String) : CronExpression  = {
54 //    val e = "0 " + s.trim
55 //    val l = e.split(" ")
56 //    (l(3),l(5))  match {
57 //      case ("?",_) | (_,"?") => ()
58 //      case (_,"*") => l.update(5,"?")
59 //      case ("*",_) => l.update(3,"?")
60 //    }
61 //    val e1 = l.foldLeft("") { (s,elt) => s + " " + elt}
62 //    new CronExpression(e1)
63 //  }
64   val getStart = DSLCronSpec(startCron)
65   val getEnd =  DSLCronSpec(endCron)
66
67 //  assert(start.size == end.size,
68 //    ("start (%s) and end (%s) cron-like specs do not expand to equal" +
69 //      " number of repetition definitions").format(startCron, endCron))
70 //
71 //  //Ensures that fields that have repeating entries, do so in both patterns
72 //  start.zip(end).foreach {
73 //    x =>
74 //      assert((x._1.dom == -1 && x._2.dom == -1) ||
75 //        (x._1.dom != -1 && x._2.dom != -1))
76 //
77 //      assert((x._1.mon == -1 && x._2.mon == -1) ||
78 //        (x._1.mon != -1 && x._2.mon != -1))
79 //
80 //      assert((x._1.dow == -1 && x._2.dow == -1) ||
81 //        (x._1.dow != -1 && x._2.dow != -1))
82 //  }
83
84 }
85
86 object DSLTimeFrameRepeat {
87   val emptyTimeFramRepeat = DSLTimeFrameRepeat(/*List(), List(), */"", "")
88 }