Eliminate SchemaResourcesDTO
[netconf.git] / plugins / netconf-client-mdsal / src / main / java / org / opendaylight / netconf / client / mdsal / api / DeviceNetconfSchemaProvider.java
1 /*
2  * Copyright (c) 2024 PANTHEON.tech, s.r.o. 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.netconf.client.mdsal.api;
9
10 import com.google.common.util.concurrent.ListenableFuture;
11 import java.util.concurrent.Executor;
12 import org.eclipse.jdt.annotation.NonNullByDefault;
13 import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory;
14 import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository;
15 import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry;
16
17 /**
18  * A provider of {@link DeviceNetconfSchema}.
19  */
20 @NonNullByDefault
21 public interface DeviceNetconfSchemaProvider {
22
23     ListenableFuture<DeviceNetconfSchema> deviceNetconfSchemaFor(RemoteDeviceId deviceId,
24         NetconfSessionPreferences sessionPreferences, NetconfRpcService deviceRpc, BaseNetconfSchema baseSchema,
25         // FIXME: this parameter should not be here
26         Executor processingExecutor);
27
28     // FIXME: These support:
29     //        - external URL-based pre-registration of schema sources from topology, which should really be catered
30     //          through deviceNetconfSchemaFor() with the sources being registered only for the duration of schema
31     //          assembly
32     //        - netconf-topology-singleton lifecycle, which needs to be carefully examined
33     @Deprecated
34     SchemaRepository repository();
35
36     @Deprecated
37     SchemaSourceRegistry registry();
38
39     @Deprecated
40     EffectiveModelContextFactory contextFactory();
41 }