Search in sources :

Example 36 with Node

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

the class DAGConverterTest method testImageryViewConversion.

/**
 * Test the Imagery 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_IMAGERY NSIL_ASSOCIATION NSIL_RELATION NSIL_SOURCE NSIL_CARD
 * NSIL_DESTINATION NSIL_CARD
 */
@Test
public void testImageryViewConversion() {
    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);
    addAssocationNode(graph, productNode);
    addApprovalNode(graph, productNode);
    addRelatedFile(graph, productNode);
    graph.addVertex(productNode);
    NsiliCommonUtils.setUCOEdgeIds(graph);
    NsiliCommonUtils.setUCOEdges(productNode, graph);
    imageryDAG.edges = NsiliCommonUtils.getEdgeArrayFromGraph(graph);
    imageryDAG.nodes = NsiliCommonUtils.getNodeArrayFromGraph(graph);
    MetacardImpl metacard = dagConverter.convertDAG(imageryDAG, false, 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.getTitle(), is(IMAGERY_TITLE));
    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(FILE_PRODUCT_URL));
    checkCommonAttributes(metacard);
    checkExploitationInfoAttributes(metacard);
    checkImageryAttributes(metacard);
    checkSecurityAttributes(metacard);
    checkCoverageAttributes(metacard);
    checkAssociationAttribute(metacard);
    DAGConverter.logMetacard(metacard, "123");
}
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 37 with Node

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

the class DAGConverterTest method addApprovalNode.

private void addApprovalNode(DirectedAcyclicGraph<Node, Edge> graph, Node productNode) {
    Any approvalAny = orb.create_any();
    Node approvalNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_APPROVAL, approvalAny);
    graph.addVertex(approvalNode);
    graph.addEdge(productNode, approvalNode);
    ResultDAGConverter.addStringAttribute(graph, approvalNode, NsiliConstants.APPROVED_BY, APPROVED_BY, orb);
    addTestDateAttribute(graph, approvalNode, NsiliConstants.DATE_TIME_MODIFIED, orb);
    ResultDAGConverter.addStringAttribute(graph, approvalNode, NsiliConstants.STATUS, APPROVAL_STATUS.getSpecName(), orb);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Any(org.omg.CORBA.Any)

Example 38 with Node

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

the class DAGConverterTest method addExpoloitationInfoNode.

private void addExpoloitationInfoNode(DirectedAcyclicGraph<Node, Edge> graph, Node parentNode) {
    Any exploitationAny = orb.create_any();
    Node exploitationNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_EXPLOITATION_INFO, exploitationAny);
    graph.addVertex(exploitationNode);
    graph.addEdge(parentNode, exploitationNode);
    ResultDAGConverter.addStringAttribute(graph, exploitationNode, NsiliConstants.DESCRIPTION, EXPLOITATION_DESC, orb);
    ResultDAGConverter.addShortAttribute(graph, exploitationNode, NsiliConstants.LEVEL, EXPLOITATION_LEVEL, orb);
    ResultDAGConverter.addBooleanAttribute(graph, exploitationNode, NsiliConstants.AUTO_GENERATED, EXPLOITATION_AUTO_GEN, orb);
    ResultDAGConverter.addStringAttribute(graph, exploitationNode, NsiliConstants.SUBJ_QUALITY_CODE, EXPLOITATION_SUBJ_QUAL_CODE, orb);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Any(org.omg.CORBA.Any)

Example 39 with Node

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

the class DAGConverterTest method addIRPart.

private void addIRPart(DirectedAcyclicGraph<Node, Edge> graph, Node productNode) {
    Node partNode1 = addPartNode(graph, productNode);
    addSecurityNode(graph, partNode1);
    addCommonNode(graph, partNode1);
    addCoverageNode(graph, partNode1);
    Node partNode2 = addPartNode(graph, productNode);
    addSecurityNode(graph, partNode2);
    addCommonNode(graph, partNode2);
    addExpoloitationInfoNode(graph, partNode2);
    Node partNode3 = addPartNode(graph, productNode);
    addSecurityNode(graph, partNode3);
    addCommonNode(graph, partNode3);
    addIRNode(graph, partNode3);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node)

Example 40 with Node

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

the class DAGConverterTest method addRelatedFile.

private void addRelatedFile(DirectedAcyclicGraph<Node, Edge> graph, Node productNode) {
    Any any = orb.create_any();
    Node relatedFileNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_RELATED_FILE, any);
    graph.addVertex(relatedFileNode);
    graph.addEdge(productNode, relatedFileNode);
    ResultDAGConverter.addStringAttribute(graph, relatedFileNode, NsiliConstants.CREATOR, FILE_CREATOR, orb);
    addTestDateAttribute(graph, relatedFileNode, NsiliConstants.DATE_TIME_DECLARED, orb);
    ResultDAGConverter.addDoubleAttribute(graph, relatedFileNode, NsiliConstants.EXTENT, FILE_EXTENT, orb);
    ResultDAGConverter.addStringAttribute(graph, relatedFileNode, NsiliConstants.FILE_TYPE, NsiliConstants.THUMBNAIL_TYPE, orb);
    ResultDAGConverter.addStringAttribute(graph, relatedFileNode, NsiliConstants.URL, FILE_PRODUCT_URL, orb);
    ResultDAGConverter.addBooleanAttribute(graph, relatedFileNode, NsiliConstants.IS_FILE_LOCAL, true, orb);
}
Also used : Node(org.codice.alliance.nsili.common.UCO.Node) Any(org.omg.CORBA.Any)

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