package net.kwys.server.service.kwys.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.kwys.server.persistence.daos.KwysPagesDAO;
import net.kwys.server.persistence.entities.KwysLanguageEntity;
import net.kwys.server.persistence.entities.KwysObjectEntity;
import net.kwys.server.persistence.entities.KwysPageEntity;
import net.kwys.server.service.kwys.KwysLanguage;
import net.kwys.server.service.kwys.KwysObject;
import net.kwys.server.service.kwys.KwysPage;
import net.kwys.server.service.kwys.KwysPagesService;
import net.kwys.server.service.kwys.exceptions.KwysLanguageAlreadyUsedException;
public
class KwysPagesServiceImpl
implements KwysPagesService
{
public
void setPagesDAO(KwysPagesDAO newPagesDAO)
{
pagesDAO = newPagesDAO;
}
@Override
public
Collection<KwysPage> getPagesByObject(KwysObject object)
{
List<KwysPage> pages = new ArrayList<KwysPage>();
Collection<KwysPageEntity> pageEs =
pagesDAO.getByObject(new KwysObjectEntity(object.getId()));
for (KwysPageEntity pageE : pageEs)
pages.add(new KwysPage(pageE));
return (pages);
}
@Override
public
void delete(KwysPage page)
{
pagesDAO.delete(new KwysPageEntity(page.getId()));
}
@Override
public
KwysPage create()
{
return (new KwysPage());
}
@Override
public
KwysPage load(KwysPage page)
{
KwysPageEntity pageE =
pagesDAO.load(new KwysPageEntity(page.getId()));
if (pageE == null)
return (null);
return (new KwysPage(pageE));
}
@Override
public
KwysPage getByObjectAndLanguage(KwysObject object,
KwysLanguage language)
{
KwysPageEntity kPageE;
kPageE = pagesDAO.getByObjectAndLanguage(new KwysObjectEntity(object.getId()),
new KwysLanguageEntity(language.getId()));
if (kPageE == null)
return (null);
return (new KwysPage(kPageE));
}
@Override
public
void save(KwysPage page)
{
KwysPageEntity pageE = page.toEntity();
KwysPage realPageE =
getByObjectAndLanguage(new KwysObject(page.getObjectId()),
new KwysLanguage(page.getLanguageId()));
if ((realPageE != null) &&
(!realPageE.getId().equals(pageE.getId())))
throw (new KwysLanguageAlreadyUsedException(page.getLanguageId()));
pagesDAO.save(pageE);
page.setId(pageE.getId());
}
private
KwysPagesDAO pagesDAO;
}
|