예제 #1
0
        internal MatchDomainDecompositions EnforceDecompositions(string id, LL.MDE.DataModels.XML.Tag decompositions)
        {
            MatchDomainDecompositions match = new MatchDomainDecompositions();

            // Contructing decompositions
            LL.MDE.DataModels.XML.Tag decomposition = null;
            decomposition = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(decompositions, "childTags");

            // Contructing decomposition
            editor.AddOrSetInField(decomposition, "tagname", "FM-STRUCTURE-ELEMENT-REF");
            LL.MDE.DataModels.XML.Attribute idRef = null;
            idRef = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(decomposition, "attributes");

            LL.MDE.DataModels.XML.Attribute fidClassAttr = null;
            fidClassAttr = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(decomposition, "attributes");

            // Contructing idRef
            editor.AddOrSetInField(idRef, "name", "ID-REF");
            editor.AddOrSetInField(idRef, "value", id);

            // Contructing fidClassAttr
            editor.AddOrSetInField(fidClassAttr, "name", "F-ID-CLASS");
            editor.AddOrSetInField(fidClassAttr, "value", "FM-STRUCTURE-ELEMENT");

            // Return newly binded variables
            match.decompositions = decompositions;
            match.decomposition  = decomposition;
            match.idRef          = idRef;
            match.fidClassAttr   = fidClassAttr;
            return(match);
        }
        internal void Enforce(ISet <CheckResultAddStructureRoot> result, LL.MDE.DataModels.XML.Tag structureElements)
        {
            foreach (CheckResultAddStructureRoot match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.EnAr.Package abstractionLevelP = match.matchDomainAbstractionLevelP.abstractionLevelP;
                string alpName = match.matchDomainAbstractionLevelP.alpName;
                LL.MDE.DataModels.EnAr.Package fctsysP = match.matchDomainAbstractionLevelP.fctsysP;
                string fctsysName = match.matchDomainAbstractionLevelP.fctsysName;
                LL.MDE.DataModels.XML.Tag structure = match.matchDomainStructure.structure;

                // Assigning variables binded in the where clause
                string elementName = fctsysName + ' ' + alpName;

                // Enforcing each enforced domain
                MatchDomainStructureElements targetMatchDomainStructureElements = EnforceStructureElements(elementName, structureElements);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       fmStructureelement = targetMatchDomainStructureElements.fmStructureelement;
                LL.MDE.DataModels.XML.Tag       longName1          = targetMatchDomainStructureElements.longName1;
                LL.MDE.DataModels.XML.Tag       l41               = targetMatchDomainStructureElements.l41;
                LL.MDE.DataModels.XML.Attribute lAttr1            = targetMatchDomainStructureElements.lAttr1;
                LL.MDE.DataModels.XML.Tag       fmSeDecomposition = targetMatchDomainStructureElements.fmSeDecomposition;
                LL.MDE.DataModels.XML.Attribute structureId       = targetMatchDomainStructureElements.structureId;

                // Calling other relations as defined in the where clause
                new RelationCreateStructureRootLink(editor, transformation).CheckAndEnforce(structureId, structure); new RelationRootProperty2StructureElement(editor, transformation).CheckAndEnforce(abstractionLevelP, fmSeDecomposition, structure, structureElements);
            }
        }
예제 #3
0
        internal MatchDomainFmStructure EnforceFmStructure(string id, LL.MDE.DataModels.XML.Tag fmStructure)
        {
            MatchDomainFmStructure match = new MatchDomainFmStructure();

            // Contructing fmStructure
            LL.MDE.DataModels.XML.Tag fmStructureRoot = null;
            fmStructureRoot = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructure, "childTags");

            // Contructing fmStructureRoot
            editor.AddOrSetInField(fmStructureRoot, "tagname", "FM-STRUCTURE-ROOT");
            LL.MDE.DataModels.XML.Tag fmStructureElementRef = null;
            fmStructureElementRef = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructureRoot, "childTags");

            // Contructing fmStructureElementRef
            editor.AddOrSetInField(fmStructureElementRef, "tagname", "FM-STRUCTURE-ELEMENT-REF");
            LL.MDE.DataModels.XML.Attribute idRef = null;
            idRef = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(fmStructureElementRef, "attributes");

            // Contructing idRef
            editor.AddOrSetInField(idRef, "name", "ID-REF");
            editor.AddOrSetInField(idRef, "value", id);

            // Return newly binded variables
            match.fmStructure           = fmStructure;
            match.fmStructureRoot       = fmStructureRoot;
            match.fmStructureElementRef = fmStructureElementRef;
            match.idRef = idRef;
            return(match);
        }
