private Map<String, Object> createContext(final GraphContainer container) { final Map<String, Object> context = Maps.newHashMap(); Optional.ofNullable(Iterables.getOnlyElement(container.getSelectionManager().getSelectedEdgeRefs(), null)) .map(this::createEdgeContext) .ifPresent(context::putAll); Optional.ofNullable(Iterables.getOnlyElement(container.getSelectionManager().getSelectedVertexRefs(), null)) .map(this::createVertexContext) .ifPresent(context::putAll); context.put("measurements", new MeasurementsWrapper(measurementsService)); return context; }
private Map<String, Object> createContext(final GraphContainer container) { final Map<String, Object> context = Maps.newHashMap(); Optional.ofNullable(Iterables.getOnlyElement(container.getSelectionManager().getSelectedEdgeRefs(), null)) .map(this::createEdgeContext) .ifPresent(context::putAll); Optional.ofNullable(Iterables.getOnlyElement(container.getSelectionManager().getSelectedVertexRefs(), null)) .map(this::createVertexContext) .ifPresent(context::putAll); context.put("measurements", new MeasurementsWrapper(measurementsService)); return context; }
@Override public Map<? extends VertexRef, ? extends Status> getStatusForVertices(final VertexProvider vertexProvider, final Collection<VertexRef> vertices, final Criteria[] criteria) { // All vertices for the current vertexProvider final List<GraphMLVertex> graphMLVertices = vertices.stream() .filter(eachVertex -> contributesTo(eachVertex.getNamespace()) && eachVertex instanceof GraphMLVertex) .map(eachVertex -> (GraphMLVertex) eachVertex) .collect(Collectors.toList()); // Alarm summary for each node id final Map<Integer, AlarmSummary> nodeIdToAlarmSummaryMap = alarmSummaryWrapper.getAlarmSummaries(Lists.transform(graphMLVertices, AbstractVertex::getNodeID)) .stream() .collect(Collectors.toMap(AlarmSummary::getNodeId, Function.identity())); // Calculate status via scripts return serviceAccessor.getTransactionOperations().execute( t -> this.scripting.compute(graphMLVertices.stream(), (vertex) -> { final SimpleBindings bindings = new SimpleBindings(); bindings.put("vertex", vertex); if (vertex.getNodeID() != null) { bindings.put("node", serviceAccessor.getNodeDao().get(vertex.getNodeID())); bindings.put("alarmSummary", nodeIdToAlarmSummaryMap.get(vertex.getNodeID())); } bindings.put("measurements", new MeasurementsWrapper(serviceAccessor.getMeasurementsService())); bindings.put("nodeDao", serviceAccessor.getNodeDao()); bindings.put("snmpInterfaceDao", serviceAccessor.getSnmpInterfaceDao()); return bindings; })); }
@Override public Map<? extends VertexRef, ? extends Status> getStatusForVertices(final VertexProvider vertexProvider, final Collection<VertexRef> vertices, final Criteria[] criteria) { // All vertices for the current vertexProvider final List<GraphMLVertex> graphMLVertices = vertices.stream() .filter(eachVertex -> contributesTo(eachVertex.getNamespace()) && eachVertex instanceof GraphMLVertex) .map(eachVertex -> (GraphMLVertex) eachVertex) .collect(Collectors.toList()); // Alarm summary for each node id final Map<Integer, AlarmSummary> nodeIdToAlarmSummaryMap = alarmSummaryWrapper.getAlarmSummaries(Lists.transform(graphMLVertices, AbstractVertex::getNodeID)) .stream() .collect(Collectors.toMap(AlarmSummary::getNodeId, Function.identity())); // Calculate status via scripts return serviceAccessor.getTransactionOperations().execute( t -> this.scripting.compute(graphMLVertices.stream(), (vertex) -> { final SimpleBindings bindings = new SimpleBindings(); bindings.put("vertex", vertex); if (vertex.getNodeID() != null) { bindings.put("node", serviceAccessor.getNodeDao().get(vertex.getNodeID())); bindings.put("alarmSummary", nodeIdToAlarmSummaryMap.get(vertex.getNodeID())); } bindings.put("measurements", new MeasurementsWrapper(serviceAccessor.getMeasurementsService())); bindings.put("nodeDao", serviceAccessor.getNodeDao()); bindings.put("snmpInterfaceDao", serviceAccessor.getSnmpInterfaceDao()); return bindings; })); }
@Override public Map<? extends EdgeRef, ? extends Status> getStatusForEdges(EdgeProvider edgeProvider, Collection<EdgeRef> edges, Criteria[] criteria) { return serviceAccessor.getTransactionOperations().execute( t -> this.scripting.compute(edges.stream() .filter(edge -> edge instanceof GraphMLEdge) .map(edge -> (GraphMLEdge) edge), (edge) -> { final SimpleBindings bindings = new SimpleBindings(); bindings.put("edge", edge); bindings.put("sourceNode", getNodeForEdgeVertexConnector(edge.getSource())); bindings.put("targetNode", getNodeForEdgeVertexConnector(edge.getTarget())); bindings.put("measurements", new MeasurementsWrapper(serviceAccessor.getMeasurementsService())); bindings.put("nodeDao", serviceAccessor.getNodeDao()); bindings.put("snmpInterfaceDao", serviceAccessor.getSnmpInterfaceDao()); return bindings; })); }
@Override public Map<? extends EdgeRef, ? extends Status> getStatusForEdges(EdgeProvider edgeProvider, Collection<EdgeRef> edges, Criteria[] criteria) { return serviceAccessor.getTransactionOperations().execute( t -> this.scripting.compute(edges.stream() .filter(edge -> edge instanceof GraphMLEdge) .map(edge -> (GraphMLEdge) edge), (edge) -> { final SimpleBindings bindings = new SimpleBindings(); bindings.put("edge", edge); bindings.put("sourceNode", getNodeForEdgeVertexConnector(edge.getSource())); bindings.put("targetNode", getNodeForEdgeVertexConnector(edge.getTarget())); bindings.put("measurements", new MeasurementsWrapper(serviceAccessor.getMeasurementsService())); bindings.put("nodeDao", serviceAccessor.getNodeDao()); bindings.put("snmpInterfaceDao", serviceAccessor.getSnmpInterfaceDao()); return bindings; })); }