org.eclipse.mat.query.quantize
Class Quantize

java.lang.Object
  extended by 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
static class Quantize.Builder
          Quantize factory
static interface Quantize.Function
          A function used to aggregate values into one bucket, e.g.
 
Field Summary
static Quantize.Function.Factory AVERAGE
          Function to find the average value.
static Quantize.Function.Factory AVERAGE_LONG
          Function to find the average long value.
static Quantize.Function.Factory COUNT
          Function to count values.
static Quantize.Function.Factory MAX
          Function to find the maximum double value.
static Quantize.Function.Factory MAX_LONG
          Function to find the maximum long value.
static Quantize.Function.Factory MIN
          Function to find the minimum double value.
static Quantize.Function.Factory MIN_LONG
          Function to find the minimum long value.
static Quantize.Function.Factory SUM
          Function to add values as doubles.
static Quantize.Function.Factory SUM_LONG
          Function to add values as longs.
 
Method Summary
 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(Column... column)
          Creates a quantize Quantize.Builder for a value distribution, i.e.
static Quantize.Builder valueDistribution(String... label)
          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 Detail

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.


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.


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.


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
Method Detail

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.


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.


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

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)


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

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

getResult

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