Search in sources :

Example 6 with Node

use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.

the class ResultDAGConverter method addMetadataSecurityNodeWithAttributes.

public static List<String> addMetadataSecurityNodeWithAttributes(DirectedAcyclicGraph<Node, Edge> graph, Node productNode, Metacard metacard, ORB orb, String parentAttrName, List<String> resultAttributes) {
    List<String> addedAttributes = new ArrayList<>();
    Any any = orb.create_any();
    Node metadataSecurityNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_METADATA_SECURITY, any);
    graph.addVertex(metadataSecurityNode);
    graph.addEdge(productNode, metadataSecurityNode);
    String attribute = parentAttrName + NsiliConstants.NSIL_METADATA_SECURITY;
    boolean classificationAdded = isClassificationAdded(graph, metacard, orb, resultAttributes, addedAttributes, metadataSecurityNode, attribute);
    addPolicyAttributes(graph, metacard, orb, resultAttributes, addedAttributes, metadataSecurityNode, attribute);
    addReleasabilityAttributes(graph, metacard, orb, resultAttributes, addedAttributes, metadataSecurityNode, attribute);
    addClassificationAttributes(graph, orb, addedAttributes, metadataSecurityNode, attribute, classificationAdded);
    return addedAttributes;
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) ArrayList(java.util.ArrayList) Any(org.omg.CORBA.Any)

Example 7 with Node

use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.

the class ResultDAGConverter method addIntegerAttribute.

public static void addIntegerAttribute(DirectedAcyclicGraph<Node, Edge> graph, Node parentNode, String key, Integer integer, ORB orb) {
    Any any = orb.create_any();
    any.insert_ulong(integer);
    Node node = new Node(0, NodeType.ATTRIBUTE_NODE, key, any);
    graph.addVertex(node);
    graph.addEdge(parentNode, node);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Any(org.omg.CORBA.Any)

Example 8 with Node

use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.

the class ResultDAGConverter method addParts.

public static List<String> addParts(DirectedAcyclicGraph<Node, Edge> graph, Node productNode, Metacard metacard, ORB orb, String parentAttrName, List<String> resultAttributes) {
    List<String> addedAttributes = new ArrayList<>();
    Any any = orb.create_any();
    Node partNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_PART, any);
    graph.addVertex(partNode);
    graph.addEdge(productNode, partNode);
    String attribute = parentAttrName + NsiliConstants.NSIL_PART;
    String type = NsiliProductType.DOCUMENT.getSpecName();
    String partIdentifier = "1";
    if (shouldAdd(buildAttr(attribute, NsiliConstants.PART_IDENTIFIER), resultAttributes)) {
        addStringAttribute(graph, partNode, NsiliConstants.PART_IDENTIFIER, partIdentifier, orb);
        addedAttributes.add(buildAttr(attribute, NsiliConstants.PART_IDENTIFIER));
    }
    addedAttributes.addAll(addSecurityNodeWithAttributes(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    addedAttributes.addAll(addCoverageNodeWithAttributes(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    Attribute typeAttr = metacard.getAttribute(Core.DATATYPE);
    if (typeAttr != null) {
        type = getType(String.valueOf(typeAttr.getValue()));
    }
    if (type.equalsIgnoreCase(NsiliProductType.IMAGERY.getSpecName())) {
        addedAttributes.addAll(addImageryPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.VIDEO.getSpecName())) {
        addedAttributes.addAll(addVideoPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.TDL_DATA.getSpecName())) {
        addedAttributes.addAll(addTdlPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.GMTI.getSpecName())) {
        addedAttributes.addAll(addGmtiPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.REPORT.getSpecName())) {
        addedAttributes.addAll(addReportPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.RFI.getSpecName())) {
        addedAttributes.addAll(addRfiPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    } else if (type.equalsIgnoreCase(NsiliProductType.TASK.getSpecName())) {
        addedAttributes.addAll(addTaskPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    }
    addedAttributes.addAll(addExploitationInfoPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    addedAttributes.addAll(addCbrnPart(graph, partNode, metacard, orb, attribute + ":", resultAttributes));
    addedAttributes.addAll(addCommonNodeWithAttributes(graph, partNode, metacard, type, orb, attribute + ":", resultAttributes));
    return addedAttributes;
}
Also used : Attribute(ddf.catalog.data.Attribute) Node(org.codice.alliance.nsili.common.UCO.Node) ArrayList(java.util.ArrayList) Any(org.omg.CORBA.Any)

Example 9 with Node

use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.

the class ResultDAGConverter method addAnyAttribute.

public static void addAnyAttribute(DirectedAcyclicGraph<Node, Edge> graph, Node parentNode, String key, Any any, ORB orb) {
    Node node = new Node(0, NodeType.ATTRIBUTE_NODE, key, any);
    graph.addVertex(node);
    graph.addEdge(parentNode, node);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node)

Example 10 with Node

use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.

the class ResultDAGConverter method getNodeEdgeDirectedAcyclicGraph.

private static DirectedAcyclicGraph<Node, Edge> getNodeEdgeDirectedAcyclicGraph(DAG dag, Map<Integer, Node> nodeMap) {
    DirectedAcyclicGraph<Node, Edge> graph = new DirectedAcyclicGraph<>(Edge.class);
    for (Node node : dag.nodes) {
        graph.addVertex(node);
    }
    for (Edge edge : dag.edges) {
        Node node1 = nodeMap.get(edge.start_node);
        Node node2 = nodeMap.get(edge.end_node);
        if (node1 != null && node2 != null) {
            graph.addEdge(node1, node2);
        }
    }
    return graph;
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Edge(org.codice.alliance.nsili.common.UCO.Edge) DirectedAcyclicGraph(org.jgrapht.experimental.dag.DirectedAcyclicGraph)

Aggregations

Node (org.codice.alliance.nsili.common.UCO.Node)109 Any (org.omg.CORBA.Any)61 Edge (org.codice.alliance.nsili.common.UCO.Edge)31 ArrayList (java.util.ArrayList)23 DirectedAcyclicGraph (org.jgrapht.experimental.dag.DirectedAcyclicGraph)23 MetacardImpl (ddf.catalog.data.impl.MetacardImpl)21 DAG (org.codice.alliance.nsili.common.UCO.DAG)21 Test (org.junit.Test)20 File (java.io.File)12 IOException (java.io.IOException)12 PrintStream (java.io.PrintStream)11 DepthFirstIterator (org.jgrapht.traverse.DepthFirstIterator)6 Attribute (ddf.catalog.data.Attribute)5 URI (java.net.URI)2 URISyntaxException (java.net.URISyntaxException)2 Metacard (ddf.catalog.data.Metacard)1 AttributeImpl (ddf.catalog.data.impl.AttributeImpl)1 BufferedInputStream (java.io.BufferedInputStream)1 FileOutputStream (java.io.FileOutputStream)1 Serializable (java.io.Serializable)1