1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.catalog.jpa.service;
18
19 import java.util.List;
20 import java.util.Optional;
21
22 import org.apache.logging.log4j.LogManager;
23 import org.apache.logging.log4j.Logger;
24 import org.apache.logging.log4j.catalog.jpa.dao.CategoryRepository;
25 import org.apache.logging.log4j.catalog.jpa.model.CategoryModel;
26 import org.springframework.beans.factory.annotation.Autowired;
27 import org.springframework.data.domain.Page;
28 import org.springframework.data.domain.Pageable;
29 import org.springframework.stereotype.Repository;
30 import org.springframework.stereotype.Service;
31 import org.springframework.transaction.annotation.Transactional;
32
33 @Service
34 @Repository
35 @Transactional
36 public class CategoryServiceImpl extends AbstractPagingAndSortingService implements CategoryService {
37 private static final Logger LOGGER = LogManager.getLogger();
38
39 @Autowired
40 private CategoryRepository categoryRepository;
41
42 @Override
43 public List<CategoryModel> getCategories() {
44 return categoryRepository.findAll();
45 }
46
47 @Override
48 public List<CategoryModel> getCategories(String catalogId) {
49 return categoryRepository.findByCatalogId(catalogId);
50 }
51
52 @Override
53 public List<CategoryModel> getCategories(int startPage, int itemsPerPage, String sortColumn, String direction) {
54 Pageable pageable = createPageRequest(startPage, itemsPerPage, sortColumn, direction);
55 Page<CategoryModel> page = categoryRepository.findAll(pageable);
56 return page.getContent();
57 }
58
59 @Override
60 public List<CategoryModel> getCategories(String catalogId, int startPage, int itemsPerPage, String sortColumn,
61 String direction) {
62 Pageable pageable = createPageRequest(startPage, itemsPerPage, sortColumn, direction);
63 Page<CategoryModel> page = categoryRepository.findByCatalogId(catalogId, pageable);
64 return page.getContent();
65 }
66
67 @Override
68 public Optional<CategoryModel> getCategory(Long categoryId) {
69 return categoryRepository.findOne(categoryId);
70 }
71
72 @Override
73 public Optional<CategoryModel> getCategory(String catalogId, String name) {
74 return categoryRepository.findByCatalogIdAndName(catalogId, name);
75 }
76
77 @Override
78 public CategoryModel saveCategory(CategoryModel category) {
79 return categoryRepository.save(category);
80 }
81
82 @Override
83 public void deleteCategory(Long categoryId) {
84 categoryRepository.deleteById(categoryId);
85 }
86 }