summaryrefslogtreecommitdiffstats
path: root/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java')
-rw-r--r--datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java b/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java
new file mode 100644
index 0000000..c30ff41
--- /dev/null
+++ b/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesPersisterSqlImpl.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2021 Samsung Electronics
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+
+package org.onap.rapp.datacollector.service;
+
+import java.util.List;
+import java.util.Optional;
+import org.onap.rapp.datacollector.entity.ves.Event;
+import org.onap.rapp.datacollector.entity.ves.EventAPI;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service("vesPersisterSqlImpl")
+@Transactional
+public class VesPersisterSqlImpl implements VesPersister {
+ private static final Logger logger = LoggerFactory.getLogger(VesPersisterSqlImpl.class);
+
+ private final SqlRepository repository;
+ private final SqlRepositoryAPI repositoryAPI;
+
+ @Autowired
+ public VesPersisterSqlImpl(SqlRepository repository, SqlRepositoryAPI repositoryAPI) {
+ this.repository = repository;
+ this.repositoryAPI = repositoryAPI;
+ }
+
+ @Override
+ public void persists(Event event) {
+ logger.debug("persisting event {}", event);
+ repository.save(event);
+ }
+
+ @Override
+ public List<EventAPI> findTopNVesEvent(int n) {
+ logger.debug("finding top {} events", n);
+ return repositoryAPI.findTopNVesEvent(n);
+ }
+
+ @Override
+ public List<EventAPI> findAll() {
+ logger.debug("finding all event");
+ return (List<EventAPI>)repositoryAPI.findAll();
+ }
+
+ @Override
+ public Optional<EventAPI> findById(Long id) {
+ logger.debug("finding event by id {}", id);
+ return repositoryAPI.findById(id);
+ }
+
+ @Override
+ public void create(Event event) {
+ logger.debug("creating event {}", event);
+ repository.save(event);
+ }
+
+ @Override
+ public void update(Event event, Long id) {
+ if (!repository.existsById(String.valueOf(id))) {
+ throw new RuntimeException("Event not found");
+ }
+ logger.debug("updating event {} by id {}", event, id);
+ repository.save(event);
+ }
+
+ @Override
+ public List<EventAPI> findEventsByTimeWindow(long startTime, long endTime) {
+ logger.debug("finding top {} events", startTime);
+ return repositoryAPI.findByLastEpochMicrosecBetweenOrderByLastEpochMicrosecAsc(startTime, endTime);
+ }
+}