001package jmri.jmrit.logixng.util.parser; 002 003import java.util.Set; 004 005/** 006 * Factory class for Function classes. 007 * 008 * @author Daniel Bergqvist Copyright 2018 009 */ 010public interface FunctionFactory { 011 012 /** 013 * Get the module of the functions in this factory, for example "Math" or 014 * "Conversion". 015 * @return the module name 016 */ 017 String getModule(); 018 019 /** 020 * Get a set of classes that implements the Function interface. 021 * 022 * @return a set of functions 023 */ 024 Set<Function> getFunctions(); 025 026 /** 027 * Get a set of classes that implements the Constant interface. 028 * 029 * @return a set of constants 030 */ 031 Set<Constant> getConstants(); 032 033 /** 034 * Get the description of the constants in Markdown format 035 * @return the description of the constants 036 */ 037 String getConstantDescription(); 038 039}