예제 #4
0
        internal void Enforce(ISet <CheckResultEA2FMEA_Start> result, LL.MDE.DataModels.XML.XMLFile fmeaFile)
        {
            foreach (CheckResultEA2FMEA_Start match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.EnAr.Package alP      = match.matchDomainAlP.alP;
                LL.MDE.DataModels.EnAr.Element alPE     = match.matchDomainAlP.alPE;
                LL.MDE.DataModels.EnAr.Package projectP = match.matchDomainAlP.projectP;
                string projectName = match.matchDomainAlP.projectName;
                LL.MDE.DataModels.EnAr.Element projectPE = match.matchDomainAlP.projectPE;

                // Assigning variables binded in the where clause

                // Enforcing each enforced domain
                MatchDomainFmeaFile targetMatchDomainFmeaFile = EnforceFmeaFile(projectName, fmeaFile);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       msrfmea                = targetMatchDomainFmeaFile.msrfmea;
                LL.MDE.DataModels.XML.Tag       fmProjectsTag          = targetMatchDomainFmeaFile.fmProjectsTag;
                LL.MDE.DataModels.XML.Tag       fmProjectTag           = targetMatchDomainFmeaFile.fmProjectTag;
                LL.MDE.DataModels.XML.Tag       fmStructureRefs        = targetMatchDomainFmeaFile.fmStructureRefs;
                LL.MDE.DataModels.XML.Tag       longName1              = targetMatchDomainFmeaFile.longName1;
                LL.MDE.DataModels.XML.Tag       l41                    = targetMatchDomainFmeaFile.l41;
                LL.MDE.DataModels.XML.Attribute lAttr1                 = targetMatchDomainFmeaFile.lAttr1;
                LL.MDE.DataModels.XML.Tag       fmStructureElementsTag = targetMatchDomainFmeaFile.fmStructureElementsTag;
                LL.MDE.DataModels.XML.Tag       fmStructures           = targetMatchDomainFmeaFile.fmStructures;

                // Calling other relations as defined in the where clause
                new RelationProduct2Structure(editor, transformation).CheckAndEnforce(alP, fmStructureRefs, fmStructureElementsTag, fmStructures);
            }
        }
