X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-rest%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Frest%2Fcontroller%2FNetworkCmProxyController.java;h=3d771b6c511106b87519b66f00fc178f45775cb3;hb=be21595d53636e2c9b912bfbe8dfdefb81edc70f;hp=fccfb712a5580e0b340c47b50ce4c24ccae53643;hpb=700cd212bb0fdf012c2bdc7c51012daf4ecce9d7;p=cps.git diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java old mode 100644 new mode 100755 index fccfb712a..3d771b6c5 --- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java +++ b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java @@ -21,52 +21,103 @@ package org.onap.cps.ncmp.rest.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import java.util.Collection; import javax.validation.Valid; +import javax.validation.constraints.NotNull; import org.onap.cps.ncmp.api.NetworkCmProxyDataService; +import org.onap.cps.ncmp.api.models.DmiPluginRegistration; import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; +import org.onap.cps.ncmp.rest.model.RestDmiPluginRegistration; import org.onap.cps.spi.FetchDescendantsOption; import org.onap.cps.spi.model.DataNode; import org.onap.cps.utils.DataMapUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - @RestController @RequestMapping("${rest.api.ncmp-base-path}") public class NetworkCmProxyController implements NetworkCmProxyApi { private static final Gson GSON = new GsonBuilder().create(); - private static final String XPATH_ROOT = "/"; - @Autowired - private NetworkCmProxyDataService networkCmProxyDataService; + private final NetworkCmProxyDataService networkCmProxyDataService; + + private final ObjectMapper objectMapper; + + /** + * Constructor Injection for Dependencies. + * @param networkCmProxyDataService Data Service Interface + * @param objectMapper Object Mapper + */ + public NetworkCmProxyController(final NetworkCmProxyDataService networkCmProxyDataService, + final ObjectMapper objectMapper) { + this.networkCmProxyDataService = networkCmProxyDataService; + this.objectMapper = objectMapper; + } + /** + * Create Node. + * @deprecated This Method is no longer used as part of NCMP. + */ @Override - public ResponseEntity createNode(final String jsonData, final String cmHandle, - final String parentNodeXpath) { + @Deprecated(forRemoval = false) + public ResponseEntity createNode(final String cmHandle, @Valid final String jsonData, + @Valid final String parentNodeXpath) { networkCmProxyDataService.createDataNode(cmHandle, parentNodeXpath, jsonData); return new ResponseEntity<>(HttpStatus.CREATED); } + /** + * Add List-node Child Element. + * @deprecated This Method is no longer used as part of NCMP. + */ + @Override + @Deprecated(forRemoval = false) + public ResponseEntity addListNodeElements(@NotNull @Valid final String parentNodeXpath, + final String cmHandle, @Valid final String jsonData) { + networkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, jsonData); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + /** + * Get Node By CM Handle and X-Path. + * @deprecated This Method is no longer used as part of NCMP. + */ @Override + @Deprecated(forRemoval = false) public ResponseEntity getNodeByCmHandleAndXpath(final String cmHandle, @Valid final String xpath, @Valid final Boolean includeDescendants) { - if (XPATH_ROOT.equals(xpath)) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants) ? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS; - final DataNode dataNode = networkCmProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption); + final var dataNode = networkCmProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption); return new ResponseEntity<>(DataMapUtils.toDataMap(dataNode), HttpStatus.OK); } + /** + * Update DMI Plugin Registration (used for first registration also). + * @param restDmiPluginRegistration the registration data + */ + @Override + public ResponseEntity updateDmiPluginRegistration( + final @Valid RestDmiPluginRegistration restDmiPluginRegistration) { + final DmiPluginRegistration dmiPluginRegistration = + convertRestObjectToJavaApiObject(restDmiPluginRegistration); + networkCmProxyDataService.updateDmiPluginRegistration(dmiPluginRegistration); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + /** + * Query Data Nodes. + * @deprecated This Method is no longer used as part of NCMP. + */ @Override + @Deprecated(forRemoval = false) public ResponseEntity queryNodesByCmHandleAndCpsPath(final String cmHandle, @Valid final String cpsPath, @Valid final Boolean includeDescendants) { final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants) @@ -76,17 +127,34 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { return new ResponseEntity<>(GSON.toJson(dataNodes), HttpStatus.OK); } + /** + * Replace Node With Descendants. + * @deprecated This Method is no longer used as part of NCMP. + */ @Override - public ResponseEntity replaceNode(@Valid final String jsonData, final String cmHandle, + @Deprecated(forRemoval = false) + public ResponseEntity replaceNode(final String cmHandle, @Valid final String jsonData, @Valid final String parentNodeXpath) { networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, jsonData); return new ResponseEntity<>(HttpStatus.OK); } + /** + * Update Node Leaves. + * @deprecated This Method is no longer used as part of NCMP. + */ @Override - public ResponseEntity updateNodeLeaves(@Valid final String jsonData, final String cmHandle, + @Deprecated(forRemoval = false) + public ResponseEntity updateNodeLeaves(final String cmHandle, @Valid final String jsonData, @Valid final String parentNodeXpath) { networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, jsonData); return new ResponseEntity<>(HttpStatus.OK); } + + + private DmiPluginRegistration convertRestObjectToJavaApiObject( + final RestDmiPluginRegistration restDmiPluginRegistration) { + return objectMapper.convertValue(restDmiPluginRegistration, DmiPluginRegistration.class); + } + }