# MetricDescription (ARX Developer Documentation)

org.deidentifier.arx.metric

## Class MetricDescription

- java.lang.Object
- - org.deidentifier.arx.metric.MetricDescription

- All Implemented Interfaces:
    java.io.Serializable

      public abstract class MetricDescription
      extends java.lang.Object
      implements java.io.Serializable

  A class describing a metric and its configuration options.
  See Also:
    Serialized Form

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract Metric<?>` | `createInstance(MetricConfiguration config)` Creates an instance with the given configuration options.
    `java.lang.String` | `getName()`
    `java.util.List<Metric.AggregateFunction>` | `getSupportedAggregateFunctions()` Returns a list of all supported aggregate functions.
    `boolean` | `isAggregateFunctionSupported()` Returns whether an aggregate function is supported by the metric.
    `boolean` | `isAttackerModelSupported()`
    `boolean` | `isAttributeWeightsSupported()`
    `boolean` | `isConfigurableCodingModelSupported()`
    `abstract boolean` | `isInstance(Metric<?> metric)` Returns whether the given metric is an instance of this description.
    `boolean` | `isMonotonicVariantSupported()`
    `boolean` | `isPrecomputationSupported()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### createInstance

          public abstract Metric<?> createInstance(MetricConfiguration config)

      Creates an instance with the given configuration options.
      Parameters:
        `config` -
      Returns:

    - #### getName

          public java.lang.String getName()

      Returns:
        the name

    - #### getSupportedAggregateFunctions

          public java.util.List<Metric.AggregateFunction> getSupportedAggregateFunctions()

      Returns a list of all supported aggregate functions.
      Returns:

    - #### isAggregateFunctionSupported

          public boolean isAggregateFunctionSupported()

      Returns whether an aggregate function is supported by the metric.
      Returns:

    - #### isAttackerModelSupported

          public boolean isAttackerModelSupported()

      Returns:
        the attackerModelSupported

    - #### isAttributeWeightsSupported

          public boolean isAttributeWeightsSupported()

      Returns:
        the attributeWeightsSupported

    - #### isConfigurableCodingModelSupported

          public boolean isConfigurableCodingModelSupported()

      Returns:
        the configurableCodingModelSupported

    - #### isInstance

          public abstract boolean isInstance(Metric<?> metric)

      Returns whether the given metric is an instance of this description.
      Parameters:
        `metric` -
      Returns:

    - #### isMonotonicVariantSupported

          public boolean isMonotonicVariantSupported()

      Returns:
        the monotonicVariantSupported

    - #### isPrecomputationSupported

          public boolean isPrecomputationSupported()

      Returns:
        the precomputationSupported