Added method getCriterionType in PredefinedCriterionTypes.
* Modified CriterionTypeDAO to only provide a method findByName used in several places. FEA: ItEr74S04BugFixing
This commit is contained in:
parent
a697db43e3
commit
5ee0bb05b8
4 changed files with 20 additions and 27 deletions
|
|
@ -48,16 +48,9 @@ public class CriterionTypeDAO extends IntegrationEntityDAO<CriterionType>
|
|||
implements ICriterionTypeDAO {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CriterionType> findByName(CriterionType criterionType) {
|
||||
Criteria criteria = searchByNameCriteria(criterionType.getName());
|
||||
return (List<CriterionType>) criteria.list();
|
||||
}
|
||||
|
||||
private Criteria searchByNameCriteria(String name) {
|
||||
Criteria result = getSession().createCriteria(CriterionType.class);
|
||||
result.add(Restrictions.eq("name", name).ignoreCase());
|
||||
return result;
|
||||
public CriterionType findByName(String name) {
|
||||
return (CriterionType) getSession().createCriteria(CriterionType.class)
|
||||
.add(Restrictions.eq("name", name).ignoreCase()).uniqueResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -70,7 +63,7 @@ public class CriterionTypeDAO extends IntegrationEntityDAO<CriterionType>
|
|||
@Override
|
||||
public CriterionType findUniqueByName(String name)
|
||||
throws InstanceNotFoundException {
|
||||
CriterionType result = uniqueByName(name);
|
||||
CriterionType result = findByName(name);
|
||||
if (result == null) {
|
||||
throw new InstanceNotFoundException(name,
|
||||
CriterionType.class.getName());
|
||||
|
|
@ -78,14 +71,6 @@ public class CriterionTypeDAO extends IntegrationEntityDAO<CriterionType>
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the single result of null
|
||||
*/
|
||||
private CriterionType uniqueByName(String name) {
|
||||
Criteria criteria = searchByNameCriteria(name);
|
||||
return (CriterionType) criteria.uniqueResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
|
||||
public CriterionType findUniqueByNameAnotherTransaction(String name)
|
||||
|
|
@ -98,7 +83,7 @@ public class CriterionTypeDAO extends IntegrationEntityDAO<CriterionType>
|
|||
@Override
|
||||
public boolean existsOtherCriterionTypeByName(CriterionType criterionType) {
|
||||
Validate.notNull(criterionType);
|
||||
CriterionType found = uniqueByName(criterionType.getName());
|
||||
CriterionType found = findByName(criterionType.getName());
|
||||
return found != null && criterionType != found;
|
||||
}
|
||||
|
||||
|
|
@ -150,7 +135,7 @@ public class CriterionTypeDAO extends IntegrationEntityDAO<CriterionType>
|
|||
public CriterionType findPredefined(CriterionType criterionType) {
|
||||
Validate.notNull(criterionType);
|
||||
Validate.notNull(criterionType.getPredefinedTypeInternalName());
|
||||
CriterionType result = uniqueByName(criterionType.getName());
|
||||
CriterionType result = findByName(criterionType.getName());
|
||||
if (result != null) {
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public interface ICriterionTypeDAO
|
|||
CriterionType findUniqueByName(CriterionType criterionType)
|
||||
throws InstanceNotFoundException;
|
||||
|
||||
List<CriterionType> findByName(CriterionType criterionType);
|
||||
CriterionType findByName(String name);
|
||||
|
||||
public boolean existsOtherCriterionTypeByName(CriterionType criterionType);
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import static org.navalplanner.business.i18n.I18nHelper._;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.common.Registry;
|
||||
|
||||
/**
|
||||
* This class defines some criterion types known a priori<br />
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -155,4 +157,9 @@ public enum PredefinedCriterionTypes implements ICriterionType<Criterion> {
|
|||
}
|
||||
|
||||
public abstract List<String> getPredefined();
|
||||
|
||||
public CriterionType getCriterionType() {
|
||||
return Registry.getCriterionTypeDAO().findByName(getName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import static org.navalplanner.web.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CONF
|
|||
import static org.navalplanner.web.test.WebappGlobalNames.WEBAPP_SPRING_CONFIG_TEST_FILE;
|
||||
import static org.navalplanner.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CONFIG_TEST_FILE;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.Test;
|
||||
|
|
@ -44,6 +43,7 @@ import org.navalplanner.business.resources.entities.Criterion;
|
|||
import org.navalplanner.business.resources.entities.CriterionType;
|
||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||
import org.navalplanner.business.resources.entities.PredefinedCriterionTypes;
|
||||
import org.navalplanner.web.resources.criterion.CriterionsModel;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.annotation.NotTransactional;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
|
@ -134,12 +134,13 @@ public class CriterionModelTest {
|
|||
}
|
||||
|
||||
private CriterionType ensureExists(CriterionType transientType) {
|
||||
List<CriterionType> found = criterionTypeDAO.findByName(transientType);
|
||||
if (!found.isEmpty()) {
|
||||
return found.get(0);
|
||||
CriterionType found = criterionTypeDAO.findByName(transientType
|
||||
.getName());
|
||||
if (found != null) {
|
||||
return found;
|
||||
}
|
||||
criterionTypeDAO.save(transientType);
|
||||
return criterionTypeDAO.findByName(transientType).get(0);
|
||||
return criterionTypeDAO.findByName(transientType.getName());
|
||||
}
|
||||
|
||||
/*@Test
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue