Bug 5403 - Support yang-library schema resolution
[netconf.git] / restconf / sal-rest-connector / src / main / java / org / opendaylight / restconf / rest / services / impl / Draft11ServicesWrapperImpl.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.restconf.rest.services.impl;
9
10 import javax.ws.rs.core.UriInfo;
11 import org.opendaylight.netconf.md.sal.rest.schema.SchemaExportContext;
12 import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext;
13 import org.opendaylight.restconf.common.handlers.api.SchemaContextHandler;
14 import org.opendaylight.restconf.rest.handlers.api.DOMMountPointServiceHandler;
15 import org.opendaylight.restconf.rest.services.api.Draft11ServicesWrapper;
16 import org.opendaylight.restconf.rest.services.api.RestconfModulesService;
17 import org.opendaylight.restconf.rest.services.api.RestconfOperationsService;
18 import org.opendaylight.restconf.rest.services.api.RestconfSchemaService;
19 import org.opendaylight.restconf.rest.services.api.RestconfStreamsService;
20
21 /**
22  * Implementation of {@link Draft11ServicesWrapper}
23  *
24  */
25 public class Draft11ServicesWrapperImpl implements Draft11ServicesWrapper {
26
27     private RestconfModulesService delegRestModService;
28     private RestconfOperationsService delegRestOpsService;
29     private RestconfStreamsService delegRestStrsService;
30     private RestconfSchemaService delegRestSchService;
31
32     private Draft11ServicesWrapperImpl() {
33     }
34
35     @Override
36     public NormalizedNodeContext getModules(final UriInfo uriInfo) {
37         return this.delegRestModService.getModules(uriInfo);
38     }
39
40     @Override
41     public NormalizedNodeContext getModules(final String identifier, final UriInfo uriInfo) {
42         return this.delegRestModService.getModules(identifier, uriInfo);
43     }
44
45     @Override
46     public NormalizedNodeContext getModule(final String identifier, final UriInfo uriInfo) {
47         return this.delegRestModService.getModule(identifier, uriInfo);
48     }
49
50     @Override
51     public NormalizedNodeContext getOperations(final UriInfo uriInfo) {
52         return this.delegRestOpsService.getOperations(uriInfo);
53     }
54
55     @Override
56     public NormalizedNodeContext getOperations(final String identifier, final UriInfo uriInfo) {
57         return this.delegRestOpsService.getOperations(identifier, uriInfo);
58     }
59
60     @Override
61     public NormalizedNodeContext getAvailableStreams(final UriInfo uriInfo) {
62         return this.delegRestStrsService.getAvailableStreams(uriInfo);
63     }
64
65     @Override
66     public SchemaExportContext getSchema(final String mountAndModuleId) {
67         return this.delegRestSchService.getSchema(mountAndModuleId);
68     }
69
70     public static Draft11ServicesWrapperImpl getInstance() {
71         return InstanceHolder.INSTANCE;
72     }
73
74     private static class InstanceHolder {
75         public static final Draft11ServicesWrapperImpl INSTANCE = new Draft11ServicesWrapperImpl();
76     }
77
78     public void setHandlers(final SchemaContextHandler schemaCtxHandler,
79             final DOMMountPointServiceHandler domMountPointServiceHandler) {
80         this.delegRestModService = new RestconfModulesServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
81         this.delegRestOpsService = new RestconfOperationsServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
82         this.delegRestSchService = new RestconfSchemaServiceImpl(schemaCtxHandler, domMountPointServiceHandler);
83         this.delegRestStrsService = new RestconfStreamsServiceImpl(schemaCtxHandler);
84     }
85
86 }