Projects >> mes >>6c63bdd27356aee63067fa7a0a94a957e56e9dd3

Chunk
Conflicting content
        GridDefinition gridDefinition = new GridDefinition("substituteComponents");

        FieldDefinition fieldProduct = createFieldDefinition("product",
<<<<<<< HEAD
                fieldTypeFactory.belongsToType("products.product", "name", "name", "number"));
=======
                fieldTypeFactory.belongsToType("products.product", "name"));
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        FieldDefinition fieldSubstitute = createFieldDefinition("substitute",
                fieldTypeFactory.belongsToType("products.substitute", "name"));
        FieldDefinition fieldQuantity = createFieldDefinition("quantity", fieldTypeFactory.decimalType());
Solution content
        GridDefinition gridDefinition = new GridDefinition("substituteComponents");

        FieldDefinition fieldProduct = createFieldDefinition("product",
<<<<<<< HEAD
                fieldTypeFactory.belongsToType("products.product", "name", "name", "number"));
=======
                fieldTypeFactory.belongsToType("products.product", "name"));
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        FieldDefinition fieldSubstitute = createFieldDefinition("substitute",
                fieldTypeFactory.belongsToType("products.substitute", "name"));
        FieldDefinition fieldQuantity = createFieldDefinition("quantity", fieldTypeFactory.decimalType());
File
DataDefinitionServiceImpl.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
        dataDefinition.setFields(Arrays.asList(new FieldDefinition[] { fieldProduct, fieldSubstitute, fieldQuantity }));

        ColumnDefinition columnSubstituteNumber = createColumnDefinition("number", fieldProduct, "${product.number}");
<<<<<<< HEAD
        ColumnDefinition columnProductName = createColumnDefinition("name", fieldProduct, "${product.name");
=======
        ColumnDefinition columnProductName = createColumnDefinition("name", fieldProduct, "${product.name}");
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        ColumnDefinition columnQuantity = createColumnDefinition("quantity", fieldQuantity, null);
        gridDefinition.setColumns(Arrays.asList(new ColumnDefinition[] { columnSubstituteNumber, columnProductName,
                columnQuantity }));
Solution content
        dataDefinition.setFields(Arrays.asList(new FieldDefinition[] { fieldProduct, fieldSubstitute, fieldQuantity }));

        ColumnDefinition columnSubstituteNumber = createColumnDefinition("number", fieldProduct, "${product.number}");
<<<<<<< HEAD
        ColumnDefinition columnProductName = createColumnDefinition("name", fieldProduct, "${product.name");
=======
        ColumnDefinition columnProductName = createColumnDefinition("name", fieldProduct, "${product.name}");
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        ColumnDefinition columnQuantity = createColumnDefinition("quantity", fieldQuantity, null);
        gridDefinition.setColumns(Arrays.asList(new ColumnDefinition[] { columnSubstituteNumber, columnProductName,
                columnQuantity }));
File
DataDefinitionServiceImpl.java
Developer's decision
Manual
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
public class ProductsModifyController {

<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
    private DataDefinitionService dataDefinitionService;

    private DataAccessService dataAccessService;
Solution content
    private DataAccessService dataAccessService;
public class ProductsModifyController {

    private DataDefinitionService dataDefinitionService;
File
ProductsModifyController.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
            mav.setViewName("addModifyEntity");

            DataDefinition dataDefinition = dataDefinitionService.get("products.product");
<<<<<<< HEAD
            DataDefinition dataDefinition2 = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = dataDefinition2.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);
            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map lists = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();

                }
            }
=======

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58

            if (entityId != null && !entityId.equals("")) {
                mav.addObject("entityId", entityId);
Solution content
            mav.setViewName("addModifyEntity");

            DataDefinition dataDefinition = dataDefinitionService.get("products.product");

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);

            if (entityId != null && !entityId.equals("")) {
                mav.addObject("entityId", entityId);
File
ProductsModifyController.java
Developer's decision
Version 2
Kind of conflict
For statement
Method invocation
Variable
Chunk
Conflicting content
                mav.addObject("entity", entity.getFields());
            }

