implements DOMSchemaService, SchemaContextProvider, DOMYangTextSourceProvider, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(ScanningSchemaServiceProvider.class);
+ private final YangTextSchemaContextResolver contextResolver = YangTextSchemaContextResolver.create("global-bundle");
@GuardedBy("lock")
- private final ListenerRegistry<SchemaContextListener> listeners = new ListenerRegistry<>();
+ private final ListenerRegistry<SchemaContextListener> listeners = ListenerRegistry.create();
private final Object lock = new Object();
- private final YangTextSchemaContextResolver contextResolver = YangTextSchemaContextResolver.create("global-bundle");
public void tryToUpdateSchemaContext() {
synchronized (lock) {
}
public boolean hasListeners() {
- boolean hasListeners;
synchronized (lock) {
- if (Iterables.size(listeners.getListeners()) > 0) {
- hasListeners = true;
- } else {
- hasListeners = false;
- }
+ return !Iterables.isEmpty(listeners.getListeners());
}
- return hasListeners;
}
@Override
public ListenerRegistration<SchemaContextListener>
registerSchemaContextListener(final SchemaContextListener listener) {
synchronized (lock) {
- final Optional<SchemaContext> potentialCtx = contextResolver.getSchemaContext();
- if (potentialCtx.isPresent()) {
- listener.onGlobalContextUpdated(potentialCtx.get());
- }
+ contextResolver.getSchemaContext().ifPresent(listener::onGlobalContextUpdated);
return listeners.register(listener);
}
}
@Override
public void close() {
synchronized (lock) {
- for (final ListenerRegistration<SchemaContextListener> registration : listeners) {
- registration.close();
- }
+ listeners.forEach(ListenerRegistration::close);
}
}
}