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.AttributeRepository;
25 import org.apache.logging.log4j.catalog.jpa.model.AttributeModel;
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 AttributeServiceImpl extends AbstractPagingAndSortingService implements AttributeService {
37 private static final Logger LOGGER = LogManager.getLogger();
38
39 @Autowired
40 private AttributeRepository attributeRepository;
41
42 @Override
43 public List<AttributeModel> getAttributes() {
44 return attributeRepository.findAll();
45 }
46
47 @Override
48 public List<AttributeModel> getAttributes(String catalogId) {
49 return attributeRepository.findByCatalogId(catalogId);
50 }
51
52 @Override
53 public List<AttributeModel> getAttributes(int startPage, int itemsPerPage, String sortColumn, String direction) {
54 Pageable pageable = createPageRequest(startPage, itemsPerPage, sortColumn, direction);
55 Page<AttributeModel> page = attributeRepository.findAll(pageable);
56 return page.getContent();
57 }
58
59 @Override
60 public List<AttributeModel> getAttributes(String catalogId, int startPage, int itemsPerPage, String sortColumn, String direction) {
61 Pageable pageable = createPageRequest(startPage, itemsPerPage, sortColumn, direction);
62 Page<AttributeModel> page = attributeRepository.findByCatalogId(catalogId, pageable);
63 return page.getContent();
64 }
65
66 @Override
67 public Optional<AttributeModel> getAttribute(String catalogId, String attributeName) {
68 return attributeRepository.findByCatalogIdAndName(catalogId, attributeName);
69 }
70
71 @Override
72 public Optional<AttributeModel> getAttribute(Long attributeId) {
73 return attributeRepository.findOne(attributeId);
74 }
75
76 @Override
77 public AttributeModel saveAttribute(AttributeModel attribute) {
78 return attributeRepository.save(attribute);
79 }
80
81 @Override
82 public void deleteAttribute(Long attributeId) {
83 attributeRepository.deleteById(attributeId);
84 }
85 }