Java 类ims.core.vo.domain.NotificationVoAssembler 实例源码

项目:AvoinApotti    文件:NotificationsProvider.java   
public void markAsSeen(IUINotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into markAsSeen is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setSeen(Boolean.TRUE);
    notificationVo.setSeenAt(new DateTime());

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:AvoinApotti    文件:NotificationsProvider.java   
public void setUserNotified(INotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into setUserNotified is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setUserNotified(true);       

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public void markAsSeen(IUINotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into markAsSeen is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setSeen(Boolean.TRUE);
    notificationVo.setSeenAt(new DateTime());

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public void setUserNotified(INotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into setUserNotified is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setUserNotified(true);       

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public void markAsSeen(IUINotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into markAsSeen is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setSeen(Boolean.TRUE);
    notificationVo.setSeenAt(new DateTime());

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public void setUserNotified(INotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into setUserNotified is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setUserNotified(true);       

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openmaxims-linux    文件:NotificationsProvider.java   
public void markAsSeen(IUINotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into markAsSeen is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setSeen(Boolean.TRUE);
    notificationVo.setSeenAt(new DateTime());

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:openmaxims-linux    文件:NotificationsProvider.java   
public void setUserNotified(INotification notification) 
{
    if(notification == null)
        throw new CodingRuntimeException("Notification passed into setUserNotified is null.");

    DomainFactory factory = getDomainFactory();

    NotificationVo notificationVo = NotificationVoAssembler.create((Notifications) factory.getDomainObject(Notifications.class, notification.getINotificationId()));

    notificationVo.setUserNotified(true);       

    notificationVo.validate();

    try 
    {
        factory.save(NotificationVoAssembler.extractNotifications(factory, notificationVo));
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }
}
项目:AvoinApotti    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, boolean seen, int maxNumberOfNotifications) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.dateTime desc";

    if(maxNumberOfNotifications > EnvironmentConfig.getResultSetDefaultMax())
        maxNumberOfNotifications = EnvironmentConfig.getResultSetDefaultMax();

    userNotificationsList = factory.find(hql, markers, values, maxNumberOfNotifications);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:AvoinApotti    文件:NotificationsImpl.java   
public ims.core.vo.NotificationVoCollection getNotifications()
{
    if(this.getLoggedInUser() == null)
        throw new CodingRuntimeException("Unable to get the logged user.");

    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n where n.user.id = :userIden and n.seen = 0 order by n.priority asc, n.dateTime desc";

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(factory.find(hql, new String[] {"userIden"}, new Object[] { this.getLoggedInUser().getUserId() }));
}
项目:openMAXIMS    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, boolean seen, int maxNumberOfNotifications) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.dateTime desc";

    if(maxNumberOfNotifications > EnvironmentConfig.getResultSetDefaultMax())
        maxNumberOfNotifications = EnvironmentConfig.getResultSetDefaultMax();

    userNotificationsList = factory.find(hql, markers, values, maxNumberOfNotifications);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openMAXIMS    文件:NotificationsImpl.java   
public ims.core.vo.NotificationVoCollection getNotifications()
{
    if(this.getLoggedInUser() == null)
        throw new CodingRuntimeException("Unable to get the logged user.");

    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n where n.user.id = :userIden and n.seen = 0 order by n.priority asc, n.dateTime desc";

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(factory.find(hql, new String[] {"userIden"}, new Object[] { this.getLoggedInUser().getUserId() }));
}
项目:openMAXIMS    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, boolean seen, int maxNumberOfNotifications) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.dateTime desc";

    if(maxNumberOfNotifications > EnvironmentConfig.getResultSetDefaultMax())
        maxNumberOfNotifications = EnvironmentConfig.getResultSetDefaultMax();

    userNotificationsList = factory.find(hql, markers, values, maxNumberOfNotifications);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openMAXIMS    文件:NotificationsImpl.java   
public ims.core.vo.NotificationVoCollection getNotifications()
{
    if(this.getLoggedInUser() == null)
        throw new CodingRuntimeException("Unable to get the logged user.");

    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n where n.user.id = :userIden and n.seen = 0 order by n.priority asc, n.dateTime desc";

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(factory.find(hql, new String[] {"userIden"}, new Object[] { this.getLoggedInUser().getUserId() }));
}
项目:openmaxims-linux    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, boolean seen, int maxNumberOfNotifications) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.dateTime desc";

    if(maxNumberOfNotifications > EnvironmentConfig.getResultSetDefaultMax())
        maxNumberOfNotifications = EnvironmentConfig.getResultSetDefaultMax();

    userNotificationsList = factory.find(hql, markers, values, maxNumberOfNotifications);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openmaxims-linux    文件:NotificationsImpl.java   
public ims.core.vo.NotificationVoCollection getNotifications()
{
    if(this.getLoggedInUser() == null)
        throw new CodingRuntimeException("Unable to get the logged user.");

    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n where n.user.id = :userIden and n.seen = 0 order by n.priority asc, n.dateTime desc";

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(factory.find(hql, new String[] {"userIden"}, new Object[] { this.getLoggedInUser().getUserId() }));
}
项目:AvoinApotti    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, Date dateFrom, Date dateTo, String message, String source, NotificationPriority priority, boolean seen) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    if(dateFrom != null)
    {
        condStr.append(andStr + " n.dateTime >= :from");
        markers.add("from");
        values.add(dateFrom.getDate());
        dateFrom.getDate().toString();
        andStr = " and";
    }

    if(dateTo != null)
    {
        Date dateToClone = ((Date)dateTo.clone()).addDay(1);
        condStr.append(andStr + " n.dateTime < :to");
        markers.add("to");
        values.add(dateToClone.getDate());
        andStr = " and";
    }

    if(message != null)
    {
        condStr.append(andStr + " n.message like :mess");
        markers.add("mess");
        values.add("%" + message + "%");
        andStr = " and";
    }

    if(source != null)
    {
        condStr.append(andStr + " n.source like :src");
        markers.add("src");
        values.add("%" + source + "%");
        andStr = " and";
    }

    if(priority != null)
    {
        condStr.append(andStr + " n.priority = :pri");
        markers.add("pri");
        values.add(priority.getId());
        andStr = " and";
    }

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.priority asc, n.dateTime desc";

    userNotificationsList = factory.find(hql, markers, values);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:AvoinApotti    文件:NotificationsProvider.java   
public IUINotification createUINotification(IQueuedNotification notification) throws Exception 
{
    if(notification == null)
        throw new CodingRuntimeException("Invalid notification.");

    if(notification.getINotificationMessage() == null)
        throw new CodingRuntimeException("Notification message is null.");

    if(notification.getINotificationPriority() == null)
        throw new CodingRuntimeException("Notification priority is null.");

    NotificationVo instance = new NotificationVo();
    DomainFactory domainFactory = this.getDomainFactory();

    AppUser doUser = (AppUser)domainFactory.getDomainObject(AppUser.class, notification.getINotificationUserId());

    if(doUser == null)
        throw new DomainRuntimeException("Invalid User Id passed into createNotification.");

    instance.setUser(AppUserNotificationVoAssembler.create(doUser));
    instance.setDateTime(new DateTime());
    instance.setNotificationPriority(notification.getINotificationPriority().getId());
    instance.setMessage(notification.getINotificationMessage());
    instance.setSource(notification.getINotificationSource());
    instance.setSeen(Boolean.FALSE);

    if(notification.getINotificationEntityType() != null)
    {
        instance.setEntityType(notification.getINotificationEntityType());
        instance.setEntityId(notification.getINotificationEntityId());
    }

    String[] errors = instance.validate();
    if(errors != null && errors.length > 0)
    {
        throw new RuntimeException("Validation errors while creating a user notification.");
    }

    try 
    {
        ims.core.admin.domain.objects.Notifications doNotification = NotificationVoAssembler.extractNotifications(domainFactory, instance);
        domainFactory.save(doNotification);
        instance = NotificationVoAssembler.create(doNotification);          
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }

    return instance;
}
项目:openMAXIMS    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, Date dateFrom, Date dateTo, String message, String source, NotificationPriority priority, boolean seen) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    if(dateFrom != null)
    {
        condStr.append(andStr + " n.dateTime >= :from");
        markers.add("from");
        values.add(dateFrom.getDate());
        dateFrom.getDate().toString();
        andStr = " and";
    }

    if(dateTo != null)
    {
        Date dateToClone = ((Date)dateTo.clone()).addDay(1);
        condStr.append(andStr + " n.dateTime < :to");
        markers.add("to");
        values.add(dateToClone.getDate());
        andStr = " and";
    }

    if(message != null)
    {
        condStr.append(andStr + " n.message like :mess");
        markers.add("mess");
        values.add("%" + message + "%");
        andStr = " and";
    }

    if(source != null)
    {
        condStr.append(andStr + " n.source like :src");
        markers.add("src");
        values.add("%" + source + "%");
        andStr = " and";
    }

    if(priority != null)
    {
        condStr.append(andStr + " n.priority = :pri");
        markers.add("pri");
        values.add(priority.getId());
        andStr = " and";
    }

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.priority asc, n.dateTime desc";

    userNotificationsList = factory.find(hql, markers, values);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public IUINotification createUINotification(IQueuedNotification notification) throws Exception 
{
    if(notification == null)
        throw new CodingRuntimeException("Invalid notification.");

    if(notification.getINotificationMessage() == null)
        throw new CodingRuntimeException("Notification message is null.");

    if(notification.getINotificationPriority() == null)
        throw new CodingRuntimeException("Notification priority is null.");

    NotificationVo instance = new NotificationVo();
    DomainFactory domainFactory = this.getDomainFactory();

    AppUser doUser = (AppUser)domainFactory.getDomainObject(AppUser.class, notification.getINotificationUserId());

    if(doUser == null)
        throw new DomainRuntimeException("Invalid User Id passed into createNotification.");

    instance.setUser(AppUserNotificationVoAssembler.create(doUser));
    instance.setDateTime(new DateTime());
    instance.setNotificationPriority(notification.getINotificationPriority().getId());
    instance.setMessage(notification.getINotificationMessage());
    instance.setSource(notification.getINotificationSource());
    instance.setSeen(Boolean.FALSE);

    if(notification.getINotificationEntityType() != null)
    {
        instance.setEntityType(notification.getINotificationEntityType());
        instance.setEntityId(notification.getINotificationEntityId());
    }

    String[] errors = instance.validate();
    if(errors != null && errors.length > 0)
    {
        throw new RuntimeException("Validation errors while creating a user notification.");
    }

    try 
    {
        ims.core.admin.domain.objects.Notifications doNotification = NotificationVoAssembler.extractNotifications(domainFactory, instance);
        domainFactory.save(doNotification);
        instance = NotificationVoAssembler.create(doNotification);          
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }

    return instance;
}
项目:openMAXIMS    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, Date dateFrom, Date dateTo, String message, String source, NotificationPriority priority, boolean seen) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    if(dateFrom != null)
    {
        condStr.append(andStr + " n.dateTime >= :from");
        markers.add("from");
        values.add(dateFrom.getDate());
        dateFrom.getDate().toString();
        andStr = " and";
    }

    if(dateTo != null)
    {
        Date dateToClone = ((Date)dateTo.clone()).addDay(1);
        condStr.append(andStr + " n.dateTime < :to");
        markers.add("to");
        values.add(dateToClone.getDate());
        andStr = " and";
    }

    if(message != null)
    {
        condStr.append(andStr + " n.message like :mess");
        markers.add("mess");
        values.add("%" + message + "%");
        andStr = " and";
    }

    if(source != null)
    {
        condStr.append(andStr + " n.source like :src");
        markers.add("src");
        values.add("%" + source + "%");
        andStr = " and";
    }

    if(priority != null)
    {
        condStr.append(andStr + " n.priority = :pri");
        markers.add("pri");
        values.add(priority.getId());
        andStr = " and";
    }

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.priority asc, n.dateTime desc";

    userNotificationsList = factory.find(hql, markers, values);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openMAXIMS    文件:NotificationsProvider.java   