<<<<<<< HEAD
            logger.info(" ----------- ");
            ResultSet rs = dataAccessService.find("products.substituteComponent",
                    SearchCriteriaBuilder.forEntity("products.substituteComponent").build());
            logger.info(" -> " + rs.getTotalNumberOfEntities());
            logger.info(" -> " + ((Entity) rs.getResults().get(0).getField("product")).getField("name"));
            logger.info(" -> " + rs.getResults().get(0).getField("product.name"));
            logger.info(" ----------- ");

=======
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
            return mav;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException(e);
Solution content
                mav.addObject("entity", entity.getFields());
            }

            return mav;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException(e);
File
ProductsModifyController.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
        DataDefinition dataDefinition = dataDefinitionService.get("products.product");
        List fieldsDefinition = dataDefinition.getFields();
<<<<<<< HEAD
=======

>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        ModelAndView mav = new ModelAndView();
        if (checkFields(entity, fieldsDefinition, mav)) {
            String message = "";
Solution content
        DataDefinition dataDefinition = dataDefinitionService.get("products.product");
        List fieldsDefinition = dataDefinition.getFields();

        ModelAndView mav = new ModelAndView();
        if (checkFields(entity, fieldsDefinition, mav)) {
            String message = "";
File
ProductsModifyController.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
            return new ModelAndView("redirect:list.html?message=" + message);
        } else {

<<<<<<< HEAD
=======
            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
            mav.setViewName("addModifyEntity");
            mav.addObject("message", "fullFillFields");
            mav.addObject("entity", entity.getFields());
Solution content
            return new ModelAndView("redirect:list.html?message=" + message);
        } else {

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);
            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
            mav.setViewName("addModifyEntity");
            mav.addObject("message", "fullFillFields");
            mav.addObject("entity", entity.getFields());
File
ProductsModifyController.java
Developer's decision
Version 2
Kind of conflict
For statement
Method invocation
Variable
Chunk
Conflicting content
        return result;
    }
