DesignServicesImpl sonar fixes 73/30473/3
authorJakub Dudycz <jakub.dudycz@nokia.com>
Tue, 6 Feb 2018 15:22:11 +0000 (16:22 +0100)
committerPatrick Brady <pb071s@att.com>
Wed, 7 Feb 2018 19:30:16 +0000 (19:30 +0000)
Change-Id: I55159c7b26463965c0d0bee147b4a5f808a6c55a
Issue-ID: APPC-571
Signed-off-by: Jakub Dudycz <jakub.dudycz@nokia.com>
appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/DesignServicesImpl.java
appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java [new file with mode: 0644]

index 0016a52..eb1594b 100644 (file)
 
 package org.onap.appc.design.services.impl;
 
+import com.google.common.util.concurrent.Futures;
 import java.util.concurrent.Future;
+import org.onap.appc.design.dbervices.DbResponseProcessor;
+import org.onap.appc.design.dbervices.DesignDBService;
+import org.onap.appc.design.services.util.DesignServiceConstants;
+import org.onap.appc.design.validator.ValidatorService;
+import org.onap.appc.design.xinterface.XInterfaceService;
+import org.onap.appc.design.xinterface.XResponseProcessor;
 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceInput;
 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceOutput;
 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceOutputBuilder;
@@ -39,121 +46,130 @@ import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.data.DataBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.status.StatusBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.onap.appc.design.dbervices.DbResponseProcessor;
-import org.onap.appc.design.dbervices.DesignDBService;
-import org.onap.appc.design.services.util.DesignServiceConstants;
-import org.onap.appc.design.validator.ValidatorResponseProcessor;
-import org.onap.appc.design.validator.ValidatorService;
-import org.onap.appc.design.xinterface.XInterfaceService;
-import org.onap.appc.design.xinterface.XResponseProcessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.util.concurrent.Futures;
-
 public class DesignServicesImpl implements DesignServicesService {
 
     private static final Logger log = LoggerFactory.getLogger(DesignServicesImpl.class);
+    private static final String RECEIVED_REQUEST_STR = "Received Request: ";
+    private static final String WITH_PAYLOAD_STR = " with Payload :";
+    private static final String ACTION_STR = " Action : ";
 
     @Override
     public Future<RpcResult<DbserviceOutput>> dbservice(DbserviceInput input) {
 
-        log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + 
-                input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload());
-        
-        
+        log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR +
+            input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload());
+
         DbserviceOutputBuilder outputBuilder = new DbserviceOutputBuilder();
         DataBuilder databuilder = new DataBuilder();
-        StatusBuilder statusBuilder = new StatusBuilder();    
+        StatusBuilder statusBuilder = new StatusBuilder();
 
-        try{
+        try {
             DesignDBService dbservices = DesignDBService.initialise();
-            DbResponseProcessor responseProcessor = new DbResponseProcessor();    
-            String response = responseProcessor.parseResponse(dbservices.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), input.getDesignRequest().getRequestId()), input.getDesignRequest().getAction());
+            DbResponseProcessor responseProcessor = new DbResponseProcessor();
+            String response = responseProcessor.parseResponse(dbservices
+                .execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(),
+                    input.getDesignRequest().getRequestId()), input.getDesignRequest().getAction());
             log.info("Response in for Design Service : " + response);
             databuilder.setBlock(response);
             databuilder.setRequestId(input.getDesignRequest().getRequestId());
             statusBuilder.setCode("400");
-            statusBuilder.setMessage("success");            
-        }
-        catch(Exception e){    
-            log.error("Error" + e.getMessage());
-            e.printStackTrace();
+            statusBuilder.setMessage("success");
+        } catch (Exception e) {
+            log.error("Error", e);
             statusBuilder.setCode("401");
-            statusBuilder.setMessage(e.getMessage());            
+            statusBuilder.setMessage(e.getMessage());
         }
 
         outputBuilder.setData(databuilder.build());
         outputBuilder.setStatus(statusBuilder.build());
 
-        RpcResult<DbserviceOutput> result  = RpcResultBuilder.<DbserviceOutput>status(true).withResult(outputBuilder.build()).build();
+        RpcResult<DbserviceOutput> result = RpcResultBuilder.<DbserviceOutput>status(true)
+            .withResult(outputBuilder.build()).build();
         return Futures.immediateFuture(result);
     }
 
     @Override
     public Future<RpcResult<XinterfaceserviceOutput>> xinterfaceservice(XinterfaceserviceInput input) {
-        log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + 
-                input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload());
+        log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR +
+            input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload());
         XinterfaceserviceOutputBuilder outputBuilder = new XinterfaceserviceOutputBuilder();
         DataBuilder databuilder = new DataBuilder();
