1 /*
2 * Copyright 2004 Carlos Sanchez.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package net.sf.oness.common.model.temporal;
17
18 import java.util.ArrayList;
19 import java.util.Calendar;
20 import java.util.Collection;
21 import java.util.Collections;
22 import java.util.Comparator;
23 import java.util.Iterator;
24
25 import org.apache.commons.beanutils.BeanComparator;
26
27 /***
28 * @author Carlos Sanchez
29 * @version $Revision: 1.3 $
30 */
31 public class TemporalValueUtil {
32
33 private static final int START_DATE = 0, END_DATE = 1;
34
35 // public static Collection update(
36 // TemporalValue old,
37 // TemporalValue updated,
38 // Collection values)
39 // throws NonContinuousDataException {
40 //
41 // if ((old.getTransactionTime().getEnd() == null)
42 // && (updated.getTransactionTime().getEnd() != null))
43 // throw new NonContinuousDataException();
44 //
45 // if ((old.getTransactionTime().getStart() == null)
46 // && (updated.getTransactionTime().getStart() != null))
47 // throw new NonContinuousDataException();
48 //
49 // /* 1 Delete objects whose startDate is between the old and the updated startDate */
50 // if ((old.getTransactionTime().getStart() != null)
51 // && (updated.getTransactionTime().getStart() != null)) {
52 // deleteBetween(
53 // old.getTransactionTime().getStart(),
54 // updated.getTransactionTime().getStart(),
55 // values,
56 // START_DATE);
57 // TemporalValue previous =
58 // (TemporalValue) Collections.max(values, getStartComparator());
59 // previous.getTransactionTime().setEnd(
60 // updated.getTransactionTime().getStart());
61 // }
62 //
63 // /* 3 Delete objects whose endDate is between the old and the updated endDate */
64 // if ((old.getTransactionTime().getStart() != null)
65 // && (updated.getTransactionTime().getStart() != null)) {
66 // deleteBetween(
67 // old.getTransactionTime().getEnd(),
68 // updated.getTransactionTime().getEnd(),
69 // values,
70 // END_DATE);
71 // TemporalValue next =
72 // (TemporalValue) Collections.max(values, getEndComparator());
73 // next.getTransactionTime().setStart(
74 // updated.getTransactionTime().getEnd());
75 // }
76 //
77 // return values;
78 // }
79 //
80 // public static Collection deleteBetween(
81 // Date c1,
82 // Date c2,
83 // Collection values,
84 // int type) {
85 // Date first, last;
86 //
87 // if (c1.after(c2)) {
88 // first = c2;
89 // last = c1;
90 // } else {
91 // first = c1;
92 // last = c2;
93 // }
94 //
95 // Collection c = new ArrayList();
96 // Iterator iter = values.iterator();
97 // while (iter.hasNext()) {
98 // TemporalValue element = (TemporalValue) iter.next();
99 // if (type == START_DATE) {
100 // if ((element.getTransactionTime().getStart().after(first))
101 // && (element.getTransactionTime().getStart().before(last))) {
102 // element.getTransactionTime().setEnd(
103 // new Date(Calendar.getInstance()));
104 // c.add(element);
105 // }
106 // } else if (type == END_DATE) {
107 // if ((element.getTransactionTime().getEnd().after(first))
108 // && (element.getTransactionTime().getEnd().before(last))) {
109 // element.getTransactionTime().setEnd(
110 // new Date(Calendar.getInstance()));
111 // c.add(element);
112 // }
113 // }
114 // }
115 // return c;
116 // }
117 //
118 // public static Comparator getStartComparator() {
119 // return new BeanComparator("start.time");
120 // }
121 //
122 // public static Comparator getEndComparator() {
123 // return new BeanComparator("end.time");
124 // }
125
126 }