private void Init(XPathDocument xpDoc, FileAccess mode, bool strict, params string[] pageNames) { if (mode != FileAccess.Read) { throw new IOException(mode.ToString() + " not supported"); } var xslArgs = new XsltArgumentList(); if (pageNames.Length > 0) { var pageNameList = pageNames.Aggregate("|", (current, pageName) => current + (pageName + "|")); xslArgs.AddParam("selected-pages", String.Empty, pageNameList); } xslArgs.AddParam("strict", String.Empty, strict?"true":"false"); var xslt = Xml.GetCachedCompiledTransform("visio2003toRuleML.xsl"); var stream = new MemoryStream(); xslt.Transform(xpDoc, xslArgs, stream); stream.Seek(0, SeekOrigin.Begin); ruleBaseAdapter = new RuleML09NafDatalogAdapter(stream, FileAccess.Read); }
public void Init() { m_GedcomAdapter = new RuleML09NafDatalogAdapter(ruleFilesFolder + "gedcom-relations-0_9.ruleml", FileAccess.Read); m_TestUnitAdapter = new RuleML09NafDatalogAdapter(ruleFilesFolder + "test-0_9.ruleml", FileAccess.Read); m_CompositeAdapter = new CompositeRuleBaseAdapter("TestCompositeAdapter", "forward", m_GedcomAdapter, m_TestUnitAdapter); }
/// <summary> /// Get a specific list type from an adapter. /// </summary> /// <typeparam name="T">Type of the list to return</typeparam> /// <param name="adapter">adapter to return the list from</param> /// <param name="listType"></param> /// <returns></returns> private IList <T> GetAdaptersList <T>(IRuleBaseAdapter adapter, AdapterListType listType) { switch (listType) { case AdapterListType.Fact: return((IList <T>)adapter.Facts); case AdapterListType.Implication: return((IList <T>)adapter.Implications); case AdapterListType.Query: return((IList <T>)adapter.Queries); } IExtendedRuleBaseAdapter extendedAdapter = adapter as IExtendedRuleBaseAdapter; if (adapter != null) { switch (listType) { case AdapterListType.Retraction: return((IList <T>)extendedAdapter.Retractions); case AdapterListType.IntegrityQuery: return((IList <T>)extendedAdapter.IntegrityQueries); case AdapterListType.Equivalent: return((IList <T>)extendedAdapter.Equivalents); case AdapterListType.Assertion: return((IList <T>)extendedAdapter.Assertions); } } return(new List <T>(0)); }
private void Init(XPathDocument xpDoc, FileAccess mode, bool strict, params string[] pageNames) { if (mode != FileAccess.Read) throw new IOException(mode.ToString() + " not supported"); XsltArgumentList xslArgs = new XsltArgumentList(); if (pageNames.Length > 0) { string pageNameList = "|"; foreach(string pageName in pageNames) pageNameList += (pageName + "|"); xslArgs.AddParam("selected-pages", String.Empty, pageNameList); } xslArgs.AddParam("strict", String.Empty, strict?"true":"false"); XslCompiledTransform xslt = Xml.GetCachedCompiledTransform("visio2003toRuleML.xsl"); MemoryStream stream = new MemoryStream(); xslt.Transform(xpDoc, xslArgs, stream); stream.Seek(0, SeekOrigin.Begin); ruleBaseAdapter = new RuleML09NafDatalogAdapter(stream, FileAccess.Read); }