maia/.svn/pristine/6e/6e2b937716fe058f92eaf4067e7...

146 lines
4.7 KiB
Plaintext
Executable File

/*
*
*/
package com.fp.bpmlib.task;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jbpm.services.task.impl.model.UserImpl;
import org.kie.api.task.model.Group;
import org.kie.api.task.model.OrganizationalEntity;
import org.kie.api.task.model.User;
import org.kie.internal.task.api.UserInfo;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.commondb.PersistenceManager;
import com.fp.persistence.commondb.data.SessionData;
import com.fp.persistence.commondb.data.ThreadFacade;
import com.fp.persistence.commondb.helper.FormatDates;
import com.fp.persistence.pbpm.gene.TbpmGroupsUsers;
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pcustomer.gene.TcustPersonDetailKey;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
// TODO: Auto-generated Javadoc
/**
* Class TaskUser encargada de.
*
* @author gfiallos
*/
public class TaskUser implements UserInfo {
/**
* Entrega el nombre de un uaurio.
*
* @param entity OBjeto que contiene datos de un usuario asociado a la ejecucion de una actividad.
* @return String
*/
@Override
public String getDisplayName(OrganizationalEntity entity) {
try {
this.prepareSession();
TsafeUserDetail tsud = TsafeUserDetail.find(PersistenceHelper.getEntityManager(), entity.getId());
TcustPersonDetailKey key = new TcustPersonDetailKey(tsud.getPk().getPersoncode(), FormatDates.getDefaultExpiryTimestamp());
TcustPersonDetail pd = TcustPersonDetail.find(PersistenceHelper.getEntityManager(), key);
return pd.getName();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
PersistenceHelper.closeSession();
}
}
/**
* Prepare session.
*/
private void prepareSession() {
SessionData s = new SessionData();
s.setCompany(1);
ThreadFacade.setSaveRequest(s);
PersistenceManager persistenceManager = PersistenceManager.getInstanceTest();
PersistenceHelper.setEntityManager(persistenceManager.createEntityManagerLocal());
}
/**
* Obtiene el valor de email for entity.
*
* @param entity the entity
* @return Valor de email for entity
*/
@Override
public String getEmailForEntity(OrganizationalEntity entity) {
try {
this.prepareSession();
TsafeUserDetail tsud = TsafeUserDetail.find(PersistenceHelper.getEntityManager(), entity.getId());
TcustPersonDetailKey key = new TcustPersonDetailKey(tsud.getPk().getPersoncode(), FormatDates.getDefaultExpiryTimestamp());
TcustPersonDetail pd = TcustPersonDetail.find(PersistenceHelper.getEntityManager(), key);
return pd.getLanguagecode();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
PersistenceHelper.closeSession();
}
}
/**
* Entrega el lenguaje preferido de un usuario.
*
* @param entity OBjeto que contiene datos de un usuario asociado a la ejecucion de una actividad.
* @return String
*/
@Override
public String getLanguageForEntity(OrganizationalEntity entity) {
try {
this.prepareSession();
TsafeUserDetail tsud = TsafeUserDetail.find(PersistenceHelper.getEntityManager(), entity.getId());
return TcustPersonAddress.getEmail(PersistenceHelper.getEntityManager(), tsud.getPk().getPersoncode());
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
PersistenceHelper.closeSession();
}
}
/**
* Obtiene el valor de members for group.
*
* @param group the group
* @return Valor de members for group
*/
@Override
public Iterator<OrganizationalEntity> getMembersForGroup(Group group) {
List<OrganizationalEntity> l = new ArrayList<OrganizationalEntity>();
try {
this.prepareSession();
List<TbpmGroupsUsers> ldata = TbpmGroupsUsers.find(PersistenceHelper.getEntityManager(), group.getId());
for (TbpmGroupsUsers obj : ldata) {
User user = new UserImpl(obj.getPk().getUsercode());
l.add(user);
}
} catch (Exception e) {
// TODO: handle exception
} finally {
PersistenceHelper.closeSession();
}
return l.iterator();
}
/**
* Checks for email.
*
* @param group the group
* @return true, si es satisfactorio
*/
@Override
public boolean hasEmail(Group group) {
return false;
}
}