<<<<<<< HEAD
=======
	private DataDefinitionService dataDefinitionService;

	private DataAccessService dataAccessService;

	private Logger logger = LoggerFactory
			.getLogger(ProductsModifyController.class);

	@Autowired
	public ProductsModifyController(
			DataDefinitionService dataDefinitionService,
			DataAccessService dataAccessService) {
		this.dataAccessService = dataAccessService;
		this.dataDefinitionService = dataDefinitionService;
		logger.info("constructor - " + dataDefinitionService);
	}

	@RequestMapping(value = "/products/addModifyEntityForm", method = RequestMethod.GET)
	public ModelAndView addModifyEntityForm(
			@RequestParam(required = false) String entityId) {
		try {
			ModelAndView mav = new ModelAndView();
			mav.setViewName("addModifyEntity");

			DataDefinition dataDefinition = dataDefinitionService
					.get("products.product");
			DataDefinition dataDefinition2 = dataDefinitionService
					.get("products.substitute");
			GridDefinition substituteGridDefinition = dataDefinition2
					.getGrids().get(0);
			mav.addObject("substituteGridDefinition", substituteGridDefinition);
			List fieldsDefinition = dataDefinition.getFields();
			mav.addObject("fieldsDefinition", fieldsDefinition);
			Map> lists = new HashMap>();
			Map fieldsTypes = new HashMap();
			for (FieldDefinition fieldDef : fieldsDefinition) {
				fieldsTypes.put(fieldDef.getName(), fieldDef.getType()
						.getNumericType());
				if (fieldDef.getType().getNumericType() == 4
						|| fieldDef.getType().getNumericType() == 5) {
					EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef
							.getType();
					List options = enumeratedField.values();
					lists.put(fieldDef.getName(), options);
				}
			}
			mav.addObject("fieldsTypes", fieldsTypes);
			mav.addObject("lists", lists);

			if (entityId != null && !entityId.equals("")) {
				mav.addObject("entityId", entityId);
				Entity entity = dataAccessService.get("products.product",
						Long.parseLong(entityId));
				mav.addObject("entity", entity.getFields());
			}

			return mav;
		} catch (NumberFormatException e) {
			throw new IllegalArgumentException(e);
		}

	}

	@RequestMapping(value = "/products/addModifyEntity", method = RequestMethod.POST)
	public ModelAndView addModifyEntity(@ModelAttribute Entity entity) {

		DataDefinition dataDefinition = dataDefinitionService
				.get("products.product");
		List fieldsDefinition = dataDefinition.getFields();

		ModelAndView mav = new ModelAndView();
		if (checkFields(entity, fieldsDefinition, mav)) {
			String message = "";
			dataAccessService.save("products.product", entity);
			if (entity.getId() == null) {
				message = "added";
			} else {
				message = "modified";
			}
			return new ModelAndView("redirect:list.html?message=" + message);
		} else {

			DataDefinition dataDefinition2 = dataDefinitionService
					.get("products.substitute");
			GridDefinition substituteGridDefinition = dataDefinition2
					.getGrids().get(0);
			Map> lists = new HashMap>();
			Map fieldsTypes = new HashMap();
			for (FieldDefinition fieldDef : fieldsDefinition) {
				fieldsTypes.put(fieldDef.getName(), fieldDef.getType()
						.getNumericType());
				if (fieldDef.getType().getNumericType() == 4
						|| fieldDef.getType().getNumericType() == 5) {
					EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef
							.getType();
					List options = enumeratedField.values();
					lists.put(fieldDef.getName(), options);
				}
			}
			mav.addObject("fieldsTypes", fieldsTypes);
			mav.addObject("lists", lists);
			mav.setViewName("addModifyEntity");
			mav.addObject("message", "fullFillFields");
			mav.addObject("entity", entity.getFields());
			mav.addObject("fieldsDefinition", fieldsDefinition);
			mav.addObject("substituteGridDefinition", substituteGridDefinition);
			mav.addObject("entityId", entity.getId());
			return mav;
		}

	}

	public boolean checkFields(Entity entity,
			List fieldsDefinition, ModelAndView mav) {

		boolean result = true;
		Map fieldsValidationInfo = new HashMap();
		for (FieldDefinition field : fieldsDefinition) {
			String formField = (String) entity.getField(field.getName());
			if (formField == null || formField.equals("")) {

				String fieldValidationInfo = "requiredField";
				fieldsValidationInfo.put(field.getName(), fieldValidationInfo);
				result = false;
			}

		}
		mav.addObject("fieldsValidationInfo", fieldsValidationInfo);

		return result;
	}
>>>>>>> 9508c424f92c2e7c361b704151d0b243b7135fcd

}
=======
Solution content
        return result;
    }

}
File
ProductsModifyController.java
Developer's decision
Version 1
Kind of conflict
Other
Chunk
Conflicting content
            } else {
                message = "modified";
            }
@Controller
public class ProductsModifyController {

<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
    private DataDefinitionService dataDefinitionService;

    private DataAccessService dataAccessService;

    private Logger logger = LoggerFactory.getLogger(ProductsModifyController.class);

    @Autowired
    public ProductsModifyController(DataDefinitionService dataDefinitionService, DataAccessService dataAccessService) {
        this.dataAccessService = dataAccessService;
        this.dataDefinitionService = dataDefinitionService;
        logger.info("constructor - " + dataDefinitionService);
    }

