Update ObjectParser API
[bgpcep.git] / pcep / spi / src / main / java / org / opendaylight / protocol / pcep / spi / pojo / AbstractPCEPExtensionProviderActivator.java
index 1a6d0118f688f1804dc6a34766825426259da971..5991ec68919a2a976a37bea5ae40c87a285aea5f 100644 (file)
@@ -7,45 +7,51 @@
  */
 package org.opendaylight.protocol.pcep.spi.pojo;
 
-import java.util.List;
+import static java.util.Objects.requireNonNull;
 
+import com.google.common.base.Preconditions;
+import java.util.List;
 import javax.annotation.concurrent.GuardedBy;
-
 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Preconditions;
+public abstract class AbstractPCEPExtensionProviderActivator implements AutoCloseable, PCEPExtensionProviderActivator {
+    private static final Logger LOG = LoggerFactory.getLogger(AbstractPCEPExtensionProviderActivator.class);
 
-public abstract class AbstractPCEPExtensionProviderActivator implements PCEPExtensionProviderActivator {
-       private static final Logger LOG = LoggerFactory.getLogger(AbstractPCEPExtensionProviderActivator.class);
+    @GuardedBy("this")
+    private List<AutoCloseable> registrations;
 
-       @GuardedBy("this")
-       private List<AutoCloseable> registrations;
+    @GuardedBy("this")
+    protected abstract List<AutoCloseable> startImpl(PCEPExtensionProviderContext context);
 
-       @GuardedBy("this")
-       protected abstract List<AutoCloseable> startImpl(PCEPExtensionProviderContext context);
+    @Override
+    public final synchronized void start(final PCEPExtensionProviderContext context) {
+        Preconditions.checkState(this.registrations == null);
 
-       @Override
-       public final synchronized void start(final PCEPExtensionProviderContext context) {
-               Preconditions.checkState(this.registrations == null);
+        this.registrations = requireNonNull(startImpl(context));
+    }
 
-               this.registrations = Preconditions.checkNotNull(startImpl(context));
-       }
+    @Override
+    public final synchronized void stop() {
+        if (this.registrations == null) {
+            return;
+        }
 
-       @Override
-       public final synchronized void stop() {
-               Preconditions.checkState(this.registrations != null);
+        for (final AutoCloseable r : this.registrations) {
+            try {
+                r.close();
+            } catch (final Exception e) {
+                LOG.warn("Failed to close registration", e);
+            }
+        }
 
-               for (final AutoCloseable r : this.registrations) {
-                       try {
-                               r.close();
-                       } catch (final Exception e) {
-                               LOG.warn("Failed to close registration", e);
-                       }
-               }
+        this.registrations = null;
+    }
 
-               this.registrations = null;
-       }
+    @Override
+    public final void close() {
+        stop();
+    }
 }