/*
* Copyright 2009 Nabil BENOTHMAN <nabil.benothman@gmail.com>.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* under the License.
*
* This class is a part of uBike projet (HEIG-VD)
*/
package com.ubike.services.impl;
import com.ubike.services.UbikeTimerService;
import java.util.Calendar;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
/**
*
* @author Benothman
*/
@Stateless
public class UbikeTimerServiceImpl implements UbikeTimerService {
@Resource
private TimerService timerService;
/**
*
*/
public UbikeTimerServiceImpl() {
createTimers();
}
/* (non-Javadoc)
* @see com.ubike.services.UbikeTimerService#createTimers()
*/
public void createTimers() {
Calendar c = Calendar.getInstance();
//long day = 24 * 60 * 60 * 1000;
long day = 30 * 1000;
c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
timerService.createTimer(c.getTimeInMillis(), day, "DAILY");
c.set(Calendar.WEEK_OF_YEAR, c.get(Calendar.WEEK_OF_YEAR) + 1);
timerService.createTimer(c.getTimeInMillis(), day * 7, "WEEKLY");
c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);
c.set(Calendar.DAY_OF_MONTH, 1);
timerService.createTimer(c.getTimeInMillis(), day * 30, "MONTHLY");
c.set(Calendar.DAY_OF_MONTH, 1);
c.set(Calendar.MONTH, 1);
c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 1);
timerService.createTimer(c.getTimeInMillis(), day * 30 * 12, "YEARLY");
}
/* (non-Javadoc)
* @see com.ubike.services.UbikeTimerService#updateDailyStat(javax.ejb.Timer)
*/
@Timeout
public void updateDailyStat(Timer timer) {
String name = (String) timer.getInfo();
if (name.equals("DAILY")) {
// TODO
System.out.println("com.ubike.services.UbikeTimerServiceImpl#updateDailyStat(javax.ejb.Timer)");
}
}
/* (non-Javadoc)
* @see com.ubike.services.UbikeTimerService#updateWeeklyStat(javax.ejb.Timer)
*/
@Timeout
public void updateWeeklyStat(Timer timer) {
String name = (String) timer.getInfo();
if (name.equals("WEEKLY")) {
// TODO
}
}
/* (non-Javadoc)
* @see com.ubike.services.UbikeTimerService#updateMonthlyStat(javax.ejb.Timer)
*/
@Timeout
public void updateMonthlyStat(Timer timer) {
String name = (String) timer.getInfo();
if (name.equals("MONTHLY")) {
// TODO
}
}
/* (non-Javadoc)
* @see com.ubike.services.UbikeTimerService#updateYearlyStat(javax.ejb.Timer)
*/
@Timeout
public void updateYearlyStat(Timer timer) {
String name = (String) timer.getInfo();
if (name.equals("YEARLY")) {
// TODO
}
}
}