Search in sources :

Example 46 with Node

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

the class DAGConverterTest method addImageryNode.

private void addImageryNode(DirectedAcyclicGraph<Node, Edge> graph, Node parentNode) {
    Any imageryAny = orb.create_any();
    Node imageryNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_IMAGERY, imageryAny);
    graph.addVertex(imageryNode);
    graph.addEdge(parentNode, imageryNode);
    ResultDAGConverter.addStringAttribute(graph, imageryNode, NsiliConstants.CATEGORY, IMAGERY_CATEGORY, orb);
    ResultDAGConverter.addShortAttribute(graph, imageryNode, NsiliConstants.CLOUD_COVER_PCT, (short) IMAGERY_CLOUD_COVER_PCT, orb);
    ResultDAGConverter.addStringAttribute(graph, imageryNode, NsiliConstants.COMMENTS, IMAGERY_COMMENTS, orb);
    ResultDAGConverter.addStringAttribute(graph, imageryNode, NsiliConstants.DECOMPRESSION_TECHNIQUE, IMAGERY_DECOMPRESSION_TECH, orb);
    ResultDAGConverter.addStringAttribute(graph, imageryNode, NsiliConstants.IDENTIFIER, IMAGERY_IDENTIFIER, orb);
    ResultDAGConverter.addShortAttribute(graph, imageryNode, NsiliConstants.NIIRS, (short) IMAGERY_NIIRS, orb);
    ResultDAGConverter.addIntegerAttribute(graph, imageryNode, NsiliConstants.NUMBER_OF_BANDS, IMAGERY_NUM_BANDS, orb);
    ResultDAGConverter.addIntegerAttribute(graph, imageryNode, NsiliConstants.NUMBER_OF_ROWS, IMAGERY_NUM_ROWS, orb);
    ResultDAGConverter.addIntegerAttribute(graph, imageryNode, NsiliConstants.NUMBER_OF_COLS, IMAGERY_NUM_COLS, orb);
    ResultDAGConverter.addStringAttribute(graph, imageryNode, NsiliConstants.TITLE, IMAGERY_TITLE, orb);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Any(org.omg.CORBA.Any)

Example 47 with Node

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

the class DAGConverterTest method testSwapCoordinates.

@Test
public void testSwapCoordinates() {
    String swapWktLocation = "POLYGON ((1 1, 1 5, 5 5, 5 1, 1 1))";
    DAG imageryDAG = new DAG();
    DirectedAcyclicGraph<Node, Edge> graph = new DirectedAcyclicGraph<>(Edge.class);
    Node productNode = createRootNode();
    graph.addVertex(productNode);
    addCardNode(graph, productNode);
    addFileNode(graph, productNode);
    addMetadataSecurity(graph, productNode);
    addSecurityNode(graph, productNode);
    addImageryPart(graph, productNode);
    graph.addVertex(productNode);
    removeNode(graph, NsiliConstants.ADVANCED_GEOSPATIAL);
    NsiliCommonUtils.setUCOEdgeIds(graph);
    NsiliCommonUtils.setUCOEdges(productNode, graph);
    imageryDAG.edges = NsiliCommonUtils.getEdgeArrayFromGraph(graph);
    imageryDAG.nodes = NsiliCommonUtils.getNodeArrayFromGraph(graph);
    MetacardImpl metacard = dagConverter.convertDAG(imageryDAG, true, SOURCE_ID);
    if (SHOULD_PRINT_CARD) {
        File file = new File("/tmp/output-imagery.txt");
        if (file.exists()) {
            file.delete();
        }
        try (PrintStream outStream = new PrintStream(file)) {
            printMetacard(metacard, outStream);
        } catch (IOException ioe) {
        // Ignore the error
        }
    }
    // Check top-level meta-card attributes
    assertThat(metacard.getLocation(), is(swapWktLocation));
}
Also used : PrintStream(java.io.PrintStream) Node(org.codice.alliance.nsili.common.UCO.Node) DAG(org.codice.alliance.nsili.common.UCO.DAG) IOException(java.io.IOException) Edge(org.codice.alliance.nsili.common.UCO.Edge) File(java.io.File) DirectedAcyclicGraph(org.jgrapht.experimental.dag.DirectedAcyclicGraph) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 48 with Node

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

the class DAGConverterTest method testStartNodeOfEdgeNull.

@Test
public void testStartNodeOfEdgeNull() {
    DAG dag = new DAG();
    DirectedAcyclicGraph<Node, Edge> graph = new DirectedAcyclicGraph<>(Edge.class);
    // Create invalid root node
    Node rootNode = createRootNode();
    graph.addVertex(rootNode);
    Edge[] edges = new Edge[1];
    Edge edge = new Edge(0, 1, "");
    edges[0] = edge;
    dag.nodes = NsiliCommonUtils.getNodeArrayFromGraph(graph);
    dag.edges = edges;
    MetacardImpl metacard = dagConverter.convertDAG(dag, false, SOURCE_ID);
    assertThat(metacard.getTitle(), nullValue());
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) DAG(org.codice.alliance.nsili.common.UCO.DAG) Edge(org.codice.alliance.nsili.common.UCO.Edge) DirectedAcyclicGraph(org.jgrapht.experimental.dag.DirectedAcyclicGraph) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 49 with Node

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

