Fix Sonar complains
[oam/nf-oam-adopter.git] / ves-nf-oam-adopter / ves-nf-oam-adopter-snmp-manager / src / main / java / org / o / ran / oam / nf / oam / adopter / snmp / manager / SnmpManagerImpl.java
1 /*
2  *  ============LICENSE_START=======================================================
3  *  O-RAN-SC
4  *  ================================================================================
5  *  Copyright © 2021 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.o.ran.oam.nf.oam.adopter.snmp.manager;
21
22 import javax.annotation.PostConstruct;
23 import org.o.ran.oam.nf.oam.adopter.api.VesEventNotifier;
24 import org.o.ran.oam.nf.oam.adopter.snmp.manager.api.TimeZoneOffsetService;
25 import org.o.ran.oam.nf.oam.adopter.snmp.manager.mapper.SnmpMapper;
26
27 public class SnmpManagerImpl implements AutoCloseable {
28     private static final String SNMP_MANAGER_THREAD = "SnmpManager";
29     private final Thread snmpThread;
30
31     /**
32      * Default constructor.
33      */
34     public SnmpManagerImpl(final String host, final int port, final SnmpMapper mapper,
35             final VesEventNotifier vesEventNotifier, final TimeZoneOffsetService timeZoneOffsetService) {
36         final var trapListener = new SnmpTrapListener(host, port, mapper, vesEventNotifier, timeZoneOffsetService);
37         this.snmpThread = new Thread(trapListener, SNMP_MANAGER_THREAD);
38     }
39
40     @PostConstruct
41     public void init() {
42         snmpThread.start();
43     }
44
45     @Override
46     public void close() {
47         snmpThread.interrupt();
48     }
49 }