    @RequestMapping(value = "/products/addModifyEntityForm", method = RequestMethod.GET)
    public ModelAndView addModifyEntityForm(@RequestParam(required = false) String entityId) {
        try {
            ModelAndView mav = new ModelAndView();
            mav.setViewName("addModifyEntity");

	}
            DataDefinition dataDefinition = dataDefinitionService.get("products.product");
<<<<<<< HEAD
            DataDefinition dataDefinition2 = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = dataDefinition2.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);
            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map lists = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();

                }
            }
=======

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58

            if (entityId != null && !entityId.equals("")) {
                mav.addObject("entityId", entityId);
                Entity entity = dataAccessService.get("products.product", Long.parseLong(entityId));
                mav.addObject("entity", entity.getFields());
            }

<<<<<<< HEAD
            logger.info(" ----------- ");
            ResultSet rs = dataAccessService.find("products.substituteComponent",
                    SearchCriteriaBuilder.forEntity("products.substituteComponent").build());
            logger.info(" -> " + rs.getTotalNumberOfEntities());
            logger.info(" -> " + ((Entity) rs.getResults().get(0).getField("product")).getField("name"));
            logger.info(" -> " + rs.getResults().get(0).getField("product.name"));
            logger.info(" ----------- ");

=======
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
            return mav;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException(e);
        }

    }

    @RequestMapping(value = "/products/addModifyEntity", method = RequestMethod.POST)
    public ModelAndView addModifyEntity(@ModelAttribute Entity entity) {

        DataDefinition dataDefinition = dataDefinitionService.get("products.product");
        List fieldsDefinition = dataDefinition.getFields();
<<<<<<< HEAD
=======

>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
        ModelAndView mav = new ModelAndView();
        if (checkFields(entity, fieldsDefinition, mav)) {
            String message = "";
            dataAccessService.save("products.product", entity);
            if (entity.getId() == null) {
                message = "added";
            return new ModelAndView("redirect:list.html?message=" + message);
        } else {

<<<<<<< HEAD
=======
            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
            mav.setViewName("addModifyEntity");
            mav.addObject("message", "fullFillFields");
            mav.addObject("entity", entity.getFields());
            mav.addObject("fieldsDefinition", fieldsDefinition);
            mav.addObject("entityId", entity.getId());
            return mav;
        }

    }

    public boolean checkFields(Entity entity, List fieldsDefinition, ModelAndView mav) {

        boolean result = true;
        Map fieldsValidationInfo = new HashMap();
        for (FieldDefinition field : fieldsDefinition) {
            String formField = (String) entity.getField(field.getName());
            if (formField == null || formField.equals("")) {

                String fieldValidationInfo = "requiredField";
                fieldsValidationInfo.put(field.getName(), fieldValidationInfo);
                result = false;
            }

        }
        mav.addObject("fieldsValidationInfo", fieldsValidationInfo);

        return result;
    }
<<<<<<< HEAD
=======
	private DataDefinitionService dataDefinitionService;

	private DataAccessService dataAccessService;

	private Logger logger = LoggerFactory
			.getLogger(ProductsModifyController.class);

	@Autowired
	public ProductsModifyController(
			DataDefinitionService dataDefinitionService,
			DataAccessService dataAccessService) {
		this.dataAccessService = dataAccessService;
		this.dataDefinitionService = dataDefinitionService;
		logger.info("constructor - " + dataDefinitionService);
	}

	@RequestMapping(value = "/products/addModifyEntityForm", method = RequestMethod.GET)
	public ModelAndView addModifyEntityForm(
			@RequestParam(required = false) String entityId) {
		try {
			ModelAndView mav = new ModelAndView();
			mav.setViewName("addModifyEntity");

			DataDefinition dataDefinition = dataDefinitionService
					.get("products.product");
			DataDefinition dataDefinition2 = dataDefinitionService
					.get("products.substitute");
			GridDefinition substituteGridDefinition = dataDefinition2
					.getGrids().get(0);
			mav.addObject("substituteGridDefinition", substituteGridDefinition);
			List fieldsDefinition = dataDefinition.getFields();
			mav.addObject("fieldsDefinition", fieldsDefinition);
>>>>>>> 9508c424f92c2e7c361b704151d0b243b7135fcd
			Map> lists = new HashMap>();
			Map fieldsTypes = new HashMap();
			for (FieldDefinition fieldDef : fieldsDefinition) {
				fieldsTypes.put(fieldDef.getName(), fieldDef.getType()
						.getNumericType());
				if (fieldDef.getType().getNumericType() == 4
						|| fieldDef.getType().getNumericType() == 5) {
					EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef
							.getType();
					List options = enumeratedField.values();
					lists.put(fieldDef.getName(), options);
				}
			}
			mav.addObject("fieldsTypes", fieldsTypes);
			mav.addObject("lists", lists);

			if (entityId != null && !entityId.equals("")) {
				mav.addObject("entityId", entityId);
				Entity entity = dataAccessService.get("products.product",
						Long.parseLong(entityId));
				mav.addObject("entity", entity.getFields());
			}

			return mav;
		} catch (NumberFormatException e) {
			throw new IllegalArgumentException(e);
		}

	}

	@RequestMapping(value = "/products/addModifyEntity", method = RequestMethod.POST)
	public ModelAndView addModifyEntity(@ModelAttribute Entity entity) {

		DataDefinition dataDefinition = dataDefinitionService
				.get("products.product");
		List fieldsDefinition = dataDefinition.getFields();

		ModelAndView mav = new ModelAndView();
		if (checkFields(entity, fieldsDefinition, mav)) {
			String message = "";
			dataAccessService.save("products.product", entity);
			if (entity.getId() == null) {
				message = "added";
			} else {
				message = "modified";
			}
			return new ModelAndView("redirect:list.html?message=" + message);
		} else {

			DataDefinition dataDefinition2 = dataDefinitionService
					.get("products.substitute");
			GridDefinition substituteGridDefinition = dataDefinition2
					.getGrids().get(0);
			Map> lists = new HashMap>();
			Map fieldsTypes = new HashMap();
			for (FieldDefinition fieldDef : fieldsDefinition) {
				fieldsTypes.put(fieldDef.getName(), fieldDef.getType()
						.getNumericType());
				if (fieldDef.getType().getNumericType() == 4
						|| fieldDef.getType().getNumericType() == 5) {
					EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef
							.getType();
					List options = enumeratedField.values();
					lists.put(fieldDef.getName(), options);
				}
			}
			mav.addObject("fieldsTypes", fieldsTypes);
			mav.addObject("lists", lists);
			mav.setViewName("addModifyEntity");
			mav.addObject("message", "fullFillFields");
			mav.addObject("entity", entity.getFields());
			mav.addObject("fieldsDefinition", fieldsDefinition);
			mav.addObject("substituteGridDefinition", substituteGridDefinition);
			mav.addObject("entityId", entity.getId());
			return mav;
		}

	}

	public boolean checkFields(Entity entity,
			List fieldsDefinition, ModelAndView mav) {

		boolean result = true;
		Map fieldsValidationInfo = new HashMap();
		for (FieldDefinition field : fieldsDefinition) {
			String formField = (String) entity.getField(field.getName());
			if (formField == null || formField.equals("")) {

				String fieldValidationInfo = "requiredField";
				fieldsValidationInfo.put(field.getName(), fieldValidationInfo);
				result = false;
			}

		}
		mav.addObject("fieldsValidationInfo", fieldsValidationInfo);

		return result;

}
=======

}
>>>>>>> 3e45392f0eca004c3677f8250ee998b422a17a58
Solution content
    }

