ItEr51S10AdaptacionServiciosRESTItEr50S13 : Adapting of the Material and the MaterialCategory to IntegrationEntity.

This commit is contained in:
Susana Montes Pedreira 2010-03-24 16:13:28 +01:00 committed by Javier Moran Rua
parent e9767d320c
commit ca69d86831
8 changed files with 50 additions and 13 deletions

View file

@ -22,7 +22,7 @@ package org.navalplanner.business.materials.daos;
import java.util.List; import java.util.List;
import org.navalplanner.business.common.daos.IGenericDAO; import org.navalplanner.business.common.daos.IIntegrationEntityDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.entities.Material; import org.navalplanner.business.materials.entities.Material;
import org.navalplanner.business.materials.entities.MaterialCategory; import org.navalplanner.business.materials.entities.MaterialCategory;
@ -33,7 +33,8 @@ import org.navalplanner.business.materials.entities.MaterialCategory;
* @author Jacobo Aragunde Perez <jaragunde@igalia.com> * @author Jacobo Aragunde Perez <jaragunde@igalia.com>
* @author Diego Pino Garcia <dpino@igalia.com> * @author Diego Pino Garcia <dpino@igalia.com>
*/ */
public interface IMaterialCategoryDAO extends IGenericDAO<MaterialCategory, Long> { public interface IMaterialCategoryDAO extends
IIntegrationEntityDAO<MaterialCategory> {
/** /**
* Returns true if {@link MaterialCategory} exists * Returns true if {@link MaterialCategory} exists

View file

@ -23,7 +23,7 @@ package org.navalplanner.business.materials.daos;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.navalplanner.business.common.daos.IGenericDAO; import org.navalplanner.business.common.daos.IIntegrationEntityDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.entities.Material; import org.navalplanner.business.materials.entities.Material;
import org.navalplanner.business.materials.entities.MaterialAssignment; import org.navalplanner.business.materials.entities.MaterialAssignment;
@ -37,7 +37,7 @@ import org.navalplanner.business.orders.entities.Order;
* @author Jacobo Aragunde Perez <jaragunde@igalia.com> * @author Jacobo Aragunde Perez <jaragunde@igalia.com>
* @author Diego Pino Garcia <dpino@igalia.com> * @author Diego Pino Garcia <dpino@igalia.com>
*/ */
public interface IMaterialDAO extends IGenericDAO<Material, Long> { public interface IMaterialDAO extends IIntegrationEntityDAO<Material> {
/** /**
* Returns true if {@link Material} exits * Returns true if {@link Material} exits

View file

@ -24,7 +24,7 @@ import java.util.List;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Restrictions;
import org.navalplanner.business.common.daos.GenericDAOHibernate; import org.navalplanner.business.common.daos.IntegrationEntityDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.entities.MaterialCategory; import org.navalplanner.business.materials.entities.MaterialCategory;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
@ -40,7 +40,8 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Repository @Repository
@Scope(BeanDefinition.SCOPE_SINGLETON) @Scope(BeanDefinition.SCOPE_SINGLETON)
public class MaterialCategoryDAO extends GenericDAOHibernate<MaterialCategory, Long> implements public class MaterialCategoryDAO extends IntegrationEntityDAO<MaterialCategory>
implements
IMaterialCategoryDAO { IMaterialCategoryDAO {
@Override @Override

View file

@ -28,7 +28,7 @@ import java.util.Set;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.Query; import org.hibernate.Query;
import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Restrictions;
import org.navalplanner.business.common.daos.GenericDAOHibernate; import org.navalplanner.business.common.daos.IntegrationEntityDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.entities.Material; import org.navalplanner.business.materials.entities.Material;
import org.navalplanner.business.materials.entities.MaterialAssignment; import org.navalplanner.business.materials.entities.MaterialAssignment;
@ -50,7 +50,7 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Repository @Repository
@Scope(BeanDefinition.SCOPE_SINGLETON) @Scope(BeanDefinition.SCOPE_SINGLETON)
public class MaterialDAO extends GenericDAOHibernate<Material, Long> implements public class MaterialDAO extends IntegrationEntityDAO<Material> implements
IMaterialDAO { IMaterialDAO {
@Override @Override

View file

@ -25,7 +25,7 @@ import java.math.BigDecimal;
import org.hibernate.validator.AssertTrue; import org.hibernate.validator.AssertTrue;
import org.hibernate.validator.NotEmpty; import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull; import org.hibernate.validator.NotNull;
import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.common.IntegrationEntity;
import org.navalplanner.business.common.Registry; import org.navalplanner.business.common.Registry;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.daos.IMaterialDAO; import org.navalplanner.business.materials.daos.IMaterialDAO;
@ -36,7 +36,7 @@ import org.navalplanner.business.materials.daos.IMaterialDAO;
* @author Jacobo Aragunde Perez <jaragunde@igalia.com> * @author Jacobo Aragunde Perez <jaragunde@igalia.com>
* *
*/ */
public class Material extends BaseEntity implements Comparable { public class Material extends IntegrationEntity implements Comparable {
@NotEmpty(message = "code not specified") @NotEmpty(message = "code not specified")
private String code; private String code;
@ -146,4 +146,9 @@ public class Material extends BaseEntity implements Comparable {
} }
} }
@Override
protected IMaterialDAO getIntegrationEntityDAO() {
return Registry.getMaterialDAO();
}
} }

View file

@ -26,10 +26,12 @@ import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.hibernate.validator.AssertTrue; import org.hibernate.validator.AssertTrue;
import org.hibernate.validator.NotEmpty; import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.Valid; import org.hibernate.validator.Valid;
import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.common.IntegrationEntity;
import org.navalplanner.business.common.Registry; import org.navalplanner.business.common.Registry;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.materials.daos.IMaterialCategoryDAO; import org.navalplanner.business.materials.daos.IMaterialCategoryDAO;
@ -40,7 +42,7 @@ import org.navalplanner.business.materials.daos.IMaterialCategoryDAO;
* @author Jacobo Aragunde Perez <jaragunde@igalia.com> * @author Jacobo Aragunde Perez <jaragunde@igalia.com>
* *
*/ */
public class MaterialCategory extends BaseEntity { public class MaterialCategory extends IntegrationEntity {
public static List<Material> getAllMaterialsFrom( public static List<Material> getAllMaterialsFrom(
Collection<? extends MaterialCategory> categories) { Collection<? extends MaterialCategory> categories) {
@ -144,4 +146,26 @@ public class MaterialCategory extends BaseEntity {
} }
} }
public Material getMaterialByCode(String code)
throws InstanceNotFoundException {
if (StringUtils.isBlank(code)) {
throw new InstanceNotFoundException(code, Material.class.getName());
}
for (Material m : this.materials) {
if (m.getCode().equalsIgnoreCase(StringUtils.trim(code))) {
return m;
}
}
throw new InstanceNotFoundException(code, Material.class.getName());
}
@Override
protected IMaterialCategoryDAO getIntegrationEntityDAO() {
return Registry.getMaterialCategoryDAO();
}
} }

