summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java')
-rw-r--r--src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java292
1 files changed, 0 insertions, 292 deletions
diff --git a/src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java b/src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java
deleted file mode 100644
index d763efe..0000000
--- a/src/main/java/org/onap/aai/sparky/viewandinspect/services/VisualizationTransformer.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2018 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-package org.onap.aai.sparky.viewandinspect.services;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.onap.aai.cl.api.Logger;
-import org.onap.aai.cl.eelf.LoggerFactory;
-import org.onap.aai.sparky.logging.AaiUiMsgs;
-import org.onap.aai.sparky.subscription.config.SubscriptionConfig;
-import org.onap.aai.sparky.util.ConfigHelper;
-import org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs;
-import org.onap.aai.sparky.viewandinspect.entity.ActiveInventoryNode;
-import org.onap.aai.sparky.viewandinspect.entity.D3VisualizationOutput;
-import org.onap.aai.sparky.viewandinspect.entity.GraphMeta;
-import org.onap.aai.sparky.viewandinspect.entity.SparkyGraphNode;
-import org.onap.aai.sparky.viewandinspect.entity.SparkyGraphLink;
-import org.onap.aai.sparky.viewandinspect.entity.NodeDebug;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
-
-/**
- * The idea here is to receive a collection of graphs and then fold them together (or not) based on
- * configuration. The first goal will be to fold all like-resources together, but the choice of
- * folding could/should be configurable, and will simply change the degree of link based nodes when
- * we generate the Node-Array and Link-Array output.
- *
- * @author DAVEA
- *
- */
-
-public class VisualizationTransformer {
-
- private static final Logger LOG = LoggerFactory.getInstance().getLogger(
- VisualizationTransformer.class);
-
- List<SparkyGraphNode> flatNodeArray = new ArrayList<SparkyGraphNode>();
-
- /*
- * Maybe this isn't a string but Json-Model objects that we will convert to final string
- * representation when we dump the node-array and link-array collections the post-data blob in the
- * HttpServletResponse.
- */
-
- List<SparkyGraphLink> linkArrayOutput = new ArrayList<SparkyGraphLink>();
-
- private VisualizationConfigs visualizationConfigs;
- private SubscriptionConfig subConfig;
-
- /**
- * Instantiates a new visualization transformer.
- *
- * @throws Exception the exception
- */
- public VisualizationTransformer(VisualizationConfigs visualizationConfigs,
- SubscriptionConfig subConfig) throws Exception {
- this.visualizationConfigs = visualizationConfigs;
- this.subConfig = subConfig;
- }
-
-
- /**
- * Log optime.
- *
- * @param method the method
- * @param startTimeInMs the start time in ms
- */
- private void logOptime(String method, long startTimeInMs) {
- LOG.info(AaiUiMsgs.OPERATION_TIME, method,
- String.valueOf((System.currentTimeMillis() - startTimeInMs)));
- }
-
- /**
- * Adds the search target attributes to root node.
- */
- public void addSearchTargetAttributesToRootNode() {
-
- for (SparkyGraphNode n : flatNodeArray) {
- if (n.isRootNode()) {
- n.getNodeMeta().setSearchTarget(true);
- n.getNodeMeta().setClassName(this.visualizationConfigs.getSelectedSearchedNodeClassName());
- }
-
- }
-
- }
-
- /**
- * Generate visualization output.
- *
- * @param preProcessingOpTimeInMs the pre processing op time in ms
- * @param graphMeta the graph meta
- * @return the d 3 visualization output
- * @throws JsonProcessingException the json processing exception
- * @throws IOException Signals that an I/O exception has occurred.
- */
-
- public D3VisualizationOutput generateVisualizationOutput(long preProcessingOpTimeInMs,
- GraphMeta graphMeta) throws JsonProcessingException, IOException {
-
- long opStartTimeInMs = System.currentTimeMillis();
-
- /*
- * iterate over the flat collection, and only add the graph nodes to the graph node collection
- */
-
- D3VisualizationOutput output = new D3VisualizationOutput();
-
- output.setGraphMeta(graphMeta);
-
- for (SparkyGraphNode n : flatNodeArray) {
- if ( n.getItemType()!= null) {
- output.pegCounter(n.getItemType());
- }
- }
-
- output.addNodes(flatNodeArray);
- output.addLinks(linkArrayOutput);
-
- int numNodes = flatNodeArray.size();
- int numLinks = linkArrayOutput.size();
-
- LOG.info(AaiUiMsgs.VISUALIZATION_GRAPH_OUTPUT, String.valueOf(numNodes),
- String.valueOf(numLinks));
-
- if (numLinks < (numNodes - 1)) {
- LOG.warn(AaiUiMsgs.DANGLING_NODE_WARNING, String.valueOf(numLinks),
- String.valueOf(numNodes));
- }
-
- ObjectMapper mapper = new ObjectMapper();
-
- final String fileContent = ConfigHelper.getFileContents(
- System.getProperty("AJSC_HOME") + this.visualizationConfigs.getAaiEntityNodeDescriptors());
- com.fasterxml.jackson.databind.JsonNode aaiEntityNodeDefinitions = mapper.readTree(fileContent);
- graphMeta.setAaiEntityNodeDescriptors(aaiEntityNodeDefinitions);
-
- graphMeta.setNumLinks(linkArrayOutput.size());
- graphMeta.setNumNodes(flatNodeArray.size());
- graphMeta.setRenderTimeInMs(preProcessingOpTimeInMs);
-
- output.setGraphMeta(graphMeta);
-
- logOptime("generateVisualizationOutput()", opStartTimeInMs);
-
- return output;
- }
-
- /**
- * Convert visualization output to json.
- *
- * @param output the output
- * @return the string
- * @throws JsonProcessingException the json processing exception
- */
- public String convertVisualizationOutputToJson(D3VisualizationOutput output)
- throws JsonProcessingException {
-
- if (output == null) {
- return null;
- }
-
- ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
-
- return ow.writeValueAsString(output);
-
- }
-
- /**
- * Builds the links from graph collection.
- *
- * @param nodeMap the node map
- */
- public void buildLinksFromGraphCollection(Map<String, ActiveInventoryNode> nodeMap) {
-
- for (ActiveInventoryNode ain : nodeMap.values()) {
-
- /*
- * This one is a little bit different, when we iterate over the collection we only want to
- * draw the links for node that are less than the max traversal depth. We want to only draw
- * links at a depth of n-1 because we are basing the links on the outbound neighbors from the
- * current node.
- */
-
- if (ain.getNodeDepth() < this.visualizationConfigs.getMaxSelfLinkTraversalDepth()) {
-
- Collection<String> outboundNeighbors = ain.getOutboundNeighbors();
-
- for (String outboundNeighbor : outboundNeighbors) {
-
- SparkyGraphLink nodeLink = new SparkyGraphLink();
-
- nodeLink.setId(UUID.randomUUID().toString());
- nodeLink.setSource(ain.getNodeId());
- nodeLink.setTarget(outboundNeighbor);
-
- linkArrayOutput.add(nodeLink);
-
- }
-
- Collection<String> inboundNeighbors = ain.getInboundNeighbors();
-
- for (String inboundNeighbor : inboundNeighbors) {
-
- SparkyGraphLink nodeLink = new SparkyGraphLink();
-
- nodeLink.setId(UUID.randomUUID().toString());
- nodeLink.setSource(ain.getNodeId());
- nodeLink.setTarget(inboundNeighbor);
-
- linkArrayOutput.add(nodeLink);
-
- }
-
-
- } else {
- if (LOG.isDebugEnabled()) {
- LOG.debug(AaiUiMsgs.DEBUG_GENERIC, "buildLinks(),"
- + " Filtering node = " + ain.getNodeId() + " @ depth = "
- + ain.getNodeDepth());
- }
-
- }
- }
-
- }
-
- /**
- * Builds the flat node array from graph collection.
- *
- * @param nodeMap the node map
- */
- /*
- * Recursive function to walk multi-graph nodes and children to build a folded resource target
- * graph.
- */
- public void buildFlatNodeArrayFromGraphCollection(Map<String, ActiveInventoryNode> nodeMap) {
-
- for (ActiveInventoryNode n : nodeMap.values()) {
-
- if (n.getNodeDepth() <= this.visualizationConfigs.getMaxSelfLinkTraversalDepth()) {
-
- SparkyGraphNode jsonNode = new SparkyGraphNode(n, this.visualizationConfigs, this.subConfig);
-
- jsonNode.getNodeMeta().setClassName(this.visualizationConfigs.getGeneralNodeClassName());
-
- if (this.visualizationConfigs.isVisualizationDebugEnabled()) {
-
- NodeDebug nodeDebug = jsonNode.getNodeMeta().getNodeDebug();
-
- if (nodeDebug != null) {
- nodeDebug.setProcessingError(n.isProcessingErrorOccurred());
- nodeDebug.setProcessingErrorCauses(n.getProcessingErrorCauses());
- }
- }
- flatNodeArray.add(jsonNode);
- } else {
- if (LOG.isDebugEnabled()) {
- LOG.debug(AaiUiMsgs.DEBUG_GENERIC,
- "Filtering node from visualization: " + n.getNodeId() + " @ depth = "
- + n.getNodeDepth());
- }
- }
- }
- }
-
-}