BUG-1092: adjust to YangInstanceIdentifier
[controller.git] / opendaylight / md-sal / sal-dom-spi / src / main / java / org / opendaylight / controller / md / sal / dom / broker / spi / mount / SimpleDOMMountPoint.java
1 package org.opendaylight.controller.md.sal.dom.broker.spi.mount;
2
3 import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint;
4 import org.opendaylight.controller.md.sal.dom.api.DOMService;
5 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
6 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
7
8 import com.google.common.base.Optional;
9 import com.google.common.collect.ClassToInstanceMap;
10 import com.google.common.collect.ImmutableClassToInstanceMap;
11
12 public class SimpleDOMMountPoint implements DOMMountPoint {
13
14     private final YangInstanceIdentifier identifier;
15     private final ClassToInstanceMap<DOMService> services;
16     private final SchemaContext schemaContext;
17
18     public static final SimpleDOMMountPoint create(final YangInstanceIdentifier identifier, final ClassToInstanceMap<DOMService> services, final SchemaContext ctx) {
19         return new SimpleDOMMountPoint(identifier, services, ctx);
20     }
21     private SimpleDOMMountPoint(final YangInstanceIdentifier identifier, final ClassToInstanceMap<DOMService> services, final SchemaContext ctx) {
22         this.identifier = identifier;
23         this.services = ImmutableClassToInstanceMap.copyOf(services);
24         this.schemaContext = ctx;
25     }
26
27     @Override
28     public YangInstanceIdentifier getIdentifier() {
29         return identifier;
30     }
31
32     @Override
33     public SchemaContext getSchemaContext() {
34         return schemaContext;
35     }
36
37     @Override
38     public <T extends DOMService> Optional<T> getService(final Class<T> cls) {
39         return Optional.fromNullable(services.getInstance(cls));
40     }
41 }