All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.tno.bim.mapping.services.MaterialMappingServiceImpl Maven / Gradle / Ivy

package nl.tno.bim.mapping.services;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import nl.tno.bim.mapping.controller.MappingSetController;
import nl.tno.bim.mapping.domain.MaterialMapping;
import nl.tno.bim.mapping.repositories.MappingSetRepository;
import nl.tno.bim.mapping.repositories.MaterialMappingRepository;

@Component
public class MaterialMappingServiceImpl implements MaterialMappingService {
    private final static Logger logger = LoggerFactory.getLogger(MappingSetController.class);

    private MaterialMappingRepository materialMappingRepository;

    @Autowired
    public void setMaterialMappingRepository(MappingSetRepository mappingSetRepository) {
        this.materialMappingRepository = materialMappingRepository;
    }

    @Override
    public MaterialMapping persistMaterialMapping(MaterialMapping materialMapping) {

        return materialMappingRepository.save(materialMapping);
    }

    @Override
    public MaterialMapping retrieveMaterialMappingById(Long id) {
        Optional optionalMaterialMapping = materialMappingRepository.findById(id);
        if (optionalMaterialMapping.isPresent()) {
            return optionalMaterialMapping.get();
        }
        return null;
    }

    @Override
    public List searchMaterialMapping(Long nmdProductId, String materialName) {
        List ms = new ArrayList<>();
        if (nmdProductId != null) {
            if (materialName != null) {
                ms = materialMappingRepository.findByNmdProductIdAndMaterialName(nmdProductId, materialName);
            } else {
                ms = materialMappingRepository.findByNmdProductId(nmdProductId);
            }
        } else {
            if (materialName != null) {
                ms = materialMappingRepository.findByMaterialName(materialName);
            } else {
                materialMappingRepository.findAll().iterator().forEachRemaining(ms::add);
            }
        }
        return ms;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy