summaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/yangDecoder/base/MockSchemaService.java
blob: f869a3c60030d20373d38a4eb7b09f7f6f0716f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package org.openecomp.mso.yangDecoder.base;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.util.ListenerRegistry;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;

public final class MockSchemaService implements DOMSchemaService, SchemaContextProvider {

    private SchemaContext schemaContext;

    ListenerRegistry<SchemaContextListener> listeners = ListenerRegistry.create();

    @Override
    public synchronized SchemaContext getGlobalContext() {
        return schemaContext;
    }

    @Override
    public synchronized SchemaContext getSessionContext() {
        return schemaContext;
    }

    @Override
    public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(
            final SchemaContextListener listener) {
        return listeners.register(listener);
    }

    @Override
    public synchronized SchemaContext getSchemaContext() {
        return schemaContext;
    }

    public synchronized void changeSchema(final SchemaContext newContext) {
        schemaContext = newContext;
        for (ListenerRegistration<SchemaContextListener> listener : listeners) {
            listener.getInstance().onGlobalContextUpdated(schemaContext);
        }
    }
}