예제 #5
0
        internal void Enforce(ISet <CheckResultBlockProperty2StructureElement> result, LL.MDE.DataModels.XML.Tag structureElements)
        {
            foreach (CheckResultBlockProperty2StructureElement match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.EnAr.Element parentEl = match.matchDomainParentEl.parentEl;
                long sid = match.matchDomainParentEl.sid;
                LL.MDE.DataModels.EnAr.Connector aggregation = match.matchDomainParentEl.aggregation;
                int cid = match.matchDomainParentEl.cid;
                LL.MDE.DataModels.EnAr.Element childEl = match.matchDomainParentEl.childEl;
                string id     = match.matchDomainParentEl.id;
                string elName = match.matchDomainParentEl.elName;
                LL.MDE.DataModels.EnAr.Element classifierEl = match.matchDomainParentEl.classifierEl;
                string classifierName = match.matchDomainParentEl.classifierName;
                LL.MDE.DataModels.XML.Tag parentSeDecomposition = match.matchDomainParentSeDecomposition.parentSeDecomposition;

                // Assigning variables binded in the where clause
                string name = elName + ':' + classifierName;

                // Enforcing each enforced domain
                MatchDomainStructureElements targetMatchDomainStructureElements = EnforceStructureElements(name, id, structureElements);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       fmStructureelement = targetMatchDomainStructureElements.fmStructureelement;
                LL.MDE.DataModels.XML.Tag       fmSeDecomposition  = targetMatchDomainStructureElements.fmSeDecomposition;
                LL.MDE.DataModels.XML.Tag       longName1          = targetMatchDomainStructureElements.longName1;
                LL.MDE.DataModels.XML.Tag       l41         = targetMatchDomainStructureElements.l41;
                LL.MDE.DataModels.XML.Attribute lAttr1      = targetMatchDomainStructureElements.lAttr1;
                LL.MDE.DataModels.XML.Attribute structureId = targetMatchDomainStructureElements.structureId;

                // Calling other relations as defined in the where clause
                new RelationCreateDecompositionLink(editor, transformation).CheckAndEnforce(structureId, parentSeDecomposition); new RelationBlockProperty2StructureElement(editor, transformation).CheckAndEnforce(childEl, fmSeDecomposition, structureElements);
            }
        }
        internal void Enforce(ISet <CheckResultProduct2Structure> result, LL.MDE.DataModels.XML.Tag fmStructures)
        {
            foreach (CheckResultProduct2Structure match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.EnAr.Package productP = match.matchDomainProductP.productP;
                string productName = match.matchDomainProductP.productName;
                LL.MDE.DataModels.EnAr.Element productPE = match.matchDomainProductP.productPE;
                string productID = match.matchDomainProductP.productID;
                LL.MDE.DataModels.XML.Tag fmStructureRefs     = match.matchDomainFmStructureRefs.fmStructureRefs;
                LL.MDE.DataModels.XML.Tag fmStructureElements = match.matchDomainFmStructureElements.fmStructureElements;

                // Assigning variables binded in the where clause

                // Enforcing each enforced domain
                MatchDomainFmStructures targetMatchDomainFmStructures = EnforceFmStructures(productID, productName, fmStructures);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       fmStructure = targetMatchDomainFmStructures.fmStructure;
                LL.MDE.DataModels.XML.Attribute structureId = targetMatchDomainFmStructures.structureId;
                LL.MDE.DataModels.XML.Tag       longName1   = targetMatchDomainFmStructures.longName1;
                LL.MDE.DataModels.XML.Tag       l41         = targetMatchDomainFmStructures.l41;
                LL.MDE.DataModels.XML.Attribute lAttr1      = targetMatchDomainFmStructures.lAttr1;

                // Calling other relations as defined in the where clause
                new RelationCreateProjectStructureLink(editor, transformation).CheckAndEnforce(structureId, fmStructureRefs); new RelationAddStructureRoot(editor, transformation).CheckAndEnforce(productP, fmStructure, fmStructureElements);
            }
        }
예제 #7
0
        internal MatchDomainStructureElements EnforceStructureElements(string name, string id, LL.MDE.DataModels.XML.Tag structureElements)
        {
            MatchDomainStructureElements match = new MatchDomainStructureElements();

            // Contructing structureElements
            LL.MDE.DataModels.XML.Tag fmStructureelement = null;
            fmStructureelement = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(structureElements, "childTags");

            // Contructing fmStructureelement
            editor.AddOrSetInField(fmStructureelement, "tagname", "FM-STRUCTURE-ELEMENT");
            LL.MDE.DataModels.XML.Tag fmSeDecomposition = null;
            fmSeDecomposition = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructureelement, "childTags");

            LL.MDE.DataModels.XML.Tag longName1 = null;
            longName1 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructureelement, "childTags");

            LL.MDE.DataModels.XML.Attribute structureId = null;
            structureId = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(fmStructureelement, "attributes");

            // Contructing fmSeDecomposition
            editor.AddOrSetInField(fmSeDecomposition, "tagname", "FM-SE-DECOMPOSITION");

            // Contructing longName1
            editor.AddOrSetInField(longName1, "tagname", "LONG-NAME");
            LL.MDE.DataModels.XML.Tag l41 = null;
            l41 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(longName1, "childTags");

            // Contructing l41
            editor.AddOrSetInField(l41, "tagname", "L-4");
            editor.AddOrSetInField(l41, "value", name);
            LL.MDE.DataModels.XML.Attribute lAttr1 = null;
            lAttr1 = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(l41, "attributes");

            // Contructing lAttr1
            editor.AddOrSetInField(lAttr1, "name", "L");
            editor.AddOrSetInField(lAttr1, "value", "bp2se");

            // Contructing structureId
            editor.AddOrSetInField(structureId, "name", "ID");
            editor.AddOrSetInField(structureId, "value", id);

            // Return newly binded variables
            match.structureElements  = structureElements;
            match.fmStructureelement = fmStructureelement;
            match.fmSeDecomposition  = fmSeDecomposition;
            match.longName1          = longName1;
            match.l41         = l41;
            match.lAttr1      = lAttr1;
            match.structureId = structureId;
            return(match);
        }