View file

@ -49,6 +49,8 @@
</id> </id>
<version name="version" access="property" type="long" /> <version name="version" access="property" type="long" />
<property name="code" access="property" not-null="true" unique="true"/>
<property name="name" /> <property name="name" />
<set name="subcategories" inverse="true" cascade="all-delete-orphan"> <set name="subcategories" inverse="true" cascade="all-delete-orphan">

View file

@ -109,6 +109,9 @@ public class OrderElementServiceTest {
@Resource @Resource
private IDataBootstrap materialCategoryBootstrap; private IDataBootstrap materialCategoryBootstrap;
@Resource
private IDataBootstrap unitTypeBootstrap;
@Resource @Resource
private IDataBootstrap criterionsBootstrap; private IDataBootstrap criterionsBootstrap;
@ -119,6 +122,7 @@ public class OrderElementServiceTest {
configurationBootstrap.loadRequiredData(); configurationBootstrap.loadRequiredData();
materialCategoryBootstrap.loadRequiredData(); materialCategoryBootstrap.loadRequiredData();
criterionsBootstrap.loadRequiredData(); criterionsBootstrap.loadRequiredData();
unitTypeBootstrap.loadRequiredData();
} }
@Autowired @Autowired
@ -471,7 +475,7 @@ public class OrderElementServiceTest {
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
.get(0).constraintViolations; .get(0).constraintViolations;
// Mandatory fields: material code // Mandatory fields: material code
assertThat(constraintViolations.size(), equalTo(1)); assertThat(constraintViolations.size(), equalTo(2));
assertThat(constraintViolations.get(0).fieldName, mustEnd("code")); assertThat(constraintViolations.get(0).fieldName, mustEnd("code"));
assertThat(orderDAO.getOrders().size(), equalTo(previous)); assertThat(orderDAO.getOrders().size(), equalTo(previous));