import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.opendaylight.mdsal.dom.api.DOMMountPoint;
import org.opendaylight.mdsal.dom.api.DOMMountPointListener;
import org.opendaylight.mdsal.dom.api.DOMMountPointService;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
import org.opendaylight.netconf.sal.rest.doc.impl.BaseYangSwaggerGenerator;
import org.opendaylight.netconf.sal.rest.doc.impl.DefinitionNames;
import org.opendaylight.netconf.sal.rest.doc.swagger.CommonApiObject;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.slf4j.Logger;
public Map<String, Long> getInstanceIdentifiers() {
final Map<String, Long> urlToId = new HashMap<>();
- synchronized (this.lock) {
- final SchemaContext context = this.globalSchema.getGlobalContext();
- for (final Entry<YangInstanceIdentifier, Long> entry : this.instanceIdToLongId.entrySet()) {
+ synchronized (lock) {
+ final SchemaContext context = globalSchema.getGlobalContext();
+ for (final Entry<YangInstanceIdentifier, Long> entry : instanceIdToLongId.entrySet()) {
final String modName = findModuleName(entry.getKey(), context);
urlToId.put(swaggerGenerator.generateUrlPrefixFromInstanceID(entry.getKey(), modName),
entry.getValue());
}
private String getYangMountUrl(final YangInstanceIdentifier key) {
- final String modName = findModuleName(key, this.globalSchema.getGlobalContext());
+ final String modName = findModuleName(key, globalSchema.getGlobalContext());
return swaggerGenerator.generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
}
private YangInstanceIdentifier getInstanceId(final Long id) {
final YangInstanceIdentifier instanceId;
- synchronized (this.lock) {
- instanceId = this.longIdToInstanceId.get(id);
+ synchronized (lock) {
+ instanceId = longIdToInstanceId.get(id);
}
return instanceId;
}
- private SchemaContext getSchemaContext(final YangInstanceIdentifier id) {
+ private EffectiveModelContext getSchemaContext(final YangInstanceIdentifier id) {
if (id == null) {
return null;
}
checkState(mountService != null);
- final Optional<DOMMountPoint> mountPoint = this.mountService.getMountPoint(id);
- if (mountPoint.isEmpty()) {
- return null;
- }
-
- final SchemaContext context = mountPoint.get().getSchemaContext();
- return context;
+ return mountService.getMountPoint(id)
+ .flatMap(mountPoint -> mountPoint.getService(DOMSchemaService.class))
+ .flatMap(svc -> Optional.ofNullable(svc.getGlobalContext()))
+ .orElse(null);
}
public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final String module,
- final String revision, final URIType uriType, final OAversion oaversion) {
+ final String revision, final OAversion oaversion) {
final YangInstanceIdentifier iid = getInstanceId(id);
- final SchemaContext context = getSchemaContext(iid);
+ final EffectiveModelContext context = getSchemaContext(iid);
final String urlPrefix = getYangMountUrl(iid);
final String deviceName = extractDeviceName(iid);
return generateDataStoreApiDoc(uriInfo, urlPrefix, deviceName);
}
final SwaggerObject swaggerObject = swaggerGenerator.getApiDeclaration(module, revision, uriInfo, context,
- urlPrefix, uriType, oaversion);
+ urlPrefix, oaversion);
return BaseYangSwaggerGenerator.getAppropriateDoc(swaggerObject, oaversion);
}
public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final Optional<Integer> pageNum,
- final URIType uriType, final OAversion oaversion) {
+ final OAversion oaversion) {
final YangInstanceIdentifier iid = getInstanceId(id);
- final SchemaContext context = getSchemaContext(iid);
+ final EffectiveModelContext context = getSchemaContext(iid);
final String urlPrefix = getYangMountUrl(iid);
final String deviceName = extractDeviceName(iid);
final SwaggerObject doc;
final SwaggerObject swaggerObject = swaggerGenerator.getAllModulesDoc(uriInfo, range, context,
- Optional.of(deviceName), urlPrefix, definitionNames, uriType, oaversion);
+ Optional.of(deviceName), urlPrefix, definitionNames, oaversion);
if (includeDataStore) {
doc = generateDataStoreApiDoc(uriInfo, urlPrefix, deviceName);
@Override
public void onMountPointCreated(final YangInstanceIdentifier path) {
- synchronized (this.lock) {
+ synchronized (lock) {
LOG.debug("Mount point {} created", path);
- final Long idLong = this.idKey.incrementAndGet();
- this.instanceIdToLongId.put(path, idLong);
- this.longIdToInstanceId.put(idLong, path);
+ final Long idLong = idKey.incrementAndGet();
+ instanceIdToLongId.put(path, idLong);
+ longIdToInstanceId.put(idLong, path);
}
}
@Override
public void onMountPointRemoved(final YangInstanceIdentifier path) {
- synchronized (this.lock) {
+ synchronized (lock) {
LOG.debug("Mount point {} removed", path);
- final Long id = this.instanceIdToLongId.remove(path);
- this.longIdToInstanceId.remove(id);
+ final Long id = instanceIdToLongId.remove(path);
+ longIdToInstanceId.remove(id);
}
}
}