123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- using System;
- namespace Wayne.Lib.StateEngine
- {
-
-
-
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1036:OverrideMethodsOnComparableTypes")]
- public class EnterDescriptionAttribute : Attribute, IComparable
- {
- #region Fields
- private readonly string conditionText;
- private readonly object transitionType;
- private readonly bool unconditionalOverriding;
- #endregion
- #region Construction
-
-
-
-
- public EnterDescriptionAttribute(object transitionType):this("",transitionType)
- {
- this.transitionType = transitionType;
- }
-
-
-
-
-
- public EnterDescriptionAttribute(string conditionText, object transitionType)
- {
- this.conditionText = conditionText;
- this.transitionType = transitionType;
- }
-
-
-
-
-
-
- public EnterDescriptionAttribute(string conditionText, object transitionType,
- bool unconditionalOverriding)
- {
- this.conditionText = conditionText;
- this.transitionType = transitionType;
- this.unconditionalOverriding = unconditionalOverriding;
- }
- #endregion
- #region Properties
-
-
-
- public string ConditionText
- {
- get { return conditionText; }
- }
-
-
-
- public object TransitionType
- {
- get { return transitionType; }
- }
-
-
-
- public bool UnconditionalOverriding
- {
- get { return unconditionalOverriding; }
- }
- #endregion
- #region IComparable Members
-
-
-
-
-
- public virtual int CompareTo(object obj)
- {
- int result = 0;
- EventDescriptionAttribute compareEventDescriptionAttribute = obj as EventDescriptionAttribute;
- if ((compareEventDescriptionAttribute != null) && (!(this is EventDescriptionAttribute)))
- {
-
- result = -1;
- }
- else
- {
- EnterDescriptionAttribute compareEnterDescriptionAttribute = obj as EnterDescriptionAttribute;
- if (compareEnterDescriptionAttribute != null)
- {
- if ((TransitionType != null) && (compareEnterDescriptionAttribute.TransitionType != null))
- {
- result = TransitionType.ToString().CompareTo(compareEnterDescriptionAttribute.TransitionType.ToString());
- if (result == 0)
- result = ConditionText.CompareTo(compareEnterDescriptionAttribute.ConditionText);
- }
- else if (TransitionType != null)
- result = 1;
- else if (compareEnterDescriptionAttribute.TransitionType != null)
- result = -1;
- }
- }
- return result;
- }
-
-
-
-
-
- public override bool Equals(object obj)
- {
- EnterDescriptionAttribute compareEnterDescriptionAttribute = obj as EnterDescriptionAttribute;
- if (compareEnterDescriptionAttribute != null)
- {
- if (transitionType == null)
- return (compareEnterDescriptionAttribute.transitionType == null);
- return transitionType.Equals(compareEnterDescriptionAttribute.transitionType);
- }
- return base.Equals(obj);
- }
-
-
-
-
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- #endregion
- }
- }
|