Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 11 → Rev 12

/impl/conf/WEB-INF/web.xml
15,7 → 15,7
</filter>
<filter>
<filter-name>AdminFilter</filter-name>
<filter-class>pt.estgp.estgweb.web.filters.AdminFilter</filter-class>
<filter-class>pt.estgp.estgweb.web.filters.UrlStatFilter</filter-class>
</filter>
<filter>
<filter-name>Set-Character-Encoding</filter-name>
25,11 → 25,14
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>UrlStatFilter</filter-name>
<filter-class>pt.estgp.estgweb.web.filters.UrlStatFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Set-Character-Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
<filter-mapping>
<filter-name>UserSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
38,6 → 41,10
<filter-name>UserFilter</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UrlStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter-mapping>-->
<!--<filter-name>AdminFilter</filter-name>-->
<!--<url-pattern>/admin/*</url-pattern>-->
/impl/conf/app.properties
1,4 → 1,6
 
use.ldap=false
 
system.language=pt
#Session Settings
user.session.timeout.minutes=15
/impl/conf/berserk/sd.xml
1,126 → 1,129
<serviceDefinitions>
<!--Users-->
<service>
<name>Authenticate</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
<description>Authenticates a User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<name>Authenticate</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
<description>Authenticates a User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<service>
<name>Logout</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
<description>Logout a User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<name>Logout</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
<description>Logout a User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<service>
<name>CreateUser</name>
<implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
<description>Create an User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>CreateUser</name>
<implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
<description>Create an User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
</service>
<service>
<name>LoadUserSession</name>
<implementationClass>pt.estgp.estgweb.services.users.LoadUserSessionService</implementationClass>
<description>Load an User Session</description>
<isTransactional>true</isTransactional>
<name>LoadUserSession</name>
<implementationClass>pt.estgp.estgweb.services.users.LoadUserSessionService</implementationClass>
<description>Load an User Session</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<service>
<name>UpdateUserSession</name>
<implementationClass>pt.estgp.estgweb.services.users.UpdateUserSessionService</implementationClass>
<description>Load an User Session</description>
<isTransactional>true</isTransactional>
<name>UpdateUserSession</name>
<implementationClass>pt.estgp.estgweb.services.users.UpdateUserSessionService</implementationClass>
<description>Load an User Session</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
 
 
<!--URL Statistics-->
<service>
<name>UpdateUrlStatistics</name>
<implementationClass>pt.estgp.estgweb.services.urlstat.UrlStatService</implementationClass>
<description>Update URL clicks count</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
 
 
 
 
<!--Announcements-->
<service>
<name>CreateAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
<description>Create an Announcement</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>CreateAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
<description>Create an Announcement</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
 
 
 
 
 
 
 
 
</filterChains>
</service>
</service>
<service>
<name>EditAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.EditAnnouncementService</implementationClass>
<description>Edit an Announcement</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>EditAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.EditAnnouncementService</implementationClass>
<description>Edit an Announcement</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!--<chain name="Admins"/>-->
<chain name="OwnersEdit"/>
<!--<chain name="ContextObjectTimer"/>-->
<!--<chain name="ContextStaticTimerExample"/>-->
</filterChains>
</service>
</service>
<service>
<name>LoadAnnouncementView</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
<description>Load an Announcement view</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>LoadAnnouncementView</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
<description>Load an Announcement view</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!--<chain name="Admins"/>-->
<chain name="TargetRolesAnnouncement"/>
</filterChains>
</service>
</service>
<service>
<name>LoadEditAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
<description>Load an Announcement view</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>LoadEditAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
<description>Load an Announcement view</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!--<chain name="Admins"/>-->
<chain name="OwnersLoadAnnouncement"/>
</filterChains>
</service>
</service>
<service>
<name>LoadTargetMaxAnnouncements</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService</implementationClass>
<description>Load an Announcement views to show in list</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<name>LoadTargetMaxAnnouncements</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService</implementationClass>
<description>Load an Announcement views to show in list</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
</service>
 
</serviceDefinitions>
/impl/src/java/jomm/dao/impl/AbstractDao.java
2,13 → 2,14
 
 
import org.hibernate.*;
import org.hibernate.impl.CriteriaImpl;
import org.hibernate.criterion.CriteriaSpecification;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Order;
 
import java.io.Serializable;
import java.util.List;
import java.util.Collection;
import java.util.List;
import java.sql.SQLException;
 
import jomm.dao.IDomainObjectDao;
16,7 → 17,9
import jomm.dao.utils.HibernateUtils;
import pt.estgp.estgweb.domain.DomainObject;
 
import static org.hibernate.criterion.Restrictions.*;
 
 
/**
* This class will not be overwritten once it has been created. This is the
* superclass of all DAOs.
281,12 → 284,52
{
return (CLAZZ) getCurrentSession().load(getReferenceClass(), dbKey);
}
catch (HibernateException e) {
catch (HibernateException e)
{
throw new DaoException(e);
}
}
 
/**
* Used by the base DAO classes but here for your modification Load object
* matching the given key and return it.
*
* @SuppressWarnings("unchecked")
*/
public final CLAZZ loadOrNull(Serializable dbKey) {
try
{
return (CLAZZ) getCurrentSession().load(getReferenceClass(), dbKey);
}
catch (HibernateException e)
{
return null;
}
}
 
public CLAZZ loadOrNullLockUpgrade(Serializable dbKey)
{
return loadOrNullLockWrite("id",dbKey);
}
/**
* Used by the base DAO classes but here for your modification Load object
* matching the given key and return it.
*
* @SuppressWarnings("unchecked")
*/
public CLAZZ loadOrNullLockWrite(String field, Serializable dbKey)
{
try
{
return (CLAZZ) createCriteria().add(eq(field,dbKey)).setLockMode(LockMode.UPGRADE).uniqueResult();
}
catch (HibernateException e)
{
return null;
}
}
 
