+public class GenericResourceApiSvcLogicServiceClient {
+ static final String FAILURE_RESULT = "failure";
+ static final String SVC_LOGIC_STATUS_KEY = "SvcLogic.status";
+ static final String SKIP_MDSAL_UPDATE_PROP = "skip-mdsal-update";
+
+ // Next 2 fields protected so they can be overridden in jUnit without resorting to Java reflection
+ protected Logger LOG = LoggerFactory
+ .getLogger(GenericResourceApiSvcLogicServiceClient.class);
+ protected SvcLogicService svcLogic = null;
+
+ public GenericResourceApiSvcLogicServiceClient(SvcLogicService svcLogic)
+ {
+ this.svcLogic = svcLogic;
+ }
+
+ public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException
+ {
+ return svcLogic.hasGraph(module, rpc, version, mode);
+ }
+
+ public Properties execute(String module, String rpc, String version, String mode, ServiceDataBuilder serviceData)
+ throws SvcLogicException {
+ return execute(module, rpc, version, mode, serviceData, new Properties());
+ }
+
+ public Properties execute(String module, String rpc, String version, String mode, PreloadDataBuilder serviceData)
+ throws SvcLogicException {
+ return execute(module, rpc, version, mode, serviceData, new Properties());
+ }
+
+ public Properties execute(String module,
+ String rpc,
+ String version,
+ String mode,
+ ServiceDataBuilder serviceData,
+ Properties properties)
+ throws SvcLogicException {
+
+ Properties props = GenericResourceApiUtil.toProperties(properties, serviceData);
+ printPropsDebugLogs(props, "Parameters passed to SLI");
+
+ Properties respProps = svcLogic.execute(module, rpc, version, mode, props);
+ printPropsDebugLogs(respProps, "Parameters returned by SLI");
+ if (respProps == null
+ || FAILURE_RESULT.equalsIgnoreCase(respProps.getProperty(SVC_LOGIC_STATUS_KEY))) {
+ return respProps;
+ }
+
+ String skipMdsalUpdate = respProps.getProperty(SKIP_MDSAL_UPDATE_PROP);
+ if ((skipMdsalUpdate == null) || !skipMdsalUpdate.equals("Y")) {
+ GenericResourceApiUtil.toBuilder(respProps, serviceData);
+ } else {
+ LOG.debug("Skipping call to MdsalHelper.toBuilder");
+ }
+
+ return respProps;
+ }
+
+
+ public Properties execute(String module,
+ String rpc,
+ String version,
+ String mode,
+ PreloadDataBuilder serviceData,
+ Properties properties)
+ throws SvcLogicException {
+
+ Properties props = GenericResourceApiUtil.toProperties(properties, serviceData);
+ printPropsDebugLogs(props, "Parameters passed to SLI");
+
+ Properties respProps = svcLogic.execute(module, rpc, version, mode, props);
+ printPropsDebugLogs(respProps, "Parameters returned by SLI");
+ if (respProps == null
+ || FAILURE_RESULT.equalsIgnoreCase(respProps.getProperty(SVC_LOGIC_STATUS_KEY))) {
+ return (respProps);
+ }
+
+ GenericResourceApiUtil.toBuilder(respProps, serviceData);
+
+ return respProps;
+ }
+
+ public Properties execute(String module, String rpc, String version, String mode, Properties properties)