Package com.pcbje.maltegoimporter.receiver.impl

Source Code of com.pcbje.maltegoimporter.receiver.impl.ListArrayReceiver

package com.pcbje.maltegoimporter.receiver.impl;

import java.util.ArrayList;
import java.util.List;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import com.pcbje.maltegoimporter.model.EdgeModel;
import com.pcbje.maltegoimporter.model.GraphModel;
import com.pcbje.maltegoimporter.model.NodeModel;
import com.pcbje.maltegoimporter.model.impl.MaltegoEdgeModel;
import com.pcbje.maltegoimporter.model.impl.MaltegoGraphModel;
import com.pcbje.maltegoimporter.model.impl.MaltegoNodeModel;
import com.pcbje.maltegoimporter.receiver.Receiver;

/**
* Class for receiving a list of string arrays, parsing it, and returning a
* GraphML object that, when converted to a string can be copied and pasted into
* Maltego.
*
* @author pcbje
*/
public class ListArrayReceiver implements Receiver<List<String[]>> {
  private static int NODE_A_TYPE = 0;
  private static int NODE_A_VALUE = 1;
  private static int NODE_B_TYPE = 2;
  private static int NODE_B_VALUE = 3;
  private static int EDGE_LABEL = 4;

  /**
   * {@inheritDoc}
   */
  public Element receive(Document doc, List<String[]> data) {

    List<NodeModel> nodes = new ArrayList<NodeModel>();
    List<EdgeModel> edges = new ArrayList<EdgeModel>();

    for (String[] record : data) {
      if (record.length != 5 && record.length != 4) {
        throw new RuntimeException("Invalid data format.");
      }
                       
                        String label = "";
                       
                        if (record.length == 5) {
                            label = record[EDGE_LABEL];
                        }

      NodeModel source = new MaltegoNodeModel(record[NODE_A_TYPE],
          record[NODE_A_VALUE]);
      NodeModel target = new MaltegoNodeModel(record[NODE_B_TYPE],
          record[NODE_B_VALUE]);
      EdgeModel edge = new MaltegoEdgeModel(source, target,
          label);

      nodes.add(source);
      nodes.add(target);
      edges.add(edge);
    }

    GraphModel graph = new MaltegoGraphModel();

    for (NodeModel node : nodes) {
      graph.addNode(node);
    }

    for (EdgeModel edge : edges) {
      graph.addEdge(edge);
    }

    return graph.getGraphML(doc);
  }

}
TOP

Related Classes of com.pcbje.maltegoimporter.receiver.impl.ListArrayReceiver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.