Example #1
0
 bool IsLastVariableMapping(IMoRuleMapping mapping)
 {
     if (mapping.ClassID == MoCopyFromInputTags.kClassId)
     {
         var copy = (IMoCopyFromInput)mapping;
         if (IsLastVariable(copy.ContentRA))
         {
             return(true);
         }
     }
     return(false);
 }
Example #2
0
 bool IsFinalLastVariableMapping(IMoRuleMapping mapping)
 {
     if (IsLastVariableMapping(mapping))
     {
         int numLastVarMappings = 0;
         foreach (var curMapping in Rule.OutputOS)
         {
             if (IsLastVariableMapping(curMapping))
             {
                 numLastVarMappings++;
             }
         }
         return(numLastVarMappings == 1);
     }
     return(false);
 }
Example #3
0
        int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel)
        {
            ICmObject[] mappings = Rule.OutputOS.Cast <ICmObject>().ToArray();
            int         index    = GetInsertionIndex(mappings, sel);

            Rule.OutputOS.Insert(index, mapping);
            if (sel.IsRange)
            {
                IEnumerable <int> indices = GetIndicesToRemove(mappings, sel);
                foreach (int idx in indices)
                {
                    Rule.OutputOS.Remove((IMoRuleMapping)mappings[idx]);
                }
            }
            return(index);
        }
		private static XElement ExportRuleMapping(IMoRuleMapping ruleMapping)
		{
			switch (ruleMapping.ClassName)
			{
				default:
					// MoInsertNC is not supported as of 14 November 2009.
					throw new ArgumentException("Unrecognized subclass of IMoRuleMapping");
				case "MoInsertPhones":
					var insertPhones = (IMoInsertPhones)ruleMapping;
					return new XElement("MoInsertPhones",
						new XAttribute("Id", ruleMapping.Hvo),
						from insertContent in insertPhones.ContentRS
						 select ExportItemAsReference(insertContent, insertPhones.ContentRS.IndexOf(insertContent), "Content"));
				case "MoCopyFromInput":
					var copyFromInput = (IMoCopyFromInput)ruleMapping;
					return new XElement("MoCopyFromInput",
						new XAttribute("Id", ruleMapping.Hvo),
						ExportItemAsReference(copyFromInput.ContentRA, "Content"));
				case "MoModifyFromInput":
					var modifyFromInput = (IMoModifyFromInput)ruleMapping;
					return new XElement("MoModifyFromInput",
						new XAttribute("Id", ruleMapping.Hvo),
						ExportItemAsReference(modifyFromInput.ContentRA, "Content"),
						ExportItemAsReference(modifyFromInput.ModificationRA, "Modification"));
			}
		}
		bool IsFinalLastVariableMapping(IMoRuleMapping mapping)
		{
			if (IsLastVariableMapping(mapping))
			{
				int numLastVarMappings = 0;
				foreach (var curMapping in Rule.OutputOS)
				{
					if (IsLastVariableMapping(curMapping))
						numLastVarMappings++;
				}
				return numLastVarMappings == 1;
			}
			return false;
		}
		bool IsLastVariableMapping(IMoRuleMapping mapping)
		{
			if (mapping.ClassID == MoCopyFromInputTags.kClassId)
			{
				var copy = (IMoCopyFromInput) mapping;
				if (IsLastVariable(copy.ContentRA))
					return true;
			}
			return false;
		}
		int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel)
		{
			ICmObject[] mappings = Rule.OutputOS.Cast<ICmObject>().ToArray();
			int index = GetInsertionIndex(mappings, sel);
			Rule.OutputOS.Insert(index, mapping);
			if (sel.IsRange)
			{
				IEnumerable<int> indices = GetIndicesToRemove(mappings, sel);
				foreach (int idx in indices)
					Rule.OutputOS.Remove((IMoRuleMapping) mappings[idx]);
			}
			return index;
		}
		int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel)
		{
			int[] hvos = Rule.OutputOS.HvoArray;
			int index = GetInsertionIndex(hvos, sel);
			Rule.OutputOS.InsertAt(mapping, index);
			if (sel.IsRange)
			{
				IEnumerable<int> indices = GetIndicesToRemove(hvos, sel);
				foreach (int idx in indices)
				{
					IMoRuleMapping removeMapping = MoRuleMapping.CreateFromDBObject(m_cache, hvos[idx]);
					removeMapping.DeleteUnderlyingObject();
				}
			}
			return index;
		}