import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMMountPoint;
import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult;
import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
validTopLevelNodeName(iid.getInstanceIdentifier(), payload);
validateListKeysEqualityInPayloadAndUri(payload);
- final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
- final EffectiveModelContext ref = mountPoint == null
- ? schemaContextHandler.get() : modelContext(mountPoint);
-
- final RestconfStrategy strategy = getRestconfStrategy(mountPoint);
- return PutDataTransactionUtil.putData(payload, ref, strategy, params);
+ final RestconfStrategy strategy = getRestconfStrategy(iid.getMountPoint());
+ return PutDataTransactionUtil.putData(payload, iid.getSchemaContext(), strategy, params);
}
@Override
@Override
public Response postData(final NormalizedNodePayload payload, final UriInfo uriInfo) {
requireNonNull(payload);
- if (payload.getInstanceIdentifierContext().getSchemaNode() instanceof ActionDefinition) {
+ final InstanceIdentifierContext iid = payload.getInstanceIdentifierContext();
+ if (iid.getSchemaNode() instanceof ActionDefinition) {
return invokeAction(payload);
}
final WriteDataParams params = QueryParams.newWriteDataParams(uriInfo);
- final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
- final RestconfStrategy strategy = getRestconfStrategy(mountPoint);
- return PostDataTransactionUtil.postData(uriInfo, payload, strategy, getSchemaContext(mountPoint), params);
+ final RestconfStrategy strategy = getRestconfStrategy(iid.getMountPoint());
+ return PostDataTransactionUtil.postData(uriInfo, payload, strategy, iid.getSchemaContext(), params);
}
@Override
@Override
public PatchStatusContext patchData(final PatchContext context, final UriInfo uriInfo) {
- final DOMMountPoint mountPoint = RestconfDocumentedException.throwIfNull(context,
+ final InstanceIdentifierContext iid = RestconfDocumentedException.throwIfNull(context,
ErrorType.PROTOCOL, ErrorTag.MALFORMED_MESSAGE, "No patch documented provided")
- .getInstanceIdentifierContext().getMountPoint();
- final RestconfStrategy strategy = getRestconfStrategy(mountPoint);
- return PatchDataTransactionUtil.patchData(context, strategy, getSchemaContext(mountPoint));
+ .getInstanceIdentifierContext();
+ final RestconfStrategy strategy = getRestconfStrategy(iid.getMountPoint());
+ return PatchDataTransactionUtil.patchData(context, strategy, iid.getSchemaContext());
}
@Override
validTopLevelNodeName(iid.getInstanceIdentifier(), payload);
validateListKeysEqualityInPayloadAndUri(payload);
- final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
- final EffectiveModelContext ref = mountPoint == null
- ? schemaContextHandler.get() : modelContext(mountPoint);
- final RestconfStrategy strategy = getRestconfStrategy(mountPoint);
-
- return PlainPatchDataTransactionUtil.patchData(payload, strategy, ref);
- }
-
- private EffectiveModelContext getSchemaContext(final DOMMountPoint mountPoint) {
- return mountPoint == null ? schemaContextHandler.get() : modelContext(mountPoint);
+ final RestconfStrategy strategy = getRestconfStrategy(iid.getMountPoint());
+ return PlainPatchDataTransactionUtil.patchData(payload, strategy, iid.getSchemaContext());
}
// FIXME: why is this synchronized?
}
}
}
-
- private static EffectiveModelContext modelContext(final DOMMountPoint mountPoint) {
- return mountPoint.getService(DOMSchemaService.class)
- .flatMap(svc -> Optional.ofNullable(svc.getGlobalContext()))
- .orElse(null);
- }
}