예제 #8
0
        internal static ISet <MatchDomainTagId> CheckDomainTagId(LL.MDE.DataModels.XML.Attribute tagId)
        {
            ISet <MatchDomainTagId> result = new HashSet <MatchDomainTagId>();
            string           id            = tagId.value;
            MatchDomainTagId match         = new MatchDomainTagId()
            {
                tagId = tagId,
                id    = id,
            };

            result.Add(match);

            return(result);
        }
        internal static ISet <MatchDomainStructureIdRef> CheckDomainStructureIdRef(LL.MDE.DataModels.XML.Attribute structureIdRef)
        {
            ISet <MatchDomainStructureIdRef> result = new HashSet <MatchDomainStructureIdRef>();
            string id = structureIdRef.value;
            MatchDomainStructureIdRef match = new MatchDomainStructureIdRef()
            {
                structureIdRef = structureIdRef,
                id             = id,
            };

            result.Add(match);

            return(result);
        }
        internal static ISet <CheckResultCreateProjectStructureLink> Check(LL.MDE.DataModels.XML.Attribute structureIdRef)
        {
            ISet <CheckResultCreateProjectStructureLink> result = new HashSet <CheckResultCreateProjectStructureLink>(); ISet <MatchDomainStructureIdRef> matchDomainStructureIdRefs = CheckDomainStructureIdRef(structureIdRef); foreach (MatchDomainStructureIdRef matchDomainStructureIdRef in matchDomainStructureIdRefs)

            {
                string id = matchDomainStructureIdRef.id;

                CheckResultCreateProjectStructureLink checkonlysMatch = new CheckResultCreateProjectStructureLink()
                {
                    matchDomainStructureIdRef = matchDomainStructureIdRef,
                };
                result.Add(checkonlysMatch);
            }                                                             // End foreach
            return(result);
        }
예제 #11
0
        internal static ISet <CheckResultCreateDecompositionLink> Check(LL.MDE.DataModels.XML.Attribute tagId)
        {
            ISet <CheckResultCreateDecompositionLink> result = new HashSet <CheckResultCreateDecompositionLink>(); ISet <MatchDomainTagId> matchDomainTagIds = CheckDomainTagId(tagId); foreach (MatchDomainTagId matchDomainTagId in matchDomainTagIds)

            {
                string id = matchDomainTagId.id;

                CheckResultCreateDecompositionLink checkonlysMatch = new CheckResultCreateDecompositionLink()
                {
                    matchDomainTagId = matchDomainTagId,
                };
                result.Add(checkonlysMatch);
            }                                                             // End foreach
            return(result);
        }
        internal void CheckAndEnforce(LL.MDE.DataModels.XML.Attribute structureIdRef, LL.MDE.DataModels.XML.Tag fmStructureRefs)
        {
            CheckOnlyDomains input  = new CheckOnlyDomains(structureIdRef);
            EnforceDomains   output = new EnforceDomains(fmStructureRefs);

            if (traceabilityMap.ContainsKey(input) && !traceabilityMap[input].Equals(output))
            {
                throw new Exception("This relation has already been used with different enforced parameters!");
            }
            if (!traceabilityMap.ContainsKey(input))
            {
                ISet <CheckResultCreateProjectStructureLink> result = Check(structureIdRef);
                Enforce(result, fmStructureRefs);
                traceabilityMap[input] = output;
            }
        }
예제 #13
0
        internal void CheckAndEnforce(LL.MDE.DataModels.XML.Attribute tagId, LL.MDE.DataModels.XML.Tag decompositions)
        {
            CheckOnlyDomains input  = new CheckOnlyDomains(tagId);
            EnforceDomains   output = new EnforceDomains(decompositions);

            if (traceabilityMap.ContainsKey(input) && !traceabilityMap[input].Equals(output))
            {
                throw new Exception("This relation has already been used with different enforced parameters!");
            }
            if (!traceabilityMap.ContainsKey(input))
            {
                ISet <CheckResultCreateDecompositionLink> result = Check(tagId);
                Enforce(result, decompositions);
                traceabilityMap[input] = output;
            }
        }
        internal void Enforce(ISet <CheckResultCreateProjectStructureLink> result, LL.MDE.DataModels.XML.Tag fmStructureRefs)
        {
            foreach (CheckResultCreateProjectStructureLink match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.XML.Attribute structureIdRef = match.matchDomainStructureIdRef.structureIdRef;
                string id = match.matchDomainStructureIdRef.id;

                // Enforcing each enforced domain
                MatchDomainFmStructureRefs targetMatchDomainFmStructureRefs = EnforceFmStructureRefs(id, fmStructureRefs);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       fmStructureRef = targetMatchDomainFmStructureRefs.fmStructureRef;
                LL.MDE.DataModels.XML.Attribute idRef          = targetMatchDomainFmStructureRefs.idRef;
            }
        }
