Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 157 → Rev 158

/impl/src/java/pt/estgp/estgweb/services/urlstat/UrlStatService.java
24,24 → 24,25
 
/**
* Saves a group of clicks in database
* @param map with link clicks
* @param year of group
*
* @param map with link clicks
* @param year of group
* @param month of group
* @param day of group
* @param day of group
* @throws ServiceException on error
*/
public void run(HashMap<String, UrlStatFilter.IntegerContainer> map, Integer year, Integer month, Integer day) throws ServiceException
{
if(map.size() == 0)
if (map.size() == 0)
return;
Set<Map.Entry<String,UrlStatFilter.IntegerContainer>> set = map.entrySet();
for(Map.Entry<String,UrlStatFilter.IntegerContainer> entry: set)
Set<Map.Entry<String, UrlStatFilter.IntegerContainer>> set = map.entrySet();
for (Map.Entry<String, UrlStatFilter.IntegerContainer> entry : set)
{
String relativePath = entry.getKey();
UrlStatFilter.IntegerContainer ic = entry.getValue();
 
UrlStatImpl urlStat = (UrlStatImpl) DaoFactory.getUrlStatDaoImpl().loadOrNullLockUpgrade(relativePath);
if(urlStat == null)
if (urlStat == null)
{
logger.info("url:" + relativePath + " does not exist... creating");
urlStat = DomainObjectFactory.createUrlStatImpl();
50,9 → 51,11
DaoFactory.getUrlStatDaoImpl().save(urlStat);
}
 
UrlStatYearId urlStatYearId = new UrlStatYearId(year,urlStat);
UrlStatYearId urlStatYearId = new UrlStatYearId();
urlStatYearId.setUrlStat(urlStat);
urlStatYearId.setYear(year);
UrlStatYearImpl urlStatYear = (UrlStatYearImpl) DaoFactory.getUrlStatYearDaoImpl().loadOrNullLockUpgrade(urlStatYearId);
if(urlStatYear == null)
if (urlStatYear == null)
{
logger.info("url:" + relativePath + " first year call does not exist... creating");
urlStatYear = DomainObjectFactory.createUrlStatYearImpl();
62,25 → 65,33
DaoFactory.getUrlStatDaoImpl().reattach(urlStat);
}
 
UrlStatMonthId urlStatMonthId = new UrlStatMonthId(month,urlStatYear);
UrlStatMonthId urlStatMonthId = new UrlStatMonthId();
urlStatMonthId.setMonth(month);
urlStatMonthId.setUrlStatYear(urlStatYear);
UrlStatMonthImpl urlStatMonth = (UrlStatMonthImpl) DaoFactory.getUrlStatMonthDaoImpl().loadOrNullLockUpgrade(urlStatMonthId);
if(urlStatMonth == null)
if (urlStatMonth == null)
{
logger.info("url:" + relativePath + " first month call does not exist... creating");
urlStatMonth = DomainObjectFactory.createUrlStatMonthImpl();
urlStatMonth.setId(urlStatMonthId);
urlStatMonth.setDate(new MyCalendar(year,month,1).getTime());
urlStatMonth.setDate(new MyCalendar(year, month, 1).getTime());
urlStatYear.addMonth(urlStatMonth);
DaoFactory.getUrlStatMonthDaoImpl().save(urlStatMonth);
DaoFactory.getUrlStatYearDaoImpl().reattach(urlStatYear);
}
UrlStatDayImpl urlStatDay = (UrlStatDayImpl) DaoFactory.getUrlStatDayDaoImpl().loadOrNullLockUpgrade(new UrlStatDayId(day, urlStatMonth));
if(urlStatDay == null)
UrlStatDayId urlStatDayId = new UrlStatDayId();
urlStatDayId.setDay(day);
urlStatDayId.setUrlStatMonth(urlStatMonth);
UrlStatDayImpl urlStatDay = (UrlStatDayImpl) DaoFactory.getUrlStatDayDaoImpl().loadOrNullLockUpgrade(urlStatDayId);
if (urlStatDay == null)
{
logger.info("url:" + relativePath + " first day call does not exist... creating");
urlStatDay = DomainObjectFactory.createUrlStatDayImpl();
urlStatDay.setId(new UrlStatDayId(day,urlStatMonth));
urlStatDay.setDate(new MyCalendar(year,month,day).getTime());
UrlStatDayId urlStatDayId2 = new UrlStatDayId();
urlStatDayId2.setDay(day);
urlStatDayId2.setUrlStatMonth(urlStatMonth);
urlStatDay.setId(urlStatDayId2);
urlStatDay.setDate(new MyCalendar(year, month, day).getTime());
urlStatMonth.addDay(urlStatDay);
DaoFactory.getUrlStatDayDaoImpl().save(urlStatDay);
}
94,36 → 105,37
 
/**
* Simple method to create links clicks from year 2003 until now
*
* @param args --
* @throws ServiceException --
*/
public static void main(String[] args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
HashMap<String,UrlStatFilter.IntegerContainer> map = new HashMap<String,UrlStatFilter.IntegerContainer>();
HashMap<String, UrlStatFilter.IntegerContainer> map = new HashMap<String, UrlStatFilter.IntegerContainer>();
UrlStatFilter.IntegerContainer ic = new UrlStatFilter.IntegerContainer(3);
map.put("/proxy/layout4/estgp/escola/EstruturaOrganizativa/CCientifico.asp",ic);
map.put("/proxy/layout4/estgp/escola/EstruturaOrganizativa/CCientifico.asp", ic);
MyCalendar now = new MyCalendar();
MyCalendar c = new MyCalendar(2003,1,1,11,11,11);
MyCalendar c = new MyCalendar(2003, 1, 1, 11, 11, 11);
Random r = new Random(now.getTimeInMillis());
UrlStatService service = new UrlStatService();
int commit = 0;
do
{
ic.setI(r.nextInt(200));
service.run(map,c.getYear(),c.getMonth(),c.getDay());
service.run(map, c.getYear(), c.getMonth(), c.getDay());
c.setTimeInMillis(c.getTimeInMillis() + (24 * 60 * 60 * 1000));
 
if(commit++ > 100)
if (commit++ > 100)
{
commit = 0;
AbstractDao.getCurrentSession().getTransaction().commit();
AbstractDao.getCurrentSession().beginTransaction();
}
}
while(!(c.getYear() == now.getYear() && c.getMonth() == now.getMonth() && c.getDay() == now.getDay()));
while (!(c.getYear() == now.getYear() && c.getMonth() == now.getMonth() && c.getDay() == now.getDay()));
ic.setI(r.nextInt(200));
service.run(map,c.getYear(),c.getMonth(),c.getDay());
service.run(map, c.getYear(), c.getMonth(), c.getDay());
c.setTimeInMillis(c.getTimeInMillis() + (24 * 60 * 60 * 1000));
AbstractDao.getCurrentSession().getTransaction().commit();
}