@Controller
public class ProductsModifyController {

    private DataDefinitionService dataDefinitionService;

    private DataAccessService dataAccessService;

    private Logger logger = LoggerFactory.getLogger(ProductsModifyController.class);

    @Autowired
    public ProductsModifyController(DataDefinitionService dataDefinitionService, DataAccessService dataAccessService) {
        this.dataAccessService = dataAccessService;
        this.dataDefinitionService = dataDefinitionService;
        logger.info("constructor - " + dataDefinitionService);
    }

    @RequestMapping(value = "/products/addModifyEntityForm", method = RequestMethod.GET)
    public ModelAndView addModifyEntityForm(@RequestParam(required = false) String entityId) {
        try {
            ModelAndView mav = new ModelAndView();
            mav.setViewName("addModifyEntity");

            DataDefinition dataDefinition = dataDefinitionService.get("products.product");

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            List fieldsDefinition = dataDefinition.getFields();
            mav.addObject("fieldsDefinition", fieldsDefinition);
            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);

            if (entityId != null && !entityId.equals("")) {
                mav.addObject("entityId", entityId);
                Entity entity = dataAccessService.get("products.product", Long.parseLong(entityId));
                mav.addObject("entity", entity.getFields());
            }

            return mav;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException(e);
        }
    @RequestMapping(value = "/products/addModifyEntity", method = RequestMethod.POST)
    public ModelAndView addModifyEntity(@ModelAttribute Entity entity) {

        DataDefinition dataDefinition = dataDefinitionService.get("products.product");
        List fieldsDefinition = dataDefinition.getFields();

        ModelAndView mav = new ModelAndView();
        if (checkFields(entity, fieldsDefinition, mav)) {
            String message = "";
            dataAccessService.save("products.product", entity);
            if (entity.getId() == null) {
                message = "added";
            } else {
                message = "modified";
            }
            return new ModelAndView("redirect:list.html?message=" + message);
        } else {

            DataDefinition substituteDataDefinition = dataDefinitionService.get("products.substitute");
            GridDefinition substituteGridDefinition = substituteDataDefinition.getGrids().get(0);
            mav.addObject("substituteGridDefinition", substituteGridDefinition);

            DataDefinition substituteComponentDataDefinition = dataDefinitionService.get("products.substituteComponent");
            GridDefinition substituteComponentGridDefinition = substituteComponentDataDefinition.getGrids().get(0);
            mav.addObject("substituteComponentGridDefinition", substituteComponentGridDefinition);

            Map> lists = new HashMap>();
            Map fieldsTypes = new HashMap();
            for (FieldDefinition fieldDef : fieldsDefinition) {
                fieldsTypes.put(fieldDef.getName(), fieldDef.getType().getNumericType());
                if (fieldDef.getType().getNumericType() == 4 || fieldDef.getType().getNumericType() == 5) {
                    EnumeratedFieldType enumeratedField = (EnumeratedFieldType) fieldDef.getType();
                    List options = enumeratedField.values();
                    lists.put(fieldDef.getName(), options);
                }
            }
            mav.addObject("fieldsTypes", fieldsTypes);
            mav.addObject("lists", lists);
            mav.setViewName("addModifyEntity");
            mav.addObject("message", "fullFillFields");
            mav.addObject("entity", entity.getFields());
            mav.addObject("fieldsDefinition", fieldsDefinition);
            mav.addObject("entityId", entity.getId());
            return mav;
        }

    }

    public boolean checkFields(Entity entity, List fieldsDefinition, ModelAndView mav) {

        boolean result = true;
        Map fieldsValidationInfo = new HashMap();
        for (FieldDefinition field : fieldsDefinition) {
            String formField = (String) entity.getField(field.getName());
            if (formField == null || formField.equals("")) {

                String fieldValidationInfo = "requiredField";
                fieldsValidationInfo.put(field.getName(), fieldValidationInfo);
                result = false;
            }

        }
        mav.addObject("fieldsValidationInfo", fieldsValidationInfo);

        return result;
    }

}
File
ProductsModifyController.java
Developer's decision
Combination
Kind of conflict
Other