## Class MetricsUtil

• ```public final class MetricsUtil
extends Object```
Utilities to use `Metric` instances.
• ### Method Summary

All Methods
Modifier and Type Method Description
`static <N extends Node,​R extends Number>R` ```computeMetric​(Metric<? super N,​R> key, N node)```
Computes a metric identified by its code on a node, with the default options.
`static <N extends Node,​R extends Number>R` ```computeMetric​(Metric<? super N,​R> key, N node, MetricOptions options)```
Computes a metric identified by its code on a node, possibly selecting a variant with the `options` parameter.
`static <N extends Node,​R extends Number>R` ```computeMetric​(Metric<? super N,​R> key, N node, MetricOptions options, boolean forceRecompute)```
Computes a metric identified by its code on a node, possibly selecting a variant with the `options` parameter.
`static <O extends Node>DoubleSummaryStatistics` ```computeStatistics​(Metric<? super O,​?> key, Iterable<? extends O> ops)```
Computes statistics for the results of a metric over a sequence of nodes.
`static <O extends Node>DoubleSummaryStatistics` ```computeStatistics​(Metric<? super O,​?> key, Iterable<? extends O> ops, MetricOptions options)```
Computes statistics for the results of a metric over a sequence of nodes.
`static boolean` ```supportsAll​(Node node, Metric<?,​?>... metrics)```
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Method Detail

• #### supportsAll

```public static boolean supportsAll​(Node node,
Metric<?,​?>... metrics)```
• #### computeStatistics

```public static <O extends Node> DoubleSummaryStatistics computeStatistics​(Metric<? super O,​?> key,
Iterable<? extends O> ops)```
Computes statistics for the results of a metric over a sequence of nodes.
Parameters:
`key` - The metric to compute
`ops` - List of nodes for which to compute the metric
Returns:
Statistics for the value of the metric over all the nodes
• #### computeStatistics

```public static <O extends Node> DoubleSummaryStatistics computeStatistics​(Metric<? super O,​?> key,
Iterable<? extends O> ops,
MetricOptions options)```
Computes statistics for the results of a metric over a sequence of nodes.
Parameters:
`key` - The metric to compute
`ops` - List of nodes for which to compute the metric
`options` - The options of the metric
Returns:
Statistics for the value of the metric over all the nodes
• #### computeMetric

```public static <N extends Node,​R extends Number> R computeMetric​(Metric<? super N,​R> key,
N node)```
Computes a metric identified by its code on a node, with the default options.
Parameters:
`key` - The key identifying the metric to be computed
`node` - The node on which to compute the metric
Returns:
The value of the metric, or `Double.NaN` if the value couldn't be computed
• #### computeMetric

```public static <N extends Node,​R extends Number> R computeMetric​(Metric<? super N,​R> key,
N node,
MetricOptions options)```
Computes a metric identified by its code on a node, possibly selecting a variant with the `options` parameter.

Note that contrary to the previous behaviour, this method throws an exception if the metric does not support the node.

Parameters:
`key` - The key identifying the metric to be computed
`node` - The node on which to compute the metric
`options` - The options of the metric
Returns:
The value of the metric
Throws:
`IllegalArgumentException` - If the metric does not support the given node
• #### computeMetric

```public static <N extends Node,​R extends Number> R computeMetric​(Metric<? super N,​R> key,
N node,
MetricOptions options,
boolean forceRecompute)```
Computes a metric identified by its code on a node, possibly selecting a variant with the `options` parameter.

Note that contrary to the previous behaviour, this method throws an exception if the metric does not support the node.

Parameters:
`key` - The key identifying the metric to be computed
`node` - The node on which to compute the metric
`options` - The options of the metric
`forceRecompute` - Force recomputation of the result
Returns:
The value of the metric
Throws:
`IllegalArgumentException` - If the metric does not support the given node