예제 #15
0
        internal void Enforce(ISet <CheckResultCreateDecompositionLink> result, LL.MDE.DataModels.XML.Tag decompositions)
        {
            foreach (CheckResultCreateDecompositionLink match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.XML.Attribute tagId = match.matchDomainTagId.tagId;
                string id = match.matchDomainTagId.id;

                // Enforcing each enforced domain
                MatchDomainDecompositions targetMatchDomainDecompositions = EnforceDecompositions(id, decompositions);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       decomposition = targetMatchDomainDecompositions.decomposition;
                LL.MDE.DataModels.XML.Attribute idRef         = targetMatchDomainDecompositions.idRef;
                LL.MDE.DataModels.XML.Attribute fidClassAttr  = targetMatchDomainDecompositions.fidClassAttr;
            }
        }
예제 #16
0
        internal void Enforce(ISet <CheckResultCreateStructureRootLink> result, LL.MDE.DataModels.XML.Tag fmStructure)
        {
            foreach (CheckResultCreateStructureRootLink match in result)
            {
                // Extracting variables binded in source domains
                LL.MDE.DataModels.XML.Attribute structureElementRef = match.matchDomainStructureElementRef.structureElementRef;
                string id = match.matchDomainStructureElementRef.id;

                // Enforcing each enforced domain
                MatchDomainFmStructure targetMatchDomainFmStructure = EnforceFmStructure(id, fmStructure);

                // Retrieving variables binded in the enforced domains
                LL.MDE.DataModels.XML.Tag       fmStructureRoot       = targetMatchDomainFmStructure.fmStructureRoot;
                LL.MDE.DataModels.XML.Tag       fmStructureElementRef = targetMatchDomainFmStructure.fmStructureElementRef;
                LL.MDE.DataModels.XML.Attribute idRef = targetMatchDomainFmStructure.idRef;
            }
        }
        internal MatchDomainFmStructures EnforceFmStructures(string productID, string productName, LL.MDE.DataModels.XML.Tag fmStructures)
        {
            MatchDomainFmStructures match = new MatchDomainFmStructures();

            // Contructing fmStructures
            LL.MDE.DataModels.XML.Tag fmStructure = null;
            fmStructure = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructures, "childTags");

            // Contructing fmStructure
            editor.AddOrSetInField(fmStructure, "tagname", "FM-STRUCTURE");
            LL.MDE.DataModels.XML.Attribute structureId = null;
            structureId = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(fmStructure, "attributes");

            LL.MDE.DataModels.XML.Tag longName1 = null;
            longName1 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructure, "childTags");

            // Contructing structureId
            editor.AddOrSetInField(structureId, "name", "ID");
            editor.AddOrSetInField(structureId, "value", productID);

            // Contructing longName1
            editor.AddOrSetInField(longName1, "tagname", "LONG-NAME");
            LL.MDE.DataModels.XML.Tag l41 = null;
            l41 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(longName1, "childTags");

            // Contructing l41
            editor.AddOrSetInField(l41, "tagname", "L-4");
            editor.AddOrSetInField(l41, "value", productName);
            LL.MDE.DataModels.XML.Attribute lAttr1 = null;
            lAttr1 = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(l41, "attributes");

            // Contructing lAttr1
            editor.AddOrSetInField(lAttr1, "name", "L");
            editor.AddOrSetInField(lAttr1, "value", "Product2Structure");

            // Return newly binded variables
            match.fmStructures = fmStructures;
            match.fmStructure  = fmStructure;
            match.structureId  = structureId;
            match.longName1    = longName1;
            match.l41          = l41;
            match.lAttr1       = lAttr1;
            return(match);
        }
        internal MatchDomainFmStructureRefs EnforceFmStructureRefs(string id, LL.MDE.DataModels.XML.Tag fmStructureRefs)
        {
            MatchDomainFmStructureRefs match = new MatchDomainFmStructureRefs();

            // Contructing fmStructureRefs
            LL.MDE.DataModels.XML.Tag fmStructureRef = null;
            fmStructureRef = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmStructureRefs, "childTags");

            // Contructing fmStructureRef
            editor.AddOrSetInField(fmStructureRef, "tagname", "FM-STRUCTURE-REF");
            LL.MDE.DataModels.XML.Attribute idRef = null;
            idRef = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(fmStructureRef, "attributes");

            // Contructing idRef
            editor.AddOrSetInField(idRef, "name", "ID-REF");
            editor.AddOrSetInField(idRef, "value", id);

            // Return newly binded variables
            match.fmStructureRefs = fmStructureRefs;
            match.fmStructureRef  = fmStructureRef;
            match.idRef           = idRef;
            return(match);
        }
