/* * Copyright 2005, Sixth and Red River Software * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sixrr.metrics; /** * The MetricType class enumerates the various kinds of metrics available (counts, ratios, averages, etc.), and is used * to determine how metric values are aggregated and displayed. */ public enum MetricType { /** * Use the Count metric type if your metric is a count of objects in some context (i.e. methods per class) which can be * reasonably aggregated to higher levels. Counts should be positive integer values. */ Count, /** * Use the Score metric type if your metric is some number with no intrinsic meaning other than comparison (i.e. Halstead metrics), or which * cannot be reasonably aggregated (i.e. loop nesting depths). Scores can be any integer value. */ Score, /** * Use the Average metric type if your metric is some computed value representing the average value of some other metric over * the reported value. Averages will be averaged, but not totalled. Averages can be any value. */ Average, /** * Use the Ratio type if your metric is the ratio of two set sizes, with one set a subset of the other (i.e. comment ratios). * Ratio values will be reported as percentages, and the numerators and denominators aggregated separately. */ Ratio, /** * Use the RecursiveRatio type if your metric is the ratio of two set sizes, with one set a subset of the other (i.e. comment ratios), * and which is reported on packages recursively. This is basically the same as the * Ratio type, with slightly different aggregation semantics to prevent double-counting of recursively included packages. * Ratio values will be reported as percentages, and the numerators and denominators aggregated separately. */ RecursiveRatio, /** * Use the RecursiveCount metric type if your metric is a count of objects in some context (i.e. methods per class) which can be * reasonably aggregated to higher levels, and is reported on packages recursively. This is basically the same as the * Count type, with slightly different aggregation semantics to prevent double-counting of recursively included packages. * RecursiveCounts should be positive integer values. */ RecursiveCount }