public IUINotification createUINotification(IQueuedNotification notification) throws Exception 
{
    if(notification == null)
        throw new CodingRuntimeException("Invalid notification.");

    if(notification.getINotificationMessage() == null)
        throw new CodingRuntimeException("Notification message is null.");

    if(notification.getINotificationPriority() == null)
        throw new CodingRuntimeException("Notification priority is null.");

    NotificationVo instance = new NotificationVo();
    DomainFactory domainFactory = this.getDomainFactory();

    AppUser doUser = (AppUser)domainFactory.getDomainObject(AppUser.class, notification.getINotificationUserId());

    if(doUser == null)
        throw new DomainRuntimeException("Invalid User Id passed into createNotification.");

    instance.setUser(AppUserNotificationVoAssembler.create(doUser));
    instance.setDateTime(new DateTime());
    instance.setNotificationPriority(notification.getINotificationPriority().getId());
    instance.setMessage(notification.getINotificationMessage());
    instance.setSource(notification.getINotificationSource());
    instance.setSeen(Boolean.FALSE);

    if(notification.getINotificationEntityType() != null)
    {
        instance.setEntityType(notification.getINotificationEntityType());
        instance.setEntityId(notification.getINotificationEntityId());
    }

    String[] errors = instance.validate();
    if(errors != null && errors.length > 0)
    {
        throw new RuntimeException("Validation errors while creating a user notification.");
    }

    try 
    {
        ims.core.admin.domain.objects.Notifications doNotification = NotificationVoAssembler.extractNotifications(domainFactory, instance);
        domainFactory.save(doNotification);
        instance = NotificationVoAssembler.create(doNotification);          
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }

    return instance;
}
项目:openmaxims-linux    文件:NotificationsProvider.java   
@SuppressWarnings("unchecked")
public IUINotification[] getNotifications(int userId, Date dateFrom, Date dateTo, String message, String source, NotificationPriority priority, boolean seen) 
{
    DomainFactory factory = getDomainFactory();

    String hql = "from Notifications n";
    StringBuffer condStr = new StringBuffer();
    String andStr = "";

    ArrayList<String> markers = new ArrayList<String>();
    ArrayList<Serializable> values = new ArrayList<Serializable>();

    List userNotificationsList = null;

    condStr.append(andStr + " n.user.id = :userIden");
    markers.add("userIden");
    values.add(userId);
    andStr = " and";

    if(dateFrom != null)
    {
        condStr.append(andStr + " n.dateTime >= :from");
        markers.add("from");
        values.add(dateFrom.getDate());
        dateFrom.getDate().toString();
        andStr = " and";
    }

    if(dateTo != null)
    {
        Date dateToClone = ((Date)dateTo.clone()).addDay(1);
        condStr.append(andStr + " n.dateTime < :to");
        markers.add("to");
        values.add(dateToClone.getDate());
        andStr = " and";
    }

    if(message != null)
    {
        condStr.append(andStr + " n.message like :mess");
        markers.add("mess");
        values.add("%" + message + "%");
        andStr = " and";
    }

    if(source != null)
    {
        condStr.append(andStr + " n.source like :src");
        markers.add("src");
        values.add("%" + source + "%");
        andStr = " and";
    }

    if(priority != null)
    {
        condStr.append(andStr + " n.priority = :pri");
        markers.add("pri");
        values.add(priority.getId());
        andStr = " and";
    }

    condStr.append(andStr + " n.seen = :isSeen");
    markers.add("isSeen");
    values.add(seen);
    andStr = " and";

    hql += " where";
    hql += condStr.toString();

    hql += " order by n.priority asc, n.dateTime desc";

    userNotificationsList = factory.find(hql, markers, values);

    return NotificationVoAssembler.createNotificationVoCollectionFromNotifications(userNotificationsList).toIUINotificationArray();
}
项目:openmaxims-linux    文件:NotificationsProvider.java   
public IUINotification createUINotification(IQueuedNotification notification) throws Exception 
{
    if(notification == null)
        throw new CodingRuntimeException("Invalid notification.");

    if(notification.getINotificationMessage() == null)
        throw new CodingRuntimeException("Notification message is null.");

    if(notification.getINotificationPriority() == null)
        throw new CodingRuntimeException("Notification priority is null.");

    NotificationVo instance = new NotificationVo();
    DomainFactory domainFactory = this.getDomainFactory();

    AppUser doUser = (AppUser)domainFactory.getDomainObject(AppUser.class, notification.getINotificationUserId());

    if(doUser == null)
        throw new DomainRuntimeException("Invalid User Id passed into createNotification.");

    instance.setUser(AppUserNotificationVoAssembler.create(doUser));
    instance.setDateTime(new DateTime());
    instance.setNotificationPriority(notification.getINotificationPriority().getId());
    instance.setMessage(notification.getINotificationMessage());
    instance.setSource(notification.getINotificationSource());
    instance.setSeen(Boolean.FALSE);

    if(notification.getINotificationEntityType() != null)
    {
        instance.setEntityType(notification.getINotificationEntityType());
        instance.setEntityId(notification.getINotificationEntityId());
    }

    String[] errors = instance.validate();
    if(errors != null && errors.length > 0)
    {
        throw new RuntimeException("Validation errors while creating a user notification.");
    }

    try 
    {
        ims.core.admin.domain.objects.Notifications doNotification = NotificationVoAssembler.extractNotifications(domainFactory, instance);
        domainFactory.save(doNotification);
        instance = NotificationVoAssembler.create(doNotification);          
    } 
    catch (StaleObjectException e) 
    {
        throw new RuntimeException(e);
    }

    return instance;
}