/**
* Remove this instance from the system cache.
*
* <P>Changes to the instance will not be synchronized with the database.
/impl/src/java/pt/estgp/estgweb/utils/ConfigProperties.java
47,6 → 47,17
return getInstance().getShort(property);
}
 
/**
* Get property and convert it to boolean
*
* @param property to get and convert
* @return float value
*/
public static boolean getBooleanProperty(String property)
{
return getInstance().getBoolean(property);
}
 
/**
* Get property and convert it to int
*
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
7,6 → 7,7
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import openldap.ILdapManager;
import openldap.LdapManagerFactory;
32,6 → 33,8
{
private static final Logger logger = Logger.getLogger(AuthenticateService.class);
 
private static final boolean USE_LDAP = ConfigProperties.getBooleanProperty("use.ldap");
 
ILdapManager ldapManager = LdapManagerFactory.getLdapManager();
 
public User run(String username, String password, UserSession userSession) throws ServiceException
39,7 → 42,9
if(userSession.getUser() != null)
throw new AuthenticateException(AuthenticateException.ALREADY_AUTHENTICATED);
 
boolean go = ldapManager.login(username,password);
boolean go = false;
if(USE_LDAP)
go = ldapManager.login(username,password);
 
User u = null;
if(!go)
/impl/src/java/pt/estgp/estgweb/services/urlstat/UrlStatService.java
New file
0,0 → 1,259
package pt.estgp.estgweb.services.urlstat;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.filters.UrlStatFilter;
import org.apache.log4j.Logger;
 
import java.util.HashMap;
import java.util.Set;
import java.util.Map;
import java.util.Date;
 
import jomm.dao.impl.AbstractDao;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class UrlStatService implements IService
{
private static final Logger logger = Logger.getLogger(UrlStatService.class);
 
public void run(HashMap<String, UrlStatFilter.IntegerContainer> map, Integer year, Integer month, Integer day) throws ServiceException
{
if(map.size() == 0)
return;
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;
 
urlStat = (UrlStatImpl) DaoFactory.getUrlStatDaoImpl().loadOrNullLockUpgrade(relativePath);
if(urlStat == null)
{
logger.info("url:" + relativePath + " does not exist... creating");
urlStat = DomainObjectFactory.createUrlStatImpl();
urlStat.setRelativePath(relativePath);
urlStat.setTotalClicks(ic.getCount());
urlStat.setStatus(false);
urlStat.setSaveDate(new Date());
DaoFactory.getUrlStatDaoImpl().save(urlStat);
}
 
UrlStatYear urlStatYear = DaoFactory.getUrlStatYearDaoImpl().loadOrNullLockUpgrade(new UrlStatYearId(year,urlStat));
if(urlStatYear == null)
{
urlStatYear = DomainObjectFactory.createUrlStatYearImpl();
urlStat.addYear(urlStatYear);
urlStatYear.setId(new UrlStatYearId(year,urlStat));
DaoFactory.getUrlStatYearDaoImpl().save(urlStatYear);
}
 
UrlStatMonth urlStatMonth = DaoFactory.getUrlStatMonthDaoImpl().loadOrNullLockUpgrade(new UrlStatMonthId(month,urlStatYear));
if(urlStatMonth == null)
{
urlStatMonth = DomainObjectFactory.createUrlStatMonthImpl();
urlStatMonth.setId(new UrlStatMonthId(month,urlStatYear));
setMonth(urlStatYear,urlStatMonth);
DaoFactory.getUrlStatMonthDaoImpl().save(urlStatMonth);
}
 
urlStatYear.setTotalClicks(urlStatYear.getTotalClicks() + ic.getCount());
urlStatMonth.setTotalClicks(urlStatMonth.getTotalClicks() + ic.getCount());
updateMonthClicks(urlStatYear,urlStatMonth);
updateDay(urlStatMonth,day,ic.getCount());
}
}
 
private void setMonth(UrlStatYear urlStatYear,UrlStatMonth urlStatMonth)
{
if(urlStatMonth.getId().getMonth() == 1)
{
urlStatYear.setMonth1(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 2)
{
urlStatYear.setMonth2(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 3)
{
urlStatYear.setMonth3(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 4)
{
urlStatYear.setMonth4(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 5)
{
urlStatYear.setMonth5(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 6)
{
urlStatYear.setMonth6(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 7)
{
urlStatYear.setMonth7(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 8)
{
urlStatYear.setMonth8(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 9)
{
urlStatYear.setMonth9(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 10)
{
urlStatYear.setMonth10(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 11)
{
urlStatYear.setMonth11(urlStatMonth);
}
else if(urlStatMonth.getId().getMonth() == 12)
{
urlStatYear.setMonth12(urlStatMonth);
}
}
private void updateMonthClicks(UrlStatYear urlStatYear, UrlStatMonth urlStatMonth)
{
if(urlStatMonth.getId().getMonth() == 1)
{
urlStatYear.setMonth1Clicks(urlStatYear.getMonth1Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 2)
{
urlStatYear.setMonth2Clicks(urlStatYear.getMonth2Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 3)
{
urlStatYear.setMonth3Clicks(urlStatYear.getMonth3Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 4)
{
urlStatYear.setMonth4Clicks(urlStatYear.getMonth4Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 5)
{
urlStatYear.setMonth5Clicks(urlStatYear.getMonth5Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 6)
{
urlStatYear.setMonth6Clicks(urlStatYear.getMonth6Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 7)
{
urlStatYear.setMonth7Clicks(urlStatYear.getMonth7Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 8)
{
urlStatYear.setMonth8Clicks(urlStatYear.getMonth8Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 9)
{
urlStatYear.setMonth9Clicks(urlStatYear.getMonth9Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 10)
{
urlStatYear.setMonth10Clicks(urlStatYear.getMonth10Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 11)
{
urlStatYear.setMonth11Clicks(urlStatYear.getMonth11Clicks() + urlStatMonth.getTotalClicks());
}
else if(urlStatMonth.getId().getMonth() == 12)
{
urlStatYear.setMonth12Clicks(urlStatYear.getMonth12Clicks() + urlStatMonth.getTotalClicks());
}
}
private void updateDay(UrlStatMonth urlStatMonth, int day, int clicks)
{
if(day == 1)
urlStatMonth.setDay1(urlStatMonth.getDay1() + clicks);
else if(day == 2)
urlStatMonth.setDay2(urlStatMonth.getDay2() + clicks);
else if(day == 3)
urlStatMonth.setDay3(urlStatMonth.getDay3() + clicks);
else if(day == 4)
urlStatMonth.setDay4(urlStatMonth.getDay4() + clicks);
else if(day == 5)
urlStatMonth.setDay5(urlStatMonth.getDay5() + clicks);
else if(day == 6)
urlStatMonth.setDay6(urlStatMonth.getDay6() + clicks);
else if(day == 7)
urlStatMonth.setDay7(urlStatMonth.getDay7() + clicks);
else if(day == 8)
urlStatMonth.setDay8(urlStatMonth.getDay8() + clicks);
else if(day == 9)
urlStatMonth.setDay9(urlStatMonth.getDay9() + clicks);
else if(day == 10)
urlStatMonth.setDay10(urlStatMonth.getDay10() + clicks);
else if(day == 11)
urlStatMonth.setDay11(urlStatMonth.getDay11() + clicks);
else if(day == 12)
urlStatMonth.setDay12(urlStatMonth.getDay12() + clicks);
else if(day == 13)
urlStatMonth.setDay13(urlStatMonth.getDay13() + clicks);
else if(day == 14)
urlStatMonth.setDay14(urlStatMonth.getDay14() + clicks);
else if(day == 15)
urlStatMonth.setDay15(urlStatMonth.getDay15() + clicks);
else if(day == 16)
urlStatMonth.setDay16(urlStatMonth.getDay16() + clicks);
else if(day == 17)
urlStatMonth.setDay17(urlStatMonth.getDay17() + clicks);
else if(day == 18)
urlStatMonth.setDay18(urlStatMonth.getDay18() + clicks);
else if(day == 19)
urlStatMonth.setDay19(urlStatMonth.getDay19() + clicks);
else if(day == 20)
urlStatMonth.setDay20(urlStatMonth.getDay20() + clicks);
else if(day == 21)
urlStatMonth.setDay21(urlStatMonth.getDay21() + clicks);
else if(day == 22)
urlStatMonth.setDay22(urlStatMonth.getDay22() + clicks);
else if(day == 23)
urlStatMonth.setDay23(urlStatMonth.getDay23() + clicks);
else if(day == 24)
urlStatMonth.setDay24(urlStatMonth.getDay24() + clicks);
else if(day == 25)
urlStatMonth.setDay25(urlStatMonth.getDay25() + clicks);
else if(day == 26)
urlStatMonth.setDay26(urlStatMonth.getDay26() + clicks);
else if(day == 27)
urlStatMonth.setDay27(urlStatMonth.getDay27() + clicks);
else if(day == 28)
urlStatMonth.setDay28(urlStatMonth.getDay28() + clicks);
else if(day == 29)
urlStatMonth.setDay29(urlStatMonth.getDay29() + clicks);
else if(day == 30)
urlStatMonth.setDay30(urlStatMonth.getDay30() + clicks);
else if(day == 31)
urlStatMonth.setDay31(urlStatMonth.getDay31() + clicks);
}
 
public static void main(String[] args) throws ServiceException {
AbstractDao.getCurrentSession().beginTransaction();
HashMap map = new HashMap();
map.put("/teste",new UrlStatFilter.IntegerContainer(3));
new UrlStatService().run(map,2008,3,14);
AbstractDao.getCurrentSession().getTransaction().commit();
}
}
/impl/src/java/pt/estgp/estgweb/domain/UrlStatYearImpl.java
New file
0,0 → 1,36
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 14/Mar/2008
* @time 9:50:32
* @see pt.estgp.estgweb.domain
*/
public class UrlStatYearImpl extends UrlStatYear
{
 
public UrlStatYearImpl()
{
setTotalClicks(0);
setMonth1Clicks(0);
setMonth2Clicks(0);
setMonth3Clicks(0);
setMonth4Clicks(0);
setMonth5Clicks(0);
setMonth6Clicks(0);
setMonth7Clicks(0);
setMonth8Clicks(0);
setMonth9Clicks(0);
setMonth10Clicks(0);
setMonth11Clicks(0);
setMonth12Clicks(0);
}
 
public Serializable getSerializable()
{
return getId();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/UrlStatImpl.java
New file
0,0 → 1,31
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
import java.util.HashSet;
 
/**
* @author Jorge Machado
* @date 14/Mar/2008
* @time 9:50:22
* @see pt.estgp.estgweb.domain
*/
public class UrlStatImpl extends UrlStat
{
 
public UrlStatImpl()
{
 
}
 
public Serializable getSerializable()
{
return getRelativePath();
}
public void addYear(UrlStatYear urlStatYear)
{
if(getYears() == null)
setYears(new HashSet<UrlStatYear>());
getYears().add(urlStatYear);
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDaoImpl.java
New file
0,0 → 1,25
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.User;
 
import java.util.List;
 
import org.hibernate.HibernateException;
import org.hibernate.criterion.Restrictions;
import jomm.dao.DaoException;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class UrlStatDaoImpl extends UrlStatDao
{
public static UrlStatDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new UrlStatDaoImpl();
return (UrlStatDaoImpl) myInstance;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearDaoImpl.java
New file
0,0 → 1,17
package pt.estgp.estgweb.domain.dao.impl;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class UrlStatYearDaoImpl extends UrlStatYearDao
{
public static UrlStatYearDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new UrlStatYearDaoImpl();
return (UrlStatYearDaoImpl) myInstance;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthDaoImpl.java
New file
0,0 → 1,17
package pt.estgp.estgweb.domain.dao.impl;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class UrlStatMonthDaoImpl extends UrlStatMonthDao
{
public static UrlStatMonthDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new UrlStatMonthDaoImpl();
return (UrlStatMonthDaoImpl) myInstance;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
44,4 → 44,19
{
return UserSessionDaoImpl.getInstance();
}
 
public static UrlStatDaoImpl getUrlStatDaoImpl()
{
return UrlStatDaoImpl.getInstance();
}
 
public static UrlStatYearDaoImpl getUrlStatYearDaoImpl()
{
return UrlStatYearDaoImpl.getInstance();
}
 
public static UrlStatMonthDaoImpl getUrlStatMonthDaoImpl()
{
return UrlStatMonthDaoImpl.getInstance();
}
}
/impl/src/java/pt/estgp/estgweb/domain/UrlStatMonthImpl.java
New file
0,0 → 1,54
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 14/Mar/2008
* @time 9:50:43
* @see pt.estgp.estgweb.domain
*/
public class UrlStatMonthImpl extends UrlStatMonth
{
public UrlStatMonthImpl()
{
setTotalClicks(0);
setDay1(0);
setDay2(0);
setDay3(0);
setDay4(0);
setDay5(0);
setDay6(0);
setDay7(0);
setDay8(0);
setDay9(0);
setDay10(0);
setDay11(0);
setDay12(0);
setDay13(0);
setDay14(0);
setDay15(0);
setDay16(0);
setDay17(0);
setDay18(0);
setDay19(0);
setDay20(0);
setDay21(0);
setDay22(0);
setDay23(0);
setDay24(0);
setDay25(0);
setDay26(0);
setDay27(0);
setDay28(0);
setDay29(0);
setDay30(0);
setDay31(0);
}
public Serializable getSerializable()
{
return getId();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
7,7 → 7,7
* @see pt.estgp.estgweb.domain
*/
public class DomainObjectFactory {
 
public static AnnouncementImpl createAnnouncementImpl()
{
return new AnnouncementImpl();
52,4 → 52,19
{
return new UserSessionImpl();
}
 
public static UrlStatImpl createUrlStatImpl()
{
return new UrlStatImpl();
}
 
public static UrlStatYearImpl createUrlStatYearImpl()
{
return new UrlStatYearImpl();
}
 
public static UrlStatMonthImpl createUrlStatMonthImpl()
{
return new UrlStatMonthImpl();
}
}
/impl/src/java/pt/estgp/estgweb/web/filters/UrlStatFilter.java
New file
0,0 → 1,159
package pt.estgp.estgweb.web.filters;
 
import org.apache.log4j.Logger;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Date;
import java.util.Calendar;
 
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
import jomm.utils.MyCalendar;
 
/**
*
* @author Jorge Machado
*/
 
public class UrlStatFilter implements Filter
{
 
private static Logger logger = Logger.getLogger(UrlStatFilter.class);
 
public static MyCalendar myCalendar = new MyCalendar();
public static int day = myCalendar.getDay();
public static int month = myCalendar.getMonth();
public static int year = myCalendar.getYear();
 
public static final int MAX_MAP_SYZE = 4;
 
public static final long SAVE_INTERVAL = 30 * 60 * 1000;
 
public static long lastUpdate = new Date().getTime();
 
public static HashMap<String, IntegerContainer> urlStat = new HashMap<String,IntegerContainer>();
 
public UrlStatFilter()
{
}
 
public void init(FilterConfig config)
{
 
}
 
/**
*
* @param request The servlet request we are processing
* @param chain The filter chain we are processing
*
* @exception java.io.IOException if an input/output error occurs
* @exception javax.servlet.ServletException if a servlet error occurs
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest hrequest = (HttpServletRequest) request;
MyCalendar c = new MyCalendar();
int nowDay = c.getDay();
if(nowDay != day || (c.getTimeInMillis() - lastUpdate > SAVE_INTERVAL))
{
try
{
updateStats(hrequest, c.getTimeInMillis());
}
catch (Throwable e)
{
logger.error(e,e);
((HttpServletResponse)response).sendError(500);
}
}
day = nowDay;
month = c.getMonth();
year = c.getYear();
 
String relativePath = hrequest.getPathInfo();
if(hrequest.getServletPath() != null)
{
relativePath += hrequest.getServletPath();
}
logger.info("accessing " + relativePath);
IntegerContainer count = urlStat.get(relativePath);
 
if(count == null)
{
try
{
createUrl(hrequest,c.getTimeInMillis(),relativePath);
}
catch (Throwable e)
{
logger.error(e,e);
((HttpServletResponse)response).sendError(500);
}
}
else
{
count.inc();
}
chain.doFilter(request,response);
}
 
public static synchronized void updateStats(HttpServletRequest request, long nowMiliseconds) throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException
{
lastUpdate = nowMiliseconds;
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{urlStat,year,month,day};
sm.execute(RequestUtils.getRequester(request),"UpdateUrlStatistics",args);
urlStat.clear();
urlStat = null;
urlStat = new HashMap<String,IntegerContainer>();
}
 
public static synchronized void createUrl(HttpServletRequest request, long nowMiliseconds, String relativePath) throws Throwable, ClassNotIFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException
{
if(urlStat.size() >= MAX_MAP_SYZE)
updateStats(request,nowMiliseconds);
urlStat.put(relativePath, new IntegerContainer(1));
}
 
public void destroy()
{
// Nothing
}
 
public static class IntegerContainer
{
int i;
 
public IntegerContainer(int i)
{
this.i = i;
}
 
public void inc()
{
i++;
}
 
public int getCount()
{
return i;
}
}
 
}
/impl/src/hbm/pt/estgp/estgweb/domain/UrlStat.hbm.xml
New file
0,0 → 1,26
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.UrlStat" table="urlstat" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="relativePath" type="string">
<generator class="assigned"/>
</id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="name" type="string"/>
<property name="description" type="text"/>
<property name="totalClicks" type="integer"/>
<property name="status" type="boolean"/>
<set name="years" order-by="year asc" lazy="true">
<key column="relativePathId"/>
<one-to-many class="pt.estgp.estgweb.domain.UrlStatYear"/>
</set>
<subclass name="pt.estgp.estgweb.domain.UrlStatImpl" discriminator-value="UrlStatImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/UrlStatYear.hbm.xml
New file
0,0 → 1,93
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.UrlStatYear" table="urlstatyear" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<composite-id name="id" class="pt.estgp.estgweb.domain.UrlStatYearId">
<meta attribute="scope-class">public</meta>
<key-property name="year" type="integer" column="year"/>
<key-many-to-one name="urlStat" class="pt.estgp.estgweb.domain.UrlStat" column="relativePathId"/>
</composite-id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="totalClicks" type="integer"/>
<property name="month1Clicks" type="integer"/>
<property name="month2Clicks" type="integer"/>
<property name="month3Clicks" type="integer"/>
<property name="month4Clicks" type="integer"/>
<property name="month5Clicks" type="integer"/>
<property name="month6Clicks" type="integer"/>
<property name="month7Clicks" type="integer"/>
<property name="month8Clicks" type="integer"/>
<property name="month9Clicks" type="integer"/>
<property name="month10Clicks" type="integer"/>
<property name="month11Clicks" type="integer"/>
<property name="month12Clicks" type="integer"/>
<many-to-one name="month1" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month1"/>
<column name="yearId1"/>
<column name="relativePathId1"/>
</many-to-one>
<many-to-one name="month2" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month2"/>
<column name="yearId2"/>
<column name="relativePathId2"/>
</many-to-one>
<many-to-one name="month3" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month3"/>
<column name="yearId3"/>
<column name="relativePathId3"/>
</many-to-one>
<many-to-one name="month4" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month4"/>
<column name="yearId4"/>
<column name="relativePathId4"/>
</many-to-one>
<many-to-one name="month5" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month5"/>
<column name="yearId5"/>
<column name="relativePathId5"/>
</many-to-one>
<many-to-one name="month6" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month6"/>
<column name="yearId6"/>
<column name="relativePathId6"/>
</many-to-one>
<many-to-one name="month7" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month7"/>
<column name="yearId7"/>
<column name="relativePathId7"/>
</many-to-one>
<many-to-one name="month8" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month8"/>
<column name="yearId8"/>
<column name="relativePathId8"/>
</many-to-one>
<many-to-one name="month9" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month9"/>
<column name="yearId9"/>
<column name="relativePathId9"/>
</many-to-one>
<many-to-one name="month10" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month10"/>
<column name="yearId10"/>
<column name="relativePathId10"/>
</many-to-one>
<many-to-one name="month11" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month11"/>
<column name="yearId11"/>
<column name="relativePathId11"/>
</many-to-one>
<many-to-one name="month12" class="pt.estgp.estgweb.domain.UrlStatMonth" outer-join="true">
<column name="month12"/>
<column name="yearId12"/>
<column name="relativePathId12"/>
</many-to-one>
<subclass name="pt.estgp.estgweb.domain.UrlStatYearImpl" discriminator-value="UrlStatYearImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/UrlStatMonth.hbm.xml
New file
0,0 → 1,56
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.UrlStatMonth" table="urlstatmonth" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<composite-id name="id" class="pt.estgp.estgweb.domain.UrlStatMonthId">
<meta attribute="scope-class">public</meta>
<key-property name="month" type="integer" column="month"/>
<key-many-to-one name="urlStatYear" class="pt.estgp.estgweb.domain.UrlStatYear">
<column name="yearId"/>
<column name="relativePathId"/>
</key-many-to-one>
</composite-id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="numberOfDays" type="integer"/>
<property name="totalClicks" type="integer"/>
<property name="day1" type="integer"/>
<property name="day2" type="integer"/>
<property name="day3" type="integer"/>
<property name="day4" type="integer"/>
<property name="day5" type="integer"/>
<property name="day6" type="integer"/>
<property name="day7" type="integer"/>
<property name="day8" type="integer"/>
<property name="day9" type="integer"/>
<property name="day10" type="integer"/>
<property name="day11" type="integer"/>
<property name="day12" type="integer"/>
<property name="day13" type="integer"/>
<property name="day14" type="integer"/>
<property name="day15" type="integer"/>
<property name="day16" type="integer"/>
<property name="day17" type="integer"/>
<property name="day18" type="integer"/>
<property name="day19" type="integer"/>
<property name="day20" type="integer"/>
<property name="day21" type="integer"/>
<property name="day22" type="integer"/>
<property name="day23" type="integer"/>
<property name="day24" type="integer"/>
<property name="day25" type="integer"/>
<property name="day26" type="integer"/>
<property name="day27" type="integer"/>
<property name="day28" type="integer"/>
<property name="day29" type="integer"/>
<property name="day30" type="integer"/>
<property name="day31" type="integer"/>
<subclass name="pt.estgp.estgweb.domain.UrlStatMonthImpl" discriminator-value="UrlStatMonthImpl"/>
</class>
</hibernate-mapping>
/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
New file
0,0 → 1,353
package pt.estgp.estgweb.domain;
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* UrlStatMonth generated by hbm2java
*/
public abstract class UrlStatMonth extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private UrlStatMonthId id;
private Date updateDate;
private Date saveDate;
private Integer numberOfDays;
private Integer totalClicks;
private Integer day1;
private Integer day2;
private Integer day3;
private Integer day4;
private Integer day5;
private Integer day6;
private Integer day7;
private Integer day8;
private Integer day9;
private Integer day10;
private Integer day11;
private Integer day12;
private Integer day13;
private Integer day14;
private Integer day15;
private Integer day16;
private Integer day17;
private Integer day18;
private Integer day19;
private Integer day20;
private Integer day21;
private Integer day22;
private Integer day23;
private Integer day24;
private Integer day25;
private Integer day26;
private Integer day27;
private Integer day28;
private Integer day29;
private Integer day30;
private Integer day31;
 
public UrlStatMonth() {
}
 
public UrlStatMonth(UrlStatMonthId id) {
this.id = id;
}
public UrlStatMonth(UrlStatMonthId id, Date saveDate, Integer numberOfDays, Integer totalClicks, Integer day1, Integer day2, Integer day3, Integer day4, Integer day5, Integer day6, Integer day7, Integer day8, Integer day9, Integer day10, Integer day11, Integer day12, Integer day13, Integer day14, Integer day15, Integer day16, Integer day17, Integer day18, Integer day19, Integer day20, Integer day21, Integer day22, Integer day23, Integer day24, Integer day25, Integer day26, Integer day27, Integer day28, Integer day29, Integer day30, Integer day31) {
this.id = id;
this.saveDate = saveDate;
this.numberOfDays = numberOfDays;
this.totalClicks = totalClicks;
this.day1 = day1;
this.day2 = day2;
this.day3 = day3;
this.day4 = day4;
this.day5 = day5;
this.day6 = day6;
this.day7 = day7;
this.day8 = day8;
this.day9 = day9;
this.day10 = day10;
this.day11 = day11;
this.day12 = day12;
this.day13 = day13;
this.day14 = day14;
this.day15 = day15;
this.day16 = day16;
this.day17 = day17;
this.day18 = day18;
this.day19 = day19;
this.day20 = day20;
this.day21 = day21;
this.day22 = day22;
this.day23 = day23;
this.day24 = day24;
this.day25 = day25;
this.day26 = day26;
this.day27 = day27;
this.day28 = day28;
this.day29 = day29;
this.day30 = day30;
this.day31 = day31;
}
public UrlStatMonthId getId() {
return this.id;
}
public void setId(UrlStatMonthId id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Integer getNumberOfDays() {
return this.numberOfDays;
}
public void setNumberOfDays(Integer numberOfDays) {
this.numberOfDays = numberOfDays;
}
public Integer getTotalClicks() {
return this.totalClicks;
}
public void setTotalClicks(Integer totalClicks) {
this.totalClicks = totalClicks;
}
public Integer getDay1() {
return this.day1;
}
public void setDay1(Integer day1) {
this.day1 = day1;
}
public Integer getDay2() {
return this.day2;
}
public void setDay2(Integer day2) {
this.day2 = day2;
}
public Integer getDay3() {
return this.day3;
}
public void setDay3(Integer day3) {
this.day3 = day3;
}
public Integer getDay4() {
return this.day4;
}
public void setDay4(Integer day4) {
this.day4 = day4;
}
public Integer getDay5() {
return this.day5;
}
public void setDay5(Integer day5) {
this.day5 = day5;
}
public Integer getDay6() {
return this.day6;
}
public void setDay6(Integer day6) {
this.day6 = day6;
}
public Integer getDay7() {
return this.day7;
}
public void setDay7(Integer day7) {
this.day7 = day7;
}
public Integer getDay8() {
return this.day8;
}
public void setDay8(Integer day8) {
this.day8 = day8;
}
public Integer getDay9() {
return this.day9;
}
public void setDay9(Integer day9) {
this.day9 = day9;
}
public Integer getDay10() {
return this.day10;
}
public void setDay10(Integer day10) {
this.day10 = day10;
}
public Integer getDay11() {
return this.day11;
}
public void setDay11(Integer day11) {
this.day11 = day11;
}
public Integer getDay12() {
return this.day12;
}
public void setDay12(Integer day12) {
this.day12 = day12;
}
public Integer getDay13() {
return this.day13;
}
public void setDay13(Integer day13) {
this.day13 = day13;
}
public Integer getDay14() {
return this.day14;
}
public void setDay14(Integer day14) {
this.day14 = day14;
}
public Integer getDay15() {
return this.day15;
}
public void setDay15(Integer day15) {
this.day15 = day15;
}
public Integer getDay16() {
return this.day16;
}
public void setDay16(Integer day16) {
this.day16 = day16;
}
public Integer getDay17() {
return this.day17;
}
public void setDay17(Integer day17) {
this.day17 = day17;
}
public Integer getDay18() {
return this.day18;
}
public void setDay18(Integer day18) {
this.day18 = day18;
}
public Integer getDay19() {
return this.day19;
}
public void setDay19(Integer day19) {
this.day19 = day19;
}
public Integer getDay20() {
return this.day20;
}
public void setDay20(Integer day20) {
this.day20 = day20;
}
public Integer getDay21() {
return this.day21;
}
public void setDay21(Integer day21) {
this.day21 = day21;
}
public Integer getDay22() {
return this.day22;
}
public void setDay22(Integer day22) {
this.day22 = day22;
}
public Integer getDay23() {
return this.day23;
}
public void setDay23(Integer day23) {
this.day23 = day23;
}
public Integer getDay24() {
return this.day24;
}
public void setDay24(Integer day24) {
this.day24 = day24;
}
public Integer getDay25() {
return this.day25;
}
public void setDay25(Integer day25) {
this.day25 = day25;
}
public Integer getDay26() {
return this.day26;
}
public void setDay26(Integer day26) {
this.day26 = day26;
}
public Integer getDay27() {
return this.day27;
}
public void setDay27(Integer day27) {
this.day27 = day27;
}
public Integer getDay28() {
return this.day28;
}
public void setDay28(Integer day28) {
this.day28 = day28;
}
public Integer getDay29() {
return this.day29;
}
public void setDay29(Integer day29) {
this.day29 = day29;
}
public Integer getDay30() {
return this.day30;
}
public void setDay30(Integer day30) {
this.day30 = day30;
}
public Integer getDay31() {
return this.day31;
}
public void setDay31(Integer day31) {
this.day31 = day31;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
New file
0,0 → 1,281
package pt.estgp.estgweb.domain;
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* UrlStatYear generated by hbm2java
*/
public abstract class UrlStatYear extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private UrlStatYearId id;
private Date updateDate;
private Date saveDate;
private Integer totalClicks;
private Integer month1Clicks;
private Integer month2Clicks;
private Integer month3Clicks;
private Integer month4Clicks;
private Integer month5Clicks;
private Integer month6Clicks;
private Integer month7Clicks;
private Integer month8Clicks;
private Integer month9Clicks;
private Integer month10Clicks;
private Integer month11Clicks;
private Integer month12Clicks;
private UrlStatMonth month1;
private UrlStatMonth month2;
private UrlStatMonth month3;
private UrlStatMonth month4;
private UrlStatMonth month5;
private UrlStatMonth month6;
private UrlStatMonth month7;
private UrlStatMonth month8;
private UrlStatMonth month9;
private UrlStatMonth month10;
private UrlStatMonth month11;
private UrlStatMonth month12;
 
public UrlStatYear() {
}
 
public UrlStatYear(UrlStatYearId id) {
this.id = id;
}
public UrlStatYear(UrlStatYearId id, Date saveDate, Integer totalClicks, Integer month1Clicks, Integer month2Clicks, Integer month3Clicks, Integer month4Clicks, Integer month5Clicks, Integer month6Clicks, Integer month7Clicks, Integer month8Clicks, Integer month9Clicks, Integer month10Clicks, Integer month11Clicks, Integer month12Clicks, UrlStatMonth month1, UrlStatMonth month2, UrlStatMonth month3, UrlStatMonth month4, UrlStatMonth month5, UrlStatMonth month6, UrlStatMonth month7, UrlStatMonth month8, UrlStatMonth month9, UrlStatMonth month10, UrlStatMonth month11, UrlStatMonth month12) {
this.id = id;
this.saveDate = saveDate;
this.totalClicks = totalClicks;
this.month1Clicks = month1Clicks;
this.month2Clicks = month2Clicks;
this.month3Clicks = month3Clicks;
this.month4Clicks = month4Clicks;
this.month5Clicks = month5Clicks;
this.month6Clicks = month6Clicks;
this.month7Clicks = month7Clicks;
this.month8Clicks = month8Clicks;
this.month9Clicks = month9Clicks;
this.month10Clicks = month10Clicks;
this.month11Clicks = month11Clicks;
this.month12Clicks = month12Clicks;
this.month1 = month1;
this.month2 = month2;
this.month3 = month3;
this.month4 = month4;
this.month5 = month5;
this.month6 = month6;
this.month7 = month7;
this.month8 = month8;
this.month9 = month9;
this.month10 = month10;
this.month11 = month11;
this.month12 = month12;
}
public UrlStatYearId getId() {
return this.id;
}
public void setId(UrlStatYearId id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Integer getTotalClicks() {
return this.totalClicks;
}
public void setTotalClicks(Integer totalClicks) {
this.totalClicks = totalClicks;
}
public Integer getMonth1Clicks() {
return this.month1Clicks;
}
public void setMonth1Clicks(Integer month1Clicks) {
this.month1Clicks = month1Clicks;
}
public Integer getMonth2Clicks() {
return this.month2Clicks;
}
public void setMonth2Clicks(Integer month2Clicks) {
this.month2Clicks = month2Clicks;
}
public Integer getMonth3Clicks() {
return this.month3Clicks;
}
public void setMonth3Clicks(Integer month3Clicks) {
this.month3Clicks = month3Clicks;
}
public Integer getMonth4Clicks() {
return this.month4Clicks;
}
public void setMonth4Clicks(Integer month4Clicks) {
this.month4Clicks = month4Clicks;
}
public Integer getMonth5Clicks() {
return this.month5Clicks;
}
public void setMonth5Clicks(Integer month5Clicks) {
this.month5Clicks = month5Clicks;
}
public Integer getMonth6Clicks() {
return this.month6Clicks;
}
public void setMonth6Clicks(Integer month6Clicks) {
this.month6Clicks = month6Clicks;
}
public Integer getMonth7Clicks() {
return this.month7Clicks;
}
public void setMonth7Clicks(Integer month7Clicks) {
this.month7Clicks = month7Clicks;
}
public Integer getMonth8Clicks() {
return this.month8Clicks;
}
public void setMonth8Clicks(Integer month8Clicks) {
this.month8Clicks = month8Clicks;
}
public Integer getMonth9Clicks() {
return this.month9Clicks;
}
public void setMonth9Clicks(Integer month9Clicks) {
this.month9Clicks = month9Clicks;
}
public Integer getMonth10Clicks() {
return this.month10Clicks;
}
public void setMonth10Clicks(Integer month10Clicks) {
this.month10Clicks = month10Clicks;
}
public Integer getMonth11Clicks() {
return this.month11Clicks;
}
public void setMonth11Clicks(Integer month11Clicks) {
this.month11Clicks = month11Clicks;
}
public Integer getMonth12Clicks() {
return this.month12Clicks;
}
public void setMonth12Clicks(Integer month12Clicks) {
this.month12Clicks = month12Clicks;
}
public UrlStatMonth getMonth1() {
return this.month1;
}
public void setMonth1(UrlStatMonth month1) {
this.month1 = month1;
}
public UrlStatMonth getMonth2() {
return this.month2;
}
public void setMonth2(UrlStatMonth month2) {
this.month2 = month2;
}
public UrlStatMonth getMonth3() {
return this.month3;
}
public void setMonth3(UrlStatMonth month3) {
this.month3 = month3;
}
public UrlStatMonth getMonth4() {
return this.month4;
}
public void setMonth4(UrlStatMonth month4) {
this.month4 = month4;
}
public UrlStatMonth getMonth5() {
return this.month5;
}
public void setMonth5(UrlStatMonth month5) {
this.month5 = month5;
}
public UrlStatMonth getMonth6() {
return this.month6;
}
public void setMonth6(UrlStatMonth month6) {
this.month6 = month6;
}
public UrlStatMonth getMonth7() {
return this.month7;
}
public void setMonth7(UrlStatMonth month7) {
this.month7 = month7;
}
public UrlStatMonth getMonth8() {
return this.month8;
}
public void setMonth8(UrlStatMonth month8) {
this.month8 = month8;
}
public UrlStatMonth getMonth9() {
return this.month9;
}
public void setMonth9(UrlStatMonth month9) {
this.month9 = month9;
}
public UrlStatMonth getMonth10() {
return this.month10;
}
public void setMonth10(UrlStatMonth month10) {
this.month10 = month10;
}
public UrlStatMonth getMonth11() {
return this.month11;
}
public void setMonth11(UrlStatMonth month11) {
this.month11 = month11;
}
public UrlStatMonth getMonth12() {
return this.month12;
}
public void setMonth12(UrlStatMonth month12) {
this.month12 = month12;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
New file
0,0 → 1,43
package pt.estgp.estgweb.domain;
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* UrlStatMonthId generated by hbm2java
*/
public class UrlStatMonthId extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private Integer month;
private UrlStatYear urlStatYear;
 
public UrlStatMonthId() {
}
 
public UrlStatMonthId(Integer month, UrlStatYear urlStatYear) {
this.month = month;
this.urlStatYear = urlStatYear;
}
public Integer getMonth() {
return this.month;
}
public void setMonth(Integer month) {
this.month = month;
}
public UrlStatYear getUrlStatYear() {
return this.urlStatYear;
}
public void setUrlStatYear(UrlStatYear urlStatYear) {
this.urlStatYear = urlStatYear;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Image.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUserAssociationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GroupDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ImageDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserSessionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 12/Mar/2008 16:26:56 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 11:16:44 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 12/Mar/2008 16:26:54 by Hibernate Tools 3.2.0.b9
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
New file
0,0 → 1,43
package pt.estgp.estgweb.domain;
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* UrlStatYearId generated by hbm2java
*/
public class UrlStatYearId extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private Integer year;
private UrlStat urlStat;
 
public UrlStatYearId() {
}
 
public UrlStatYearId(Integer year, UrlStat urlStat) {
this.year = year;
this.urlStat = urlStat;
}
public Integer getYear() {
return this.year;
}
public void setYear(Integer year) {
this.year = year;
}
public UrlStat getUrlStat() {
return this.urlStat;
}
public void setUrlStat(UrlStat urlStat) {
this.urlStat = urlStat;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
New file
0,0 → 1,103
package pt.estgp.estgweb.domain;
// Generated 14/Mar/2008 12:32:05 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* UrlStat generated by hbm2java
*/
public abstract class UrlStat extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private String relativePath;
private Date updateDate;
private Date saveDate;
private String name;
private String description;
private Integer totalClicks;
private boolean status;
private Set<UrlStatYear> years = new HashSet<UrlStatYear>(0);
 
public UrlStat() {
}
 
public UrlStat(String relativePath) {
this.relativePath = relativePath;
}
public UrlStat(String relativePath, Date saveDate, String name, String description, Integer totalClicks, boolean status, Set<UrlStatYear> years) {
this.relativePath = relativePath;
this.saveDate = saveDate;
this.name = name;
this.description = description;
this.totalClicks = totalClicks;
this.status = status;
this.years = years;
}
public String getRelativePath() {
return this.relativePath;
}
public void setRelativePath(String relativePath) {
this.relativePath = relativePath;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getTotalClicks() {
return this.totalClicks;
}
public void setTotalClicks(Integer totalClicks) {
this.totalClicks = totalClicks;
}
public boolean isStatus() {
return this.status;
}
public void setStatus(boolean status) {
this.status = status;
}
public Set<UrlStatYear> getYears() {
return this.years;
}
public void setYears(Set<UrlStatYear> years) {
this.years = years;
}
 
 
 
 
}