Explorar o código

SelectedCensusService

Andrew Grant hai 7 meses
pai
achega
4495e1011d

+ 37 - 0
src/main/java/scot/carricksoftware/grants/services/census/census/SelectedCensusService.java

@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.services.census.census;
+
+import org.springframework.stereotype.Service;
+import scot.carricksoftware.grants.commands.census.CensusCommand;
+import scot.carricksoftware.grants.domains.census.Census;
+
+import java.util.List;
+
+@Service
+public interface SelectedCensusService {
+
+    @SuppressWarnings("unused")
+    Census findById(Long id);
+
+    @SuppressWarnings({"unused", "UnusedReturnValue"})
+    Census save(Census census);
+
+    @SuppressWarnings("unused")
+    void deleteById(Long id);
+
+    @SuppressWarnings("unused")
+    List<Census> getPagedCensuses(int pageNumber);
+
+    @SuppressWarnings("unused")
+    long count();
+
+    @SuppressWarnings("unused")
+    CensusCommand saveCensusCommand(CensusCommand censusCommand);
+
+    @SuppressWarnings("unused")
+    List<Census> findAll();
+}

+ 104 - 0
src/main/java/scot/carricksoftware/grants/services/census/census/SelectedCensusServiceImpl.java

@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.services.census.census;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import scot.carricksoftware.grants.commands.census.CensusCommand;
+import scot.carricksoftware.grants.constants.ApplicationConstants;
+import scot.carricksoftware.grants.converters.census.CensusCommandConverterImpl;
+import scot.carricksoftware.grants.converters.census.CensusConverterImpl;
+import scot.carricksoftware.grants.domains.census.Census;
+import scot.carricksoftware.grants.repositories.census.CensusRepository;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class SelectedCensusServiceImpl implements SelectedCensusService {
+    private static final Logger logger = LogManager.getLogger(SelectedCensusServiceImpl.class);
+
+    @SuppressWarnings({"unused"})
+    private final CensusRepository censusRepository;
+    private final CensusConverterImpl censusConverterImpl;
+    private final CensusCommandConverterImpl censusCommandConverterImpl;
+
+    public SelectedCensusServiceImpl(
+            CensusRepository censusRepository,
+            CensusConverterImpl censusConverterImpl,
+            CensusCommandConverterImpl censusCommandConverterImpl) {
+
+        this.censusRepository = censusRepository;
+        this.censusConverterImpl = censusConverterImpl;
+        this.censusCommandConverterImpl = censusCommandConverterImpl;
+    }
+
+
+    @Override
+    public Census findById(Long id) {
+        logger.debug("CensusServiceImpl::findById");
+        Optional<Census> census = censusRepository.findById(id);
+        return census.orElse(null);
+    }
+
+    @Override
+    public Census save(Census census) {
+        logger.debug("CensusServiceImpl::save");
+        return censusRepository.save(census);
+    }
+
+    @Override
+    public void deleteById(Long id) {
+        logger.debug("CensusServiceImpl::deleteBy");
+        censusRepository.deleteById(id);
+    }
+
+
+    @Override
+    public List<Census> getPagedCensuses(int pageNumber) {
+        logger.debug("CensusServiceImpl::getPagedCountries");
+        Pageable paging = PageRequest.of(pageNumber, ApplicationConstants.DEFAULT_PAGE_SIZE, getSort());
+        Page<Census> pagedResult = censusRepository.findAll(paging);
+        return pagedResult.getContent();
+    }
+
+    private Sort getSort() {
+        return Sort.by(Sort.Direction.ASC, "id");
+    }
+
+    @Override
+    public long count() {
+        logger.debug("CensusServiceImpl::count");
+        return censusRepository.count();
+    }
+
+    @Transactional
+    @Override
+    public CensusCommand saveCensusCommand(CensusCommand censusCommand) {
+        logger.debug("CensusServiceImpl::saveCensusCommand");
+        Census census = censusCommandConverterImpl.convert(censusCommand);
+        Census savedCensus = censusRepository.save(census);
+        return censusConverterImpl.convert(savedCensus);
+
+    }
+
+    @Override
+    public List<Census> findAll() {
+        logger.debug("CensusServiceImpl::findAll");
+        List<Census> result = new ArrayList<>();
+        Iterable<Census> censusIterable = censusRepository.findAll();
+        censusIterable.forEach(result::add);
+        return result;
+    }
+
+}