the class DAGConverterTest method testBadEnumValues.

@Test
public void testBadEnumValues() {
    DAG dag = new DAG();
    DirectedAcyclicGraph<Node, Edge> graph = new DirectedAcyclicGraph<>(Edge.class);
    Node productNode = createRootNode();
    graph.addVertex(productNode);
    addCardNode(graph, productNode);
    addFileNode(graph, productNode);
    addStreamNode(graph, productNode);
    addMetadataSecurity(graph, productNode);
    addSecurityNode(graph, productNode);
    addBadImageryNode(graph, productNode);
    addBadVideoPart(graph, productNode);
    addBadCxpNode(graph, productNode);
    addBadRFINode(graph, productNode);
    addBadTaskNode(graph, productNode);
    addBadExpoloitationInfoNode(graph, productNode);
    addBadSdsNode(graph, productNode);
    addBadApprovalNode(graph, productNode);
    addBadReportNode(graph, productNode);
    graph.addVertex(productNode);
    NsiliCommonUtils.setUCOEdgeIds(graph);
    NsiliCommonUtils.setUCOEdges(productNode, graph);
    dag.edges = NsiliCommonUtils.getEdgeArrayFromGraph(graph);
    dag.nodes = NsiliCommonUtils.getNodeArrayFromGraph(graph);
    MetacardImpl metacard = dagConverter.convertDAG(dag, false, SOURCE_ID);
    // Check top-level meta-card attributes
    assertThat(metacard.getId(), is(CARD_ID));
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) DAG(org.codice.alliance.nsili.common.UCO.DAG) Edge(org.codice.alliance.nsili.common.UCO.Edge) DirectedAcyclicGraph(org.jgrapht.experimental.dag.DirectedAcyclicGraph) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 50 with Node

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

the class DAGConverterTest method testGmtiViewConversion.

/**
 * Test the GMTI View DAG to Metacard
 *
 * <p>NSIL_PRODUCT NSIL_APPROVAL NSIL_CARD NSIL_FILE NSIL_STREAM NSIL_METADATASECURITY
 * NSIL_RELATED_FILE NSIL_SECURITY NSIL_PART NSIL_SECURITY NSIL_COMMON NSIL_COVERAGE
 * NSIL_EXPLOITATION_INFO NSIL_GMTI NSIL_ASSOCIATION NSIL_RELATION NSIL_SOURCE NSIL_CARD
 * NSIL_DESTINATION NSIL_CARD
 */
@Test
public void testGmtiViewConversion() {
    DAG dag = new DAG();
    DirectedAcyclicGraph<Node, Edge> graph = new DirectedAcyclicGraph<>(Edge.class);
    Node productNode = createRootNode();
    graph.addVertex(productNode);
    addCardNode(graph, productNode);
    addStreamNode(graph, productNode);
    addMetadataSecurity(graph, productNode);
    addSecurityNode(graph, productNode);
    addGmtiPart(graph, productNode);
    graph.addVertex(productNode);
    NsiliCommonUtils.setUCOEdgeIds(graph);
    NsiliCommonUtils.setUCOEdges(productNode, graph);
    dag.edges = NsiliCommonUtils.getEdgeArrayFromGraph(graph);
    dag.nodes = NsiliCommonUtils.getNodeArrayFromGraph(graph);
    MetacardImpl metacard = dagConverter.convertDAG(dag, false, SOURCE_ID);
    if (SHOULD_PRINT_CARD) {
        File file = new File("/tmp/output-gmti.txt");
        if (file.exists()) {
            file.delete();
        }
        try (PrintStream outStream = new PrintStream(file)) {
            printMetacard(metacard, outStream);
        } catch (IOException ioe) {
        // Ignore the error
        }
    }
    // Check top-level meta-card attributes
    assertThat(metacard.getId(), is(CARD_ID));
    assertThat(metacard.getCreatedDate(), notNullValue());
    assertThat(metacard.getEffectiveDate(), notNullValue());
    assertThat(metacard.getModifiedDate(), is(cal.getTime()));
    assertThat(metacard.getDescription(), is(COM_DESCRIPTION_ABSTRACT));
    assertThat(metacard.getLocation(), is(WKT_LOCATION));
    assertThat(metacard.getAttribute(Core.RESOURCE_URI).getValue().toString(), is(STREAM_SOURCE_URL));
    checkCommonAttributes(metacard);
    checkExploitationInfoAttributes(metacard);
    checkStreamAttributes(metacard);
    checkGmtiAttributes(metacard);
    checkSecurityAttributes(metacard);
    checkCoverageAttributes(metacard);
}
Also used : PrintStream(java.io.PrintStream) Node(org.codice.alliance.nsili.common.UCO.Node) DAG(org.codice.alliance.nsili.common.UCO.DAG) IOException(java.io.IOException) Edge(org.codice.alliance.nsili.common.UCO.Edge) File(java.io.File) DirectedAcyclicGraph(org.jgrapht.experimental.dag.DirectedAcyclicGraph) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

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