-        StatusBuilder statusBuilder = new StatusBuilder();            
+        StatusBuilder statusBuilder = new StatusBuilder();
         try {
 
-            XInterfaceService xInterfaceService = new XInterfaceService();    
-            XResponseProcessor responseProcessor = new XResponseProcessor();        
-            String response = responseProcessor.parseResponse(xInterfaceService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload()), input.getDesignRequest().getAction());
+            XInterfaceService xInterfaceService = new XInterfaceService();
+            XResponseProcessor responseProcessor = new XResponseProcessor();
+            String response = responseProcessor.parseResponse(
+                xInterfaceService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload()),
+                input.getDesignRequest().getAction());
             databuilder.setBlock(response);
             databuilder.setRequestId(input.getDesignRequest().getRequestId());
             statusBuilder.setCode("400");
-            statusBuilder.setMessage("success");            
+            statusBuilder.setMessage("success");
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("An error occurred in xInterfaceService", e);
             statusBuilder.setCode("401");
-            statusBuilder.setMessage(e.getMessage());        
-        }        
+            statusBuilder.setMessage(e.getMessage());
+        }
         outputBuilder.setData(databuilder.build());
         outputBuilder.setStatus(statusBuilder.build());
 
-        RpcResult<XinterfaceserviceOutput> result  = RpcResultBuilder.<XinterfaceserviceOutput>status(true).withResult(outputBuilder.build()).build();
+        RpcResult<XinterfaceserviceOutput> result = RpcResultBuilder.<XinterfaceserviceOutput>status(true)
+            .withResult(outputBuilder.build()).build();
         return Futures.immediateFuture(result);
     }
 
     @Override
     public Future<RpcResult<ValidatorOutput>> validator(ValidatorInput input) {
-        log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + 
-                input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload() +  " and Data Type = " + input.getDesignRequest().getDataType());        
+        log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR +
+            input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload()
+            + " and Data Type = " + input.getDesignRequest().getDataType());
         ValidatorOutputBuilder outputBuilder = new ValidatorOutputBuilder();
-        StatusBuilder statusBuilder = new StatusBuilder();        
-        
-        
+        StatusBuilder statusBuilder = new StatusBuilder();
+
+        build(input, statusBuilder);
+
+        outputBuilder.setStatus(statusBuilder.build());
+
+        RpcResult<ValidatorOutput> result = RpcResultBuilder.<ValidatorOutput>status(true)
+            .withResult(outputBuilder.build()).build();
+        return Futures.immediateFuture(result);
+    }
+
+    private void build(ValidatorInput input, StatusBuilder statusBuilder) {
         try {
-            if(input.getDesignRequest().getDataType() == null || input.getDesignRequest().getDataType().isEmpty())                     
-                     throw new Exception ("Data Type required for validate Serivce");
-            if(input.getDesignRequest().getAction()== null || input.getDesignRequest().getAction().isEmpty())                     
-                 throw new Exception ("Action required for validate Serivce");
-            
-            
-            if(! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_JSON) && 
-                    ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_YAML) &&
-                    ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_XML) &&
-                    ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_VELOCITY))
-                throw new Exception ("Request Data format " + input.getDesignRequest().getDataType() 
-                        + " is not supported by validate Service : Supported data types are : XML, YAML, VELOCITY, JSON ");
-                        
-            ValidatorService validatorService = new ValidatorService();    
-            ValidatorResponseProcessor responseProcessor = new ValidatorResponseProcessor();        
-            String response = validatorService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), input.getDesignRequest().getDataType());
+            if (input.getDesignRequest().getDataType() == null || input.getDesignRequest().getDataType().isEmpty()) {
+                throw new RequestValidationException("Data Type required for validate Serivce");
+            }
+            if (input.getDesignRequest().getAction() == null || input.getDesignRequest().getAction().isEmpty()) {
+                throw new RequestValidationException("Action required for validate Serivce");
+            }
+
+            if (validateInput(input)) {
+                throw new RequestValidationException("Request Data format " + input.getDesignRequest().getDataType()
+                    + " is not supported by validate Service : Supported data types are : XML, YAML, VELOCITY, JSON ");
+            }
+
+            ValidatorService validatorService = new ValidatorService();
+            String response = validatorService
+                .execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(),
+                    input.getDesignRequest().getDataType());
             statusBuilder.setCode("400");
-            statusBuilder.setMessage(response);            
+            statusBuilder.setMessage(response);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("An error occurred in validator", e);
             statusBuilder.setCode("401");
-            statusBuilder.setMessage(e.getMessage());        
-        }        
-
-        outputBuilder.setStatus(statusBuilder.build());
+            statusBuilder.setMessage(e.getMessage());
+        }
+    }
 
-        RpcResult<ValidatorOutput> result  = RpcResultBuilder.<ValidatorOutput>status(true).withResult(outputBuilder.build()).build();
-        return Futures.immediateFuture(result);
+    private boolean validateInput(ValidatorInput input) {
+        return !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_JSON) &&
+            !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_YAML) &&
+            !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_XML) &&
+            !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_VELOCITY);
     }
 }
diff --git a/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java b/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java
new file mode 100644 (file)
index 0000000..0522463
--- /dev/null
@@ -0,0 +1,8 @@
+package org.onap.appc.design.services.impl;
+
+public class RequestValidationException extends Exception{
+
+    public RequestValidationException(String message) {
+        super(message);
+    }
+}