예제 #19
0
        internal MatchDomainFmeaFile EnforceFmeaFile(string projectName, LL.MDE.DataModels.XML.XMLFile fmeaFile)
        {
            MatchDomainFmeaFile match = new MatchDomainFmeaFile();

            // Contructing fmeaFile
            editor.AddOrSetInField(fmeaFile, "encoding", "ISO-8859-1");
            editor.AddOrSetInField(fmeaFile, "filename", "C:\vectortest\fmeatest3.xml");
            LL.MDE.DataModels.XML.Tag msrfmea = null;
            msrfmea = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmeaFile, "content");

            // Contructing msrfmea
            editor.AddOrSetInField(msrfmea, "tagname", "MSRFMEA");
            LL.MDE.DataModels.XML.Tag fmProjectsTag = null;
            fmProjectsTag = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(msrfmea, "childTags");

            LL.MDE.DataModels.XML.Tag fmStructureElementsTag = null;
            fmStructureElementsTag = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(msrfmea, "childTags");

            LL.MDE.DataModels.XML.Tag fmStructures = null;
            fmStructures = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(msrfmea, "childTags");

            // Contructing fmProjectsTag
            editor.AddOrSetInField(fmProjectsTag, "tagname", "FM-PROJECTS");
            LL.MDE.DataModels.XML.Tag fmProjectTag = null;
            fmProjectTag = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmProjectsTag, "childTags");

            // Contructing fmProjectTag
            editor.AddOrSetInField(fmProjectTag, "tagname", "FM-PROJECT");
            LL.MDE.DataModels.XML.Tag fmStructureRefs = null;
            fmStructureRefs = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmProjectTag, "childTags");

            LL.MDE.DataModels.XML.Tag longName1 = null;
            longName1 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(fmProjectTag, "childTags");

            // Contructing fmStructureRefs
            editor.AddOrSetInField(fmStructureRefs, "tagname", "FM-STRUCTURE-REFS");

            // Contructing longName1
            editor.AddOrSetInField(longName1, "tagname", "LONG-NAME");
            LL.MDE.DataModels.XML.Tag l41 = null;
            l41 = (LL.MDE.DataModels.XML.Tag)editor.CreateNewObjectInField(longName1, "childTags");

            // Contructing l41
            editor.AddOrSetInField(l41, "tagname", "L-4");
            editor.AddOrSetInField(l41, "value", projectName);
            LL.MDE.DataModels.XML.Attribute lAttr1 = null;
            lAttr1 = (LL.MDE.DataModels.XML.Attribute)editor.CreateNewObjectInField(l41, "attributes");

            // Contructing lAttr1
            editor.AddOrSetInField(lAttr1, "name", "L");

            // Contructing fmStructureElementsTag
            editor.AddOrSetInField(fmStructureElementsTag, "tagname", "FM-STRUCTURE-ELEMENTS");

            // Contructing fmStructures
            editor.AddOrSetInField(fmStructures, "tagname", "FM-STRUCTURES");

            // Return newly binded variables
            match.fmeaFile               = fmeaFile;
            match.msrfmea                = msrfmea;
            match.fmProjectsTag          = fmProjectsTag;
            match.fmProjectTag           = fmProjectTag;
            match.fmStructureRefs        = fmStructureRefs;
            match.longName1              = longName1;
            match.l41                    = l41;
            match.lAttr1                 = lAttr1;
            match.fmStructureElementsTag = fmStructureElementsTag;
            match.fmStructures           = fmStructures;
            return(match);
        }
        public EnforceDomains FindPreviousResult(LL.MDE.DataModels.XML.Attribute structureIdRef)
        {
            CheckOnlyDomains input = new CheckOnlyDomains(structureIdRef);

            return(traceabilityMap.ContainsKey(input) ? traceabilityMap[input] : null);
        }