/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { if (!generatorElement.HasAttribute("min")) { throw new InvalidFormatException("The min attribute is not specified."); } if (!generatorElement.HasAttribute("max")) { throw new InvalidFormatException("The max attribute is not specified."); } int min, max; if (!int.TryParse(generatorElement.GetAttribute("min"), out min)) { throw new InvalidFormatException("The min attribute is not a number!"); } if (!int.TryParse(generatorElement.GetAttribute("max"), out max)) { throw new InvalidFormatException("The max attribute is not a number!"); } return(new CharacterNgramFeatureGenerator(min, max)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var nestedGeneratorElement = generatorElement.ChildNodes.OfType <XmlElement>().Select(childNode => childNode).FirstOrDefault(); if (nestedGeneratorElement == null) { throw new InvalidFormatException("window feature generator must contain an aggregator element"); } var nestedGenerator = GeneratorFactory.CreateGenerator(nestedGeneratorElement, provider); var prevLengthString = generatorElement.GetAttribute("prevLength"); int prevLength; if (!int.TryParse(prevLengthString, out prevLength)) { throw new InvalidFormatException("prevLength attribute is not a number!"); } var nextLengthString = generatorElement.GetAttribute("nextLength"); int nextLength; if (!int.TryParse(nextLengthString, out nextLength)) { throw new InvalidFormatException("prevLength attribute is not a number!"); } return(new WindowFeatureGenerator(nestedGenerator, prevLength, nextLength)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var className = generatorElement.GetAttribute("class"); if (!Library.TypeResolver.IsRegistered(className)) throw new NotSupportedException("The class " + className + " is not registered on the TypeResolver."); var type = Library.TypeResolver.ResolveType(className); try { var generator = (IAdaptiveFeatureGenerator) Activator.CreateInstance(type); var customGenerator = generator as CustomFeatureGenerator; if (customGenerator == null) return generator; var properties = generatorElement.Attributes.Cast<XmlAttribute>() .Where(attribute => attribute.Name != "class") .ToDictionary(attribute => attribute.Name, attribute => attribute.Value); if (provider != null) { customGenerator.Init(properties, provider); } return generator; } catch (Exception ex) { throw new InvalidOperationException("Unable to create the feature generator.", ex); } }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictResourceKey = generatorElement.GetAttribute("dict"); var dictResource = provider(dictResourceKey); if (!(dictResource is BrownCluster)) throw new InvalidFormatException("Not a BrownLexicon resource for key: " + dictResourceKey); return new BrownTokenFeatureGenerator((BrownCluster) dictResource); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from an provided XML descriptor. /// /// Usually this XML descriptor contains a set of nested feature generators /// which are then used to generate the features by one of the opennlp components. /// </summary> /// <param name="inputStream">The <see cref="Stream"/> from which the descriptor is read, the stream remains open and must be closed by the caller.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>Created feature generators.</returns> public static IAdaptiveFeatureGenerator Create(Stream inputStream, FeatureGeneratorResourceProvider provider) { var doc = new XmlDocument(); try { doc.Load(inputStream); } catch (Exception ex) { throw new InvalidDataException("Unable to load the XML file.", ex); } return(CreateGenerator(doc.DocumentElement, provider)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var aggregatedGenerators = new List<IAdaptiveFeatureGenerator>(); for (var i = 0; i < generatorElement.ChildNodes.Count; i++) { var element = generatorElement.ChildNodes.Item(i) as XmlElement; if (element != null) { aggregatedGenerators.Add(GeneratorFactory.CreateGenerator(element, provider)); } } return new AggregatedFeatureGenerator(aggregatedGenerators); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create( XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictKey = generatorElement.GetAttribute("dict"); var lowerCase = generatorElement.GetAttribute("lowerCase") == "true"; var dictResource = provider(dictKey) as WordClusterDictionary; if (dictResource == null) throw new InvalidOperationException("Not a WordClusterDictionary resource for key: " + dictKey); return new WordClusterFeatureGenerator(dictResource, dictKey, lowerCase); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictKey = generatorElement.GetAttribute("dict"); var dictPfx = generatorElement.GetAttribute("prefix"); var dictObj = provider(dictKey); var dict = dictObj as Dictionary.Dictionary; if (dict == null) throw new InvalidFormatException("No dictionary resource for key: " + dictKey); return new DictionaryFeatureGenerator(dictPfx, dict); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictResourceKey = generatorElement.GetAttribute("dict"); var dictResource = provider(dictResourceKey); if (!(dictResource is BrownCluster)) { throw new InvalidFormatException("Not a BrownLexicon resource for key: " + dictResourceKey); } return(new BrownBigramFeatureGenerator((BrownCluster)dictResource)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var beginFeatureString = generatorElement.GetAttribute("begin"); var beginFeature = true; if (beginFeatureString.Length != 0) beginFeature = bool.Parse(beginFeatureString); var endFeatureString = generatorElement.GetAttribute("end"); var endFeature = true; if (endFeatureString.Length != 0) endFeature = bool.Parse(endFeatureString); return new SentenceFeatureGenerator(beginFeature, endFeature); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create( XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictKey = generatorElement.GetAttribute("dict"); var lowerCase = generatorElement.GetAttribute("lowerCase") == "true"; var dictResource = provider(dictKey) as WordClusterDictionary; if (dictResource == null) { throw new InvalidOperationException("Not a WordClusterDictionary resource for key: " + dictKey); } return(new WordClusterFeatureGenerator(dictResource, dictKey, lowerCase)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { XmlElement cachedGeneratorElement = null; foreach (var childNode in generatorElement.ChildNodes) { var element = childNode as XmlElement; if (element != null) { cachedGeneratorElement = element; break; } } if (cachedGeneratorElement == null) throw new InvalidFormatException("Could not find containing generator element!"); return new CachedFeatureGenerator(GeneratorFactory.CreateGenerator(cachedGeneratorElement, provider)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictKey = generatorElement.GetAttribute("dict"); // TODO: create W2VClassesDictionary serialization. var dictObj = provider(dictKey); var dict = dictObj as W2VClassesDictionary; if (dict == null) { throw new InvalidFormatException("Not a W2VClassesDictionary resource for key: " + dictKey); } return(new WordClusterFeatureGenerator(dict)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var aggregatedGenerators = new List <IAdaptiveFeatureGenerator>(); for (var i = 0; i < generatorElement.ChildNodes.Count; i++) { var element = generatorElement.ChildNodes.Item(i) as XmlElement; if (element != null) { aggregatedGenerators.Add(GeneratorFactory.CreateGenerator(element, provider)); } } return(new AggregatedFeatureGenerator(aggregatedGenerators)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var dictKey = generatorElement.GetAttribute("dict"); var dictPfx = generatorElement.GetAttribute("prefix"); var dictObj = provider(dictKey); var dict = dictObj as Dictionary.Dictionary; if (dict == null) { throw new InvalidFormatException("No dictionary resource for key: " + dictKey); } return(new DictionaryFeatureGenerator(dictPfx, dict)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { if (!generatorElement.HasAttribute("min")) throw new InvalidFormatException("The min attribute is not specified."); if (!generatorElement.HasAttribute("max")) throw new InvalidFormatException("The max attribute is not specified."); int min, max; if (!int.TryParse(generatorElement.GetAttribute("min"), out min)) throw new InvalidFormatException("The min attribute is not a number!"); if (!int.TryParse(generatorElement.GetAttribute("max"), out max)) throw new InvalidFormatException("The max attribute is not a number!"); return new CharacterNgramFeatureGenerator(min, max); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var beginFeatureString = generatorElement.GetAttribute("begin"); var beginFeature = true; if (beginFeatureString.Length != 0) { beginFeature = bool.Parse(beginFeatureString); } var endFeatureString = generatorElement.GetAttribute("end"); var endFeature = true; if (endFeatureString.Length != 0) { endFeature = bool.Parse(endFeatureString); } return(new SentenceFeatureGenerator(beginFeature, endFeature)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { XmlElement cachedGeneratorElement = null; foreach (var childNode in generatorElement.ChildNodes) { var element = childNode as XmlElement; if (element != null) { cachedGeneratorElement = element; break; } } if (cachedGeneratorElement == null) { throw new InvalidFormatException("Could not find containing generator element!"); } return(new CachedFeatureGenerator(GeneratorFactory.CreateGenerator(cachedGeneratorElement, provider))); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var nestedGeneratorElement = generatorElement.ChildNodes.OfType<XmlElement>().Select(childNode => childNode).FirstOrDefault(); if (nestedGeneratorElement == null) throw new InvalidFormatException("window feature generator must contain an aggregator element"); var nestedGenerator = GeneratorFactory.CreateGenerator(nestedGeneratorElement, provider); var prevLengthString = generatorElement.GetAttribute("prevLength"); int prevLength; if (!int.TryParse(prevLengthString, out prevLength)) throw new InvalidFormatException("prevLength attribute is not a number!"); var nextLengthString = generatorElement.GetAttribute("nextLength"); int nextLength; if (!int.TryParse(nextLengthString, out nextLength)) throw new InvalidFormatException("prevLength attribute is not a number!"); return new WindowFeatureGenerator(nestedGenerator, prevLength, nextLength); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return(new TokenPatternFeatureGenerator()); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { // TODO: Make it configurable ... return new TokenClassFeatureGenerator(true); }
/// <summary> /// Initialized the Custom Feature Generator with defined properties and loaded resources. /// </summary> /// <param name="properties">The properties.</param> /// <param name="provider">The resource provider.</param> public abstract void Init(Dictionary <string, string> properties, FeatureGeneratorResourceProvider provider);
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return(new BigramNameFeatureGenerator()); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return new BigramNameFeatureGenerator(); }
/// <summary> /// Creates a <see cref="IAdaptiveFeatureGenerator"/> for the provided element. /// To accomplish this it looks up the corresponding factory by the /// element tag name. The factory is then responsible for the creation /// of the generator from the element. /// </summary> /// <param name="generatorElement">The generator element.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>IAdaptiveFeatureGenerator.</returns> /// <exception cref="InvalidFormatException">Unexpected element: + generatorElement.Name</exception> internal static IAdaptiveFeatureGenerator CreateGenerator(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { if (factories.ContainsKey(generatorElement.Name)) { var factory = factories[generatorElement.Name]; return factory.Create(generatorElement, provider); } throw new InvalidFormatException("Unexpected element: " + generatorElement.Name); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from an provided XML descriptor. /// /// Usually this XML descriptor contains a set of nested feature generators /// which are then used to generate the features by one of the opennlp components. /// </summary> /// <param name="inputStream">The <see cref="Stream"/> from which the descriptor is read, the stream remains open and must be closed by the caller.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>Created feature generators.</returns> public static IAdaptiveFeatureGenerator Create(Stream inputStream, FeatureGeneratorResourceProvider provider) { var doc = new XmlDocument(); try { doc.Load(inputStream); } catch (Exception ex) { throw new InvalidDataException("Unable to load the XML file.", ex); } return CreateGenerator(doc.DocumentElement, provider); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return new PreviousMapFeatureGenerator(); }
/// <summary> /// Creates a <see cref="IAdaptiveFeatureGenerator"/> for the provided element. /// To accomplish this it looks up the corresponding factory by the /// element tag name. The factory is then responsible for the creation /// of the generator from the element. /// </summary> /// <param name="generatorElement">The generator element.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>IAdaptiveFeatureGenerator.</returns> /// <exception cref="InvalidFormatException">Unexpected element: + generatorElement.Name</exception> internal static IAdaptiveFeatureGenerator CreateGenerator(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { if (factories.ContainsKey(generatorElement.Name)) { var factory = factories[generatorElement.Name]; return(factory.Create(generatorElement, provider)); } throw new InvalidFormatException("Unexpected element: " + generatorElement.Name); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which is used to resolve resources referenced by a key in the descriptor.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public abstract IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider);
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { var className = generatorElement.GetAttribute("class"); if (!Library.TypeResolver.IsRegistered(className)) { throw new NotSupportedException("The class " + className + " is not registered on the TypeResolver."); } var type = Library.TypeResolver.ResolveType(className); try { var generator = (IAdaptiveFeatureGenerator)Activator.CreateInstance(type); var customGenerator = generator as CustomFeatureGenerator; if (customGenerator == null) { return(generator); } var properties = generatorElement.Attributes.Cast <XmlAttribute>() .Where(attribute => attribute.Name != "class") .ToDictionary(attribute => attribute.Name, attribute => attribute.Value); if (provider != null) { customGenerator.Init(properties, provider); } return(generator); } catch (Exception ex) { throw new InvalidOperationException("Unable to create the feature generator.", ex); } }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { // TODO: Make it configurable ... return(new TokenClassFeatureGenerator(true)); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return(new OutcomePriorFeatureGenerator()); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return new TokenPatternFeatureGenerator(); }
/// <summary> /// Initialized the Custom Feature Generator with defined properties and loaded resources. /// </summary> /// <param name="properties">The properties.</param> /// <param name="provider">The resource provider.</param> public abstract void Init(Dictionary<string, string> properties, FeatureGeneratorResourceProvider provider);
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return(new PreviousMapFeatureGenerator()); }
/// <summary> /// Creates an <see cref="IAdaptiveFeatureGenerator"/> from a the describing XML element. /// </summary> /// <param name="generatorElement">The element which contains the configuration.</param> /// <param name="provider">The resource provider which could be used to access referenced resources.</param> /// <returns>The configured <see cref="IAdaptiveFeatureGenerator"/> </returns> public override IAdaptiveFeatureGenerator Create(XmlElement generatorElement, FeatureGeneratorResourceProvider provider) { return new OutcomePriorFeatureGenerator(); }