using System;
using AnticipatingMinds.Genesis.CodeDOM;
using AnticipatingMinds.PlatformServices.Configuration;
namespace AnticipatingMinds.CodeInsight{
/// <summary>
/// Represents a base class for any metric.
/// </summary>
/// <remarks>
/// Do not inherit of this class directly.
/// Use one of its direct descendats to define custom metric.
/// </remarks>
public abstract class CodeMetric
{
/// <summary>
/// Gets metric id.
/// </summary>
public abstract string Id
{
get;
}
/// <summary>
/// Gets metric name.
/// </summary>
public abstract string Name
{
get;
}
/// <summary>
/// Gets metric description.
/// </summary>
/// <remarks>
/// Currently is not used.
/// </remarks>
public abstract string Description
{
get;
}
/// <summary>
/// Gets metric help url.
/// </summary>
/// <remarks>
/// Currently is not used.
/// </remarks>
public abstract string HelpUrl
{
get;
}
/// <summary>
/// Gets metric configuration.
/// </summary>
/// <remarks>
/// Currently is not used.
/// </remarks>
public virtual ConfigurationSection Configuration
{
get
{
return null;
}
}
/// <summary>
/// Gets an array of aggregated metrics based on this metric.
/// </summary>
/// <returns></returns>
public virtual CodeAggregateMetric[] GetAggregateMetrics()
{
return new CodeAggregateMetric[0];
}
}
}
|