use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.
the class ResultDAGConverter method addVideoPart.
public static List<String> addVideoPart(DirectedAcyclicGraph<Node, Edge> graph, Node partNode, Metacard metacard, ORB orb, String parentAttrName, List<String> resultAttributes) {
List<String> addedAttributes = new ArrayList<>();
Any videoAny = orb.create_any();
Node videoNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_VIDEO, videoAny);
graph.addVertex(videoNode);
graph.addEdge(partNode, videoNode);
String attribute = parentAttrName + NsiliConstants.NSIL_VIDEO;
addIntAttribute(graph, metacard.getAttribute(Media.HEIGHT), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.NUMBER_OF_ROWS);
addIntAttribute(graph, metacard.getAttribute(Media.WIDTH), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.NUMBER_OF_COLS);
addEncodingSchemeAttribute(graph, metacard, orb, resultAttributes, addedAttributes, videoNode, attribute);
addDblAttribute(graph, metacard.getAttribute(Media.BITS_PER_SECOND), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.AVG_BIT_RATE);
addDblAttribute(graph, metacard.getAttribute(Media.FRAMES_PER_SECOND), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.FRAME_RATE);
addStrAttribute(graph, metacard.getAttribute(Media.SCANNING_MODE), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.SCANNING_MODE);
addVmtiAttributes(graph, metacard, orb, resultAttributes, addedAttributes, videoNode, attribute);
addCategoryAttribute(graph, metacard, orb, resultAttributes, addedAttributes, videoNode, attribute, false);
addIntAttribute(graph, metacard.getAttribute(Isr.VIDEO_MOTION_IMAGERY_SYSTEMS_MATRIX_LEVEL), orb, resultAttributes, addedAttributes, videoNode, attribute, NsiliConstants.MISM_LEVEL);
return addedAttributes;
}
use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.
the class ResultDAGConverter method getAttributeMap.
public static Map<String, String> getAttributeMap(DAG dag) {
Map<String, String> attributes = new HashMap<>();
Map<Integer, Node> nodeMap = createNodeMap(dag.nodes);
DirectedAcyclicGraph<Node, Edge> graph = getNodeEdgeDirectedAcyclicGraph(dag, nodeMap);
DepthFirstIterator<Node, Edge> graphIT = new DepthFirstIterator<>(graph, nodeMap.get(0));
List<String> nodeStack = new ArrayList<>();
graphIT.addTraversalListener(new TraversalListener<Node, Edge>() {
@Override
public void connectedComponentFinished(ConnectedComponentTraversalEvent connectedComponentTraversalEvent) {
// This method is not expected to be called
}
@Override
public void connectedComponentStarted(ConnectedComponentTraversalEvent connectedComponentTraversalEvent) {
// This method is not expected to be called
}
@Override
public void edgeTraversed(EdgeTraversalEvent<Node, Edge> edgeTraversalEvent) {
// This method is not expected to be called
}
@Override
public void vertexTraversed(VertexTraversalEvent<Node> vertexTraversalEvent) {
Node node = vertexTraversalEvent.getVertex();
if (node.node_type != NodeType.ATTRIBUTE_NODE) {
nodeStack.add(node.attribute_name);
}
}
@Override
public void vertexFinished(VertexTraversalEvent<Node> vertexTraversalEvent) {
Node node = vertexTraversalEvent.getVertex();
if (node.node_type == NodeType.ATTRIBUTE_NODE) {
StringBuilder attribute = new StringBuilder();
int currEntry = 0;
int size = nodeStack.size();
for (String nodeEntry : nodeStack) {
attribute.append(nodeEntry);
if (currEntry < (size - 1)) {
attribute.append(":");
} else {
attribute.append(".");
}
currEntry++;
}
attribute.append(node.attribute_name);
attributes.put(attribute.toString(), CorbaUtils.getNodeValue(node.value));
} else {
int lastIdx = nodeStack.size() - 1;
nodeStack.remove(lastIdx);
}
}
});
Node rootNode = null;
while (graphIT.hasNext()) {
graphIT.setCrossComponentTraversal(false);
Node node = graphIT.next();
if (rootNode == null) {
rootNode = node;
}
}
return attributes;
}
use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.
the class ResultDAGConverter method addDoubleAttribute.
public static void addDoubleAttribute(DirectedAcyclicGraph<Node, Edge> graph, Node parentNode, String key, Double doubleVal, ORB orb) {
Any any = orb.create_any();
any.insert_double(doubleVal);
Node node = new Node(0, NodeType.ATTRIBUTE_NODE, key, any);
graph.addVertex(node);
graph.addEdge(parentNode, node);
}
use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.
the class ResultDAGConverter method addCardNodeWithAttributes.
public static List<String> addCardNodeWithAttributes(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 cardNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_CARD, any);
graph.addVertex(cardNode);
graph.addEdge(productNode, cardNode);
String attribute = parentAttrName + NsiliConstants.NSIL_CARD;
if (shouldAdd(buildAttr(attribute, NsiliConstants.IDENTIFIER), resultAttributes) && metacard.getId() != null) {
addStringAttribute(graph, cardNode, NsiliConstants.IDENTIFIER, metacard.getId(), orb);
addedAttributes.add(buildAttr(attribute, NsiliConstants.IDENTIFIER));
}
addDateAttributes(graph, metacard, orb, resultAttributes, addedAttributes, cardNode, attribute);
if (shouldAdd(buildAttr(attribute, NsiliConstants.SOURCE_LIBRARY), resultAttributes)) {
if (StringUtils.isNotBlank(metacard.getSourceId())) {
addStringAttribute(graph, cardNode, NsiliConstants.SOURCE_LIBRARY, metacard.getSourceId(), orb);
} else {
addStringAttribute(graph, cardNode, NsiliConstants.SOURCE_LIBRARY, NsiliConstants.UNKNOWN, orb);
}
addedAttributes.add(buildAttr(attribute, NsiliConstants.SOURCE_LIBRARY));
}
addStatusAttributes(graph, metacard, orb, resultAttributes, addedAttributes, cardNode, attribute);
addStrAttribute(graph, metacard.getAttribute(Contact.PUBLISHER_NAME), orb, resultAttributes, addedAttributes, cardNode, attribute, NsiliConstants.PUBLISHER);
return addedAttributes;
}
use of org.codice.alliance.nsili.common.UCO.Node in project alliance by codice.
the class ResultDAGConverter method addTaskPart.
public static List<String> addTaskPart(DirectedAcyclicGraph<Node, Edge> graph, Node partNode, Metacard metacard, ORB orb, String parentAttrName, List<String> resultAttributes) {
List<String> addedAttributes = new ArrayList<>();
Any taskAny = orb.create_any();
Node taskNode = new Node(0, NodeType.ENTITY_NODE, NsiliConstants.NSIL_TASK, taskAny);
graph.addVertex(taskNode);
graph.addEdge(partNode, taskNode);
String attribute = parentAttrName + NsiliConstants.NSIL_TASK;
addValStrAttribute(graph, metacard.getAttribute(Isr.TASK_COMMENTS), orb, resultAttributes, addedAttributes, taskNode, attribute, NsiliConstants.COMMENTS);
if (shouldAdd(buildAttr(attribute, NsiliConstants.STATUS), resultAttributes)) {
Attribute taskStatusAttr = metacard.getAttribute(Isr.TASK_STATUS);
if (taskStatusAttr != null) {
String taskStatus = getTaskStatus(taskStatusAttr.getValue());
if (taskStatus != null) {
addStringAttribute(graph, taskNode, NsiliConstants.STATUS, taskStatus, orb);
addedAttributes.add(buildAttr(attribute, NsiliConstants.STATUS));
}
}
}
return addedAttributes;
}
Aggregations