code annotation attributes TLC

This commit is contained in:
Stephan
2012-11-20 08:49:06 -01:00
parent d6fc106588
commit d3927a1265
8 changed files with 80 additions and 46 deletions

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Umbraco.Core.CodeAnnotations
{
/// <summary>
/// An attribute used to decorate classes or methods that have been marked to be obsoleted
/// </summary>
/// <remarks>
/// This attribute exists because sometimes we may not want to explicitly [Obsolete] a class or method because we
/// know it is still in use and we don't want warning messages showing up in developers output windows when they compile, however
/// we will be able to produce reports declaring which classes/methods/etc... have been marked for being obsoleted in the near future
/// </remarks>
internal class UmbracoDeprecateAttribute : Attribute
{
/// <summary>
/// Constructor requries a description
/// </summary>
/// <param name="description"></param>
public UmbracoDeprecateAttribute(string description)
{
}
}
}

View File

@@ -3,16 +3,30 @@ using System;
namespace Umbraco.Core.CodeAnnotations
{
/// <summary>
/// An attribute used to decorate classes or methods that have been marked to become public but require more testing and review
/// before this is possible.
/// Marks the program elements that Umbraco is experimenting with and could become public.
/// </summary>
internal class UmbracoExperimentalFeatureAttribute : Attribute
/// <remarks>
/// <para>Indicates that Umbraco is experimenting with code that potentially could become
/// public, but we're not sure, and the code is not stable and can be refactored at any time.</para>
/// <para>The issue tracker should contain more details, discussion, and planning.</para>
/// </remarks>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = false)]
internal sealed class UmbracoExperimentalFeatureAttribute : Attribute
{
/// <summary>
/// constructor requires a tracker url and a description
/// Initializes a new instance of the <see cref="UmbracoExperimentalFeatureAttribute"/> class with a description.
/// </summary>
/// <param name="trackerUrl"></param>
/// <param name="description"></param>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoExperimentalFeatureAttribute(string description)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoExperimentalFeatureAttribute"/> class with a tracker url and a description.
/// </summary>
/// <param name="trackerUrl">The url of a tracker issue containing more details, discussion, and planning.</param>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoExperimentalFeatureAttribute(string trackerUrl, string description)
{

View File

@@ -3,20 +3,31 @@ using System;
namespace Umbraco.Core.CodeAnnotations
{
/// <summary>
/// An attribute used to decorate classes or methods that have potential to become part of the public API
/// Marks the program elements that Umbraco is considering making public.
/// </summary>
/// <remarks>
/// Classes, properties or methods marked with this attribute will have a tracker URL assigned where discussions may take place
/// regarding whether or not this should become part of the public APIs and if/when. Please note that any objects marked with this
/// attribute may not ever become public, this attribute exists to tag code that has potential to become public pending reviews.
/// <para>Indicates that Umbraco considers making the (currently internal) program element public
/// at some point in the future, but the decision is not fully made yet and is still pending reviews.</para>
/// <para>Note that it is not a commitment to make the program element public. It may not ever become public.</para>
/// <para>The issue tracker should contain more details, discussion, and planning.</para>
/// </remarks>
internal class UmbracoProposedPublicAttribute : Attribute
[AttributeUsage(AttributeTargets.All, AllowMultiple=false, Inherited=false)]
internal sealed class UmbracoProposedPublicAttribute : Attribute
{
/// <summary>
/// constructor requires a tracker url and a description
/// Initializes a new instance of the <see cref="UmbracoProposedPublicAttribute"/> class with a description.
/// </summary>
/// <param name="trackerUrl"></param>
/// <param name="description"></param>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoProposedPublicAttribute(string description)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoProposedPublicAttribute"/> class with a tracker url and a description.
/// </summary>
/// <param name="trackerUrl">The url of a tracker issue containing more details, discussion, and planning.</param>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoProposedPublicAttribute(string trackerUrl, string description)
{

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Umbraco.Core.CodeAnnotations
{
/// <summary>
/// Marks the program elements that Umbraco will obsolete.
/// </summary>
/// <remarks>
/// Indicates that Umbraco will obsolete the program element at some point in the future, but we do not want to
/// explicitely mark it [Obsolete] yet to avoid warning messages showing when developers compile Umbraco.
/// </remarks>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = false)]
internal sealed class UmbracoWillObsoleteAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoWillObsoleteAttribute"/> class with a description.
/// </summary>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoWillObsoleteAttribute(string description)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoWillObsoleteAttribute"/> class with a tracker url and a description.
/// </summary>
/// <param name="trackerUrl">The url of a tracker issue containing more details, discussion, and planning.</param>
/// <param name="description">The text string that describes what is intended.</param>
public UmbracoWillObsoleteAttribute(string trackerUrl, string description)
{
}
}
}

View File

@@ -54,7 +54,7 @@
<Compile Include="AssemblyExtensions.cs" />
<Compile Include="Attempt.cs" />
<Compile Include="CacheHelper.cs" />
<Compile Include="CodeAnnotations\UmbracoDeprecateAttribute.cs" />
<Compile Include="CodeAnnotations\UmbracoWillObsoleteAttribute.cs" />
<Compile Include="CodeAnnotations\UmbracoExperimentalFeatureAttribute.cs" />
<Compile Include="CodeAnnotations\UmbracoProposedPublicAttribute.cs" />
<Compile Include="Configuration\FileSystemProviderElement.cs" />