2 * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
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
8 package org.opendaylight.netconf.client.mdsal.api;
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;
18 * A provider of {@link DeviceNetconfSchema}.
21 public interface DeviceNetconfSchemaProvider {
23 ListenableFuture<DeviceNetconfSchema> deviceNetconfSchemaFor(RemoteDeviceId deviceId,
24 NetconfSessionPreferences sessionPreferences, NetconfRpcService deviceRpc, BaseNetconfSchema baseSchema,
25 // FIXME: this parameter should not be here
26 Executor processingExecutor);
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
32 // - netconf-topology-singleton lifecycle, which needs to be carefully examined
34 SchemaRepository repository();
37 SchemaSourceRegistry registry();
40 EffectiveModelContextFactory contextFactory();