Example #1
0
 //------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------
 private void ReadChildDefinitionArcs(INode DefinitionLinkNode)
 {
     foreach (INode CurrentChild in DefinitionLinkNode.ChildNodes)
     {
         if (CurrentChild.LocalName.Equals("definitionArc") == true)
         {
             DefinitionArc NewDefinitionArc = new DefinitionArc(CurrentChild);
             this.DefinitionArcs.Add(NewDefinitionArc);
             ResolveLocators(NewDefinitionArc);
         }
     }
 }
Example #2
0
        //------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------
        private void ResolveLocators(DefinitionArc CurrentDefinitionArc)
        {
            //CurrentDefinitionArc.FromLocator = GetUnresolvedLocator(CurrentDefinitionArc.FromId);
            CurrentDefinitionArc.FromLocator = GetLocator(CurrentDefinitionArc.FromId);
            if (CurrentDefinitionArc.FromLocator != null)
            {
                thisUnresolvedLocators.Remove(CurrentDefinitionArc.FromLocator);
            }

            //CurrentDefinitionArc.ToLocator = GetUnresolvedLocator(CurrentDefinitionArc.ToId);
            CurrentDefinitionArc.ToLocator = GetLocator(CurrentDefinitionArc.ToId);
            if (CurrentDefinitionArc.ToLocator != null)
            {
                thisUnresolvedLocators.Remove(CurrentDefinitionArc.ToLocator);
            }
        }
Example #3
0
 /// <summary>
 /// Class constructor. This constructor will store a message and will automatically set the
 /// Exception property to a null value.
 /// </summary>
 /// <param name="arc">
 /// The definition arc containing the error being reported.
 /// </param>
 /// <param name="message">
 /// The message to be stored in the validation error.
 /// </param>
 internal DefinitionArcValidationError(DefinitionArc arc, string message)
     : base(message)
 {
     this.Arc = arc;
 }
Example #4
0
 /// <summary>
 /// Class constructor. This constructor will store a message and an exception.
 /// </summary>
 /// <param name="arc">
 /// The definition arc containing the error being reported.
 /// </param>
 /// <param name="message">
 /// The message to be stored in the validation error.
 /// </param>
 /// <param name="exception">
 /// The exception to be stored in the validation error.
 /// </param>
 internal DefinitionArcValidationError(DefinitionArc arc, string message, Exception exception)
     : base(message, exception)
 {
     this.Arc = arc;
 }
Example #5
0
        /// <summary>
        /// Validate the essence alias between two facts referenced in a definition arc using
        /// the set of all facts in the fragment. 
        /// </summary>
        /// <param name="EssenceAliasDefinitionArc">
        /// The definition arc defining the essence alias.
        /// </param>
        /// <param name="FactList">
        /// A collection of <see cref="Fact"/> objects defined in the fragment.
        /// </param>
        private void ValidateEssenceAliasedFacts(DefinitionArc EssenceAliasDefinitionArc, List<Fact> FactList)
        {
            Locator CurrentFromLocator = EssenceAliasDefinitionArc.FromLocator;
            if (CurrentFromLocator == null)
                throw new NullReferenceException("FromLocator is NULL in ValidateEssenceAliasedFacts()");
            Locator CurrentToLocator = EssenceAliasDefinitionArc.ToLocator;

            foreach (Fact CurrentFact in FactList)
            {
                if (CurrentFact is Item)
                {
                    var CurrentItem = CurrentFact as Item;
                    if (CurrentItem.Name.Equals(CurrentFromLocator.HrefResourceId) == true)
                        ValidateEssenceAliasedFacts(CurrentItem, FactList, CurrentToLocator.HrefResourceId);
                }
                else if (CurrentFact is Tuple)
                {
                    var CurrentTuple = CurrentFact as Tuple;
                    ValidateEssenceAliasedFacts(EssenceAliasDefinitionArc, CurrentTuple.Facts);
                }
            }
        }
Example #6
0
 /// <summary>
 /// Validate the essence alias between two facts referenced in a definition arc using
 /// the set of all facts in the fragment. 
 /// </summary>
 /// <param name="EssenceAliasDefinitionArc">
 /// The definition arc defining the essence alias.
 /// </param>
 private void ValidateEssenceAliasedFacts(DefinitionArc EssenceAliasDefinitionArc)
 {
     ValidateEssenceAliasedFacts(EssenceAliasDefinitionArc, thisFacts);
 }
Example #7
0
 //-------------------------------------------------------------------------------
 // Validate the "requires element" connection between two facts referenced in a
 // definition arc.
 //-------------------------------------------------------------------------------
 private void ValidateRequiresElementFacts(DefinitionArc RequiresElementDefinitionArc)
 {
     Locator CurrentFromLocator = RequiresElementDefinitionArc.FromLocator;
     Locator CurrentToLocator = RequiresElementDefinitionArc.ToLocator;
     int FromFactCount = CountFactInstances(CurrentFromLocator.HrefResourceId);
     int ToFactCount = CountFactInstances(CurrentToLocator.HrefResourceId);
     if (FromFactCount > ToFactCount)
     {
         StringBuilder MessageBuilder = new StringBuilder();
         string StringFormat = AssemblyResources.GetName("NotEnoughToFactsInRequiresElementRelationship");
         MessageBuilder.AppendFormat(StringFormat, CurrentFromLocator.HrefResourceId, CurrentToLocator.HrefResourceId);
         AddValidationError(new DefinitionArcValidationError(RequiresElementDefinitionArc, MessageBuilder.ToString()));
     }
 }
 //------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------
 private void ReadChildDefinitionArcs(XmlNode DefinitionLinkNode)
 {
     foreach (XmlNode CurrentChild in DefinitionLinkNode.ChildNodes)
     {
         if (CurrentChild.LocalName.Equals("definitionArc") == true)
         {
             DefinitionArc NewDefinitionArc = new DefinitionArc(CurrentChild);
             this.DefinitionArcs.Add(NewDefinitionArc);
             ResolveLocators(NewDefinitionArc);
         }
     }
 }
        //------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------
        private void ResolveLocators(DefinitionArc CurrentDefinitionArc)
        {
            //CurrentDefinitionArc.FromLocator = GetUnresolvedLocator(CurrentDefinitionArc.FromId);
            CurrentDefinitionArc.FromLocator = GetLocator(CurrentDefinitionArc.FromId);
            if (CurrentDefinitionArc.FromLocator != null)
                thisUnresolvedLocators.Remove(CurrentDefinitionArc.FromLocator);

            //CurrentDefinitionArc.ToLocator = GetUnresolvedLocator(CurrentDefinitionArc.ToId);
            CurrentDefinitionArc.ToLocator = GetLocator(CurrentDefinitionArc.ToId);
            if (CurrentDefinitionArc.ToLocator != null)
                thisUnresolvedLocators.Remove(CurrentDefinitionArc.ToLocator);
        }