1    /*
2     * Copyright 2009 :torweg free software group
3     *
4     * This program is free software: you can redistribute it and/or modify
5     * it under the terms of the GNU General Public License as published by
6     * the Free Software Foundation, either version 3 of the License, or
7     * (at your option) any later version.
8     * 
9     * This program is distributed in the hope that it will be useful,
10    * but WITHOUT ANY WARRANTY; without even the implied warranty of
11    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    * GNU General Public License for more details.
13    * 
14    * You should have received a copy of the GNU General Public License
15    * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16    *
17    */
18   package org.torweg.pulse.component.statistics.aggregator;
19   
20   import org.hibernate.Session;
21   import org.torweg.pulse.component.statistics.model.Visit;
22   
23   /**
24    * Abstract base-class to derive an aggregation for the
25    * {@code DataAggregationJoblet} from.
26    * 
27    * @author Daniel Dietz
28    * @version $Revision: 1541 $
29    */
30   public abstract class AbstractBaseAggregator {
31   
32       /**
33        * Processes and aggregates the passed {@code Visit}s.
34        * <p>
35        * <strong>NOTE:</strong><br/>
36        * This method is wrapped by an {@code org.hibernate.Transaction} which
37        * is being opened before and committed afterwards for each passed
38        * {@code Visit} in the calling {@code DataAggregationJoblet}.
39        * </p>
40        * 
41        * @param visit
42        *            the {@code Visit} to be processed
43        * @param s
44        *            the current hibernate<sup>TM</sup>-{@code Session}
45        */
46       public abstract void aggregate(Visit visit, Session s);
47   
48   }
49