Package org.eclipse.mat.query.quantize

# Class Quantize

java.lang.Object
org.eclipse.mat.query.quantize.Quantize

public final class Quantize extends Object
Create a value or frequency distribution out of arbitrary values.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`Quantize.Builder`
`Quantize` factory
`static interface`
`Quantize.Function`
A function used to aggregate values into one bucket, e.g.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Quantize.Function.Factory`
`AVERAGE`
Function to find the average value.
`static final Quantize.Function.Factory`
`AVERAGE_BYTES`
Function to find the average Bytes value.
`static final Quantize.Function.Factory`
`AVERAGE_LONG`
Function to find the average long value.
`static final Quantize.Function.Factory`
`COUNT`
Function to count values.
`static final Quantize.Function.Factory`
`MAX`
Function to find the maximum double value.
`static final Quantize.Function.Factory`
`MAX_BYTES`
Function to find the maximum Bytes value.
`static final Quantize.Function.Factory`
`MAX_LONG`
Function to find the maximum long value.
`static final Quantize.Function.Factory`
`MIN`
Function to find the minimum double value.
`static final Quantize.Function.Factory`
`MIN_BYTES`
Function to find the minimum Bytes value.
`static final Quantize.Function.Factory`
`MIN_LONG`
Function to find the minimum long value.
`static final Quantize.Function.Factory`
`SUM`
Function to add values as doubles.
`static final Quantize.Function.Factory`
`SUM_BYTES`
Function to add values as Bytes.
`static final Quantize.Function.Factory`
`SUM_LONG`
Function to add values as longs.

## Method Summary

Modifier and Type
Method
Description
`void`
`addValue(int[] objectIds, Object... columnValues)`
Add one value to the quantize function representing a set of objects.
`void`
`addValue(int objectId, Object... columnValues)`
Add one value to the quantize function representing one heap object.
`IResult`
`getResult()`
Returns the `IResult` build by the Quantize object.
`static Quantize.Builder`
`linearFrequencyDistribution(String label, double lowerBound, double upperBound, double step)`
Creates a quantize `Quantize.Builder` for a linear frequency distribution on double values.
`static Quantize.Builder`
`linearFrequencyDistribution(String label, long lowerBound, long upperBound, long step)`
Creates a quantize `Quantize.Builder` for a linear frequency distribution on long values.
`static Quantize.Builder`
`valueDistribution(String... label)`
Creates a quantize `Quantize.Builder` for a value distribution, i.e.
`static Quantize.Builder`
`valueDistribution(Column... column)`
Creates a quantize `Quantize.Builder` for a value distribution, i.e.

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

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

## Field Details

### COUNT

public static final Quantize.Function.Factory COUNT
Function to count values.

### SUM

public static final Quantize.Function.Factory SUM
Function to add values as doubles.

### SUM_LONG

public static final Quantize.Function.Factory SUM_LONG
Function to add values as longs.

### SUM_BYTES

public static final Quantize.Function.Factory SUM_BYTES
Function to add values as Bytes.

Since:
  1.12

### MIN

public static final Quantize.Function.Factory MIN
Function to find the minimum double value.

### MIN_LONG

public static final Quantize.Function.Factory MIN_LONG
Function to find the minimum long value.

### MIN_BYTES

public static final Quantize.Function.Factory MIN_BYTES
Function to find the minimum Bytes value.

Since:
  1.12

### MAX

public static final Quantize.Function.Factory MAX
Function to find the maximum double value.

### MAX_LONG

public static final Quantize.Function.Factory MAX_LONG
Function to find the maximum long value.

### MAX_BYTES

public static final Quantize.Function.Factory MAX_BYTES
Function to find the maximum Bytes value.

Since:
  1.12

### AVERAGE

public static final Quantize.Function.Factory AVERAGE
Function to find the average value.

### AVERAGE_LONG

public static final Quantize.Function.Factory AVERAGE_LONG
Function to find the average long value.

Since:
  0.8

### AVERAGE_BYTES

public static final Quantize.Function.Factory AVERAGE_BYTES
Function to find the average Bytes value.

Since:
  1.12

## Method Details

### valueDistribution

public static Quantize.Builder valueDistribution(String... label)
Creates a quantize `Quantize.Builder` for a value distribution, i.e. rows are grouped by identical values. Rows can be grouped by one ore more values.

Parameters:
  `label` - multiple labels used to construct columns
Returns:
  a Builder so that multiple construction options can be chained before calling `Quantize.Builder.build()`

### valueDistribution

public static Quantize.Builder valueDistribution(Column... column)
Creates a quantize `Quantize.Builder` for a value distribution, i.e. rows are grouped by identical values. Rows can be grouped by one ore more values. This constructor uses the given columns and their formatting and alignment to display the results.

Parameters:
  `column` - multiple columns, already with labels
Returns:
  a Builder so that multiple construction options can be chained before calling `Quantize.Builder.build()`

### linearFrequencyDistribution

public static Quantize.Builder linearFrequencyDistribution(String label, double lowerBound, double upperBound, double step)
Creates a quantize `Quantize.Builder` for a linear frequency distribution on double values.

Basically, one can answer questions like how many collections have a fill ratio between 0 and 20%, between 20% and 40%, etc.

Parameters:
  `label` - Name of the first column
  `lowerBound` - The lower bound of the distribution
  `upperBound` - The upper bound of the distribution
  `step` - The size of the buckets in the distribution
Returns:
  a Builder so more options can be added before calling `Quantize.Builder.build()`

### linearFrequencyDistribution

public static Quantize.Builder linearFrequencyDistribution(String label, long lowerBound, long upperBound, long step)
Creates a quantize `Quantize.Builder` for a linear frequency distribution on long values. `linearFrequencyDistribution(String, double, double, double)`

Parameters:
  `label` - How to label this quantization
  `lowerBound` - the lowest long value
  `upperBound` - the highest long value
  `step` - the interval for each bucket between lowerBound and upperBound
Returns:
  a Builder so that multiple construction options can be chained before calling `Quantize.Builder.build()`

### addValue

public void addValue(int objectId, Object... columnValues) throws SnapshotException
Add one value to the quantize function representing one heap object.

Parameters:
  `objectId` - the heap object represented by this value
  `columnValues` - the column values
Throws:
  `SnapshotException` - if there is a problem, perhaps such as an invalid objectId

### addValue

public void addValue(int[] objectIds, Object... columnValues) throws SnapshotException
Add one value to the quantize function representing a set of objects.

Parameters:
  `objectIds` - the heap objects represented by this value
  `columnValues` - the column values
Throws:
  `SnapshotException` - if there is a problem, perhaps such as an invalid objectId

### getResult

public IResult getResult()
Returns the `IResult` build by the Quantize object.

Returns:
  a `Quantize.QuantizedResult`