Subversion Repositories bacoAlunos

Rev

Rev 297 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.blogs;

import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;

import java.util.Date;
import java.util.HashSet;

/*
 * @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 CreateBlogService implements IService
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CreateBlogService.class);

    private LoadBlogService loadBlogService = new LoadBlogService();

    public BlogView run(BlogView bV, UserSession userSession) throws ServiceException
    {
        Blog b;
        if(bV.getId() <= 0)
        {
            if(bV.getImage() != null)
            {
                DaoFactory.getImageDaoImpl().save(bV.getImage());
                ImageManager.store((ImageImpl) bV.getImage());
            }
            if(bV.getCourseUnitView() != null)
            {
                CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(bV.getCourseUnitView().getId());
                b = DomainObjectFactory.createCourseUnitBlogImpl();
                ((CourseUnitBlogImpl)b).setCourseUnit(c);
                if(c.getBlogs() == null)
                    c.setBlogs(new 1.5.0/docs/api/java/util/HashSet.html">HashSet());
                c.getBlogs().add((CourseUnitBlog) b);
                if(c.getTeachers()!=null && c.getTeachers().size() > 0)
                    b.setOwner(c.getTeachers().iterator().next());
            }
            else
            {
                b = DomainObjectFactory.createBlogImpl();
                b.setOwner(userSession.getUser());
            }
            b.setSaveDate(new 5+0%2Fdocs%2Fapi+Date">Date());
            DaoFactory.getBlogDaoImpl().save(b);
        }
        else
        {
            b = DaoFactory.getBlogDaoImpl().get(bV.getSerializable());

            if(bV.getImage() != null && b.getImage() != null)
                DaoFactory.getImageDaoImpl().delete(b.getImage().getId());
            if(bV.getImage() != null)
            {
                DaoFactory.getImageDaoImpl().save(bV.getImage());
                ImageManager.store((ImageImpl) bV.getImage());
                b.setImage(bV.getImage());
            }
        }
        if(userSession.getUser() != null && userSession.getUser().isSuperuserOrAdmin())
            bV.persistViewInObjectByAdmin(b);
        else
            bV.persistViewInObject(b);
        if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0)
            b.setTargetRoles(Globals.ALL_ROLE);
        return loadBlogService.loadIndex(b.getId(),userSession);
    }
}