*/
package org.opendaylight.protocol.pcep.spi.pojo;
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
import java.util.List;
-
-import javax.annotation.concurrent.GuardedBy;
-
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.opendaylight.yangtools.concepts.Registration;
public abstract class AbstractPCEPExtensionProviderActivator implements AutoCloseable, PCEPExtensionProviderActivator {
- private static final Logger LOG = LoggerFactory.getLogger(AbstractPCEPExtensionProviderActivator.class);
-
@GuardedBy("this")
- private List<AutoCloseable> registrations;
+ private List<? extends Registration> registrations;
- @GuardedBy("this")
- protected abstract List<AutoCloseable> startImpl(PCEPExtensionProviderContext context);
+ @Holding("this")
+ protected abstract List<? extends Registration> startImpl(PCEPExtensionProviderContext context);
@Override
public final synchronized void start(final PCEPExtensionProviderContext context) {
- Preconditions.checkState(this.registrations == null);
+ checkState(this.registrations == null);
- this.registrations = Preconditions.checkNotNull(startImpl(context));
+ this.registrations = requireNonNull(startImpl(context));
}
@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);
- }
+ if (this.registrations == null) {
+ return;
}
+ this.registrations.forEach(Registration::close);
this.registrations = null;
}