/*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version. You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.aitools.programd;
import java.net.URI;
import java.net.URL;
import org.aitools.util.Settings;
/**
* Automatically generated at 2011-12-30T11:01:04.665+01:00.
*/
abstract public class CoreSettings extends Settings
{
/** The namespace URI of AIML to use. */
private URI AIMLNamespaceURI;
/** The bot configuration file. */
private URL botConfigURL;
/** Configuration file for plugins. */
private URL pluginConfigURL;
/** Where to write gossip entries. Gossip entries will be written like this: <li>the gossip</li> */
private URL gossipURL;
/** The default value for undefined predicates. */
private String predicateEmptyDefault;
/** Which predicate contains the client's name. */
private String clientNamePredicate;
/** Which bot property contains the bot's name. */
private String botNameProperty;
/** The number of predicate set operations before flushing predicates to storage. */
private int predicateFlushPeriod;
/** The PredicateManager implementation to use. */
private String predicateManagerImplementation;
/** The directory in which to save flat-file predicates (if the FlatFilePredicateManager is used). */
private URL ffpmDirectory;
/** The database driver to use. */
private String databaseDriver;
/** The JDBC connection URI to use (driver-specific). */
private String databaseURI;
/** The username for accessing the database. */
private String databaseUsername;
/** The password for accessing the database. */
private String databasePassword;
/** The minimum number of number of database connections allowed in the pool before new objects are created. */
private int databaseMinIdle;
/** The maximum number of database connections that can be allocated at a time. */
private int databaseMaxActive;
/** What to do when a category is loaded whose pattern:that:topic path is identical to one already loaded (for the same bot). */
private MergePolicy mergePolicy;
/** The possible values for MergePolicy. */
public static enum MergePolicy
{
/** Leave the currently loaded template in place and ignore the new one. */
SKIP,
/** Overwrite the loaded template with the new one. */
OVERWRITE,
/** Append the content of the new template to the currently loaded one. */
APPEND,
/** Store the new template as well, so it will have an equal chance of being used as the currently loaded one. */
COMBINE
}
/** Produce a note in the console/log for each merge? */
private boolean noteEachMerge;
/** If the append merge policy is used, what text content (if any) should be inserted between the contents of the two templates? (The default value is a space.) */
private String appendMergeSeparatorString;
/** The maximum allowable time (in milliseconds) to get a response. */
private int responseTimeout;
/** The input to match if an infinite loop is found. */
private String infiniteLoopInput;
/** Whether to print a stack trace on uncaught exceptions. */
private boolean printStackTraceOnUncaughtExceptions;
/** The Pulse implementation to use. */
private String pulseImplementation;
/** The pulse rate for the heart (beats per minute). */
private int heartPulseRate;
/** Enable the heart? */
private boolean heartEnabled;
/** The delay period when checking changed AIML (milliseconds). */
private int AIMLWatcherTimer;
/** Use the AIML watcher? */
private boolean useAIMLWatcher;
/** The JavaScript interpreter. */
private String javascriptInterpreterClassname;
/** Allow the use of JavaScript? */
private boolean allowJavaScript;
/** The directory in which to execute <system/> element contents. */
private URL systemInterpreterDirectory;
/** The string to prepend to all <system/> calls (platform-specific). Windows requires something like "cmd /c "; Linux doesn't (just leave empty). */
private String systemInterpreterPrefix;
/** Allow access to the OS via the system element? */
private boolean allowOSAccess;
/** How frequently (in categories) to notify as categories are being loaded. */
private int categoryLoadNotificationInterval;
/** Produce a notification message for each file that is loaded. */
private boolean noteEachLoadedFile;
/** After all bots have been loaded, exit immediately (useful for timing). */
private boolean exitImmediatelyOnStartup;
/** The string to send when first connecting to the bot. If this value is empty, no value will be sent. */
private String connectString;
/** How to interpret random elements. */
private RandomStrategy randomStrategy;
/** The possible values for RandomStrategy. */
public static enum RandomStrategy
{
/** Each choice is made from the full set, randomly. */
PURE_RANDOM,
/** A choice is not repeated until all others have been used. */
NON_REPEATING
}
/** The Graphmapper implementation to use. */
private String graphmapperImplementation;
/** The Nodemapper implementation to use. */
private String nodemapperImplementation;
/** Reset the graph on startup? (Only applies to Graphmappers with persistent storage.) */
private boolean resetGraph;
/** Use interactive command-line shell? */
private boolean useShell;
/** Location of the XML catalog (relative to program directory) */
private String xmlCatalogPath;
/**
* @return the value of AIMLNamespaceURI
*/
public URI getAIMLNamespaceURI()
{
return this.AIMLNamespaceURI;
}
/**
* @return the value of botConfigURL
*/
public URL getBotConfigURL()
{
return this.botConfigURL;
}
/**
* @return the value of pluginConfigURL
*/
public URL getPluginConfigURL()
{
return this.pluginConfigURL;
}
/**
* @return the value of gossipURL
*/
public URL getGossipURL()
{
return this.gossipURL;
}
/**
* @return the value of predicateEmptyDefault
*/
public String getPredicateEmptyDefault()
{
return this.predicateEmptyDefault;
}
/**
* @return the value of clientNamePredicate
*/
public String getClientNamePredicate()
{
return this.clientNamePredicate;
}
/**
* @return the value of botNameProperty
*/
public String getBotNameProperty()
{
return this.botNameProperty;
}
/**
* @return the value of predicateFlushPeriod
*/
public int getPredicateFlushPeriod()
{
return this.predicateFlushPeriod;
}
/**
* @return the value of predicateManagerImplementation
*/
public String getPredicateManagerImplementation()
{
return this.predicateManagerImplementation;
}
/**
* @return the value of ffpmDirectory
*/
public URL getFfpmDirectory()
{
return this.ffpmDirectory;
}
/**
* @return the value of databaseDriver
*/
public String getDatabaseDriver()
{
return this.databaseDriver;
}
/**
* @return the value of databaseURI
*/
public String getDatabaseURI()
{
return this.databaseURI;
}
/**
* @return the value of databaseUsername
*/
public String getDatabaseUsername()
{
return this.databaseUsername;
}
/**
* @return the value of databasePassword
*/
public String getDatabasePassword()
{
return this.databasePassword;
}
/**
* @return the value of databaseMinIdle
*/
public int getDatabaseMinIdle()
{
return this.databaseMinIdle;
}
/**
* @return the value of databaseMaxActive
*/
public int getDatabaseMaxActive()
{
return this.databaseMaxActive;
}
/**
* @return the value of mergePolicy
*/
public MergePolicy getMergePolicy()
{
return this.mergePolicy;
}
/**
* @return the value of noteEachMerge
*/
public boolean noteEachMerge()
{
return this.noteEachMerge;
}
/**
* @return the value of appendMergeSeparatorString
*/
public String getAppendMergeSeparatorString()
{
return this.appendMergeSeparatorString;
}
/**
* @return the value of responseTimeout
*/
public int getResponseTimeout()
{
return this.responseTimeout;
}
/**
* @return the value of infiniteLoopInput
*/
public String getInfiniteLoopInput()
{
return this.infiniteLoopInput;
}
/**
* @return the value of printStackTraceOnUncaughtExceptions
*/
public boolean printStackTraceOnUncaughtExceptions()
{
return this.printStackTraceOnUncaughtExceptions;
}
/**
* @return the value of pulseImplementation
*/
public String getPulseImplementation()
{
return this.pulseImplementation;
}
/**
* @return the value of heartPulseRate
*/
public int getHeartPulseRate()
{
return this.heartPulseRate;
}
/**
* @return the value of heartEnabled
*/
public boolean heartEnabled()
{
return this.heartEnabled;
}
/**
* @return the value of AIMLWatcherTimer
*/
public int getAIMLWatcherTimer()
{
return this.AIMLWatcherTimer;
}
/**
* @return the value of useAIMLWatcher
*/
public boolean useAIMLWatcher()
{
return this.useAIMLWatcher;
}
/**
* @return the value of javascriptInterpreterClassname
*/
public String getJavascriptInterpreterClassname()
{
return this.javascriptInterpreterClassname;
}
/**
* @return the value of allowJavaScript
*/
public boolean allowJavaScript()
{
return this.allowJavaScript;
}
/**
* @return the value of systemInterpreterDirectory
*/
public URL getSystemInterpreterDirectory()
{
return this.systemInterpreterDirectory;
}
/**
* @return the value of systemInterpreterPrefix
*/
public String getSystemInterpreterPrefix()
{
return this.systemInterpreterPrefix;
}
/**
* @return the value of allowOSAccess
*/
public boolean allowOSAccess()
{
return this.allowOSAccess;
}
/**
* @return the value of categoryLoadNotificationInterval
*/
public int getCategoryLoadNotificationInterval()
{
return this.categoryLoadNotificationInterval;
}
/**
* @return the value of noteEachLoadedFile
*/
public boolean noteEachLoadedFile()
{
return this.noteEachLoadedFile;
}
/**
* @return the value of exitImmediatelyOnStartup
*/
public boolean exitImmediatelyOnStartup()
{
return this.exitImmediatelyOnStartup;
}
/**
* @return the value of connectString
*/
public String getConnectString()
{
return this.connectString;
}
/**
* @return the value of randomStrategy
*/
public RandomStrategy getRandomStrategy()
{
return this.randomStrategy;
}
/**
* @return the value of graphmapperImplementation
*/
public String getGraphmapperImplementation()
{
return this.graphmapperImplementation;
}
/**
* @return the value of nodemapperImplementation
*/
public String getNodemapperImplementation()
{
return this.nodemapperImplementation;
}
/**
* @return the value of resetGraph
*/
public boolean resetGraph()
{
return this.resetGraph;
}
/**
* @return the value of useShell
*/
public boolean useShell()
{
return this.useShell;
}
/**
* @return the value of xmlCatalogPath
*/
public String getXmlCatalogPath()
{
return this.xmlCatalogPath;
}
/**
* @param value the value for AIMLNamespaceURI
*/
public void setAIMLNamespaceURI(URI value)
{
this.AIMLNamespaceURI = value;
}
/**
* @param value the value for botConfigURL
*/
public void setBotConfigURL(URL value)
{
this.botConfigURL = value;
}
/**
* @param value the value for pluginConfigURL
*/
public void setPluginConfigURL(URL value)
{
this.pluginConfigURL = value;
}
/**
* @param value the value for gossipURL
*/
public void setGossipURL(URL value)
{
this.gossipURL = value;
}
/**
* @param value the value for predicateEmptyDefault
*/
public void setPredicateEmptyDefault(String value)
{
this.predicateEmptyDefault = value;
}
/**
* @param value the value for clientNamePredicate
*/
public void setClientNamePredicate(String value)
{
this.clientNamePredicate = value;
}
/**
* @param value the value for botNameProperty
*/
public void setBotNameProperty(String value)
{
this.botNameProperty = value;
}
/**
* @param value the value for predicateFlushPeriod
*/
public void setPredicateFlushPeriod(int value)
{
this.predicateFlushPeriod = value;
}
/**
* @param value the value for predicateManagerImplementation
*/
public void setPredicateManagerImplementation(String value)
{
this.predicateManagerImplementation = value;
}
/**
* @param value the value for ffpmDirectory
*/
public void setFfpmDirectory(URL value)
{
this.ffpmDirectory = value;
}
/**
* @param value the value for databaseDriver
*/
public void setDatabaseDriver(String value)
{
this.databaseDriver = value;
}
/**
* @param value the value for databaseURI
*/
public void setDatabaseURI(String value)
{
this.databaseURI = value;
}
/**
* @param value the value for databaseUsername
*/
public void setDatabaseUsername(String value)
{
this.databaseUsername = value;
}
/**
* @param value the value for databasePassword
*/
public void setDatabasePassword(String value)
{
this.databasePassword = value;
}
/**
* @param value the value for databaseMinIdle
*/
public void setDatabaseMinIdle(int value)
{
this.databaseMinIdle = value;
}
/**
* @param value the value for databaseMaxActive
*/
public void setDatabaseMaxActive(int value)
{
this.databaseMaxActive = value;
}
/**
* @param value the value for mergePolicy
*/
public void setMergePolicy(MergePolicy value)
{
this.mergePolicy = value;
}
/**
* @param value the value for noteEachMerge
*/
public void setNoteEachMerge(boolean value)
{
this.noteEachMerge = value;
}
/**
* @param value the value for appendMergeSeparatorString
*/
public void setAppendMergeSeparatorString(String value)
{
this.appendMergeSeparatorString = value;
}
/**
* @param value the value for responseTimeout
*/
public void setResponseTimeout(int value)
{
this.responseTimeout = value;
}
/**
* @param value the value for infiniteLoopInput
*/
public void setInfiniteLoopInput(String value)
{
this.infiniteLoopInput = value;
}
/**
* @param value the value for printStackTraceOnUncaughtExceptions
*/
public void setPrintStackTraceOnUncaughtExceptions(boolean value)
{
this.printStackTraceOnUncaughtExceptions = value;
}
/**
* @param value the value for pulseImplementation
*/
public void setPulseImplementation(String value)
{
this.pulseImplementation = value;
}
/**
* @param value the value for heartPulseRate
*/
public void setHeartPulseRate(int value)
{
this.heartPulseRate = value;
}
/**
* @param value the value for heartEnabled
*/
public void setHeartEnabled(boolean value)
{
this.heartEnabled = value;
}
/**
* @param value the value for AIMLWatcherTimer
*/
public void setAIMLWatcherTimer(int value)
{
this.AIMLWatcherTimer = value;
}
/**
* @param value the value for useAIMLWatcher
*/
public void setUseAIMLWatcher(boolean value)
{
this.useAIMLWatcher = value;
}
/**
* @param value the value for javascriptInterpreterClassname
*/
public void setJavascriptInterpreterClassname(String value)
{
this.javascriptInterpreterClassname = value;
}
/**
* @param value the value for allowJavaScript
*/
public void setAllowJavaScript(boolean value)
{
this.allowJavaScript = value;
}
/**
* @param value the value for systemInterpreterDirectory
*/
public void setSystemInterpreterDirectory(URL value)
{
this.systemInterpreterDirectory = value;
}
/**
* @param value the value for systemInterpreterPrefix
*/
public void setSystemInterpreterPrefix(String value)
{
this.systemInterpreterPrefix = value;
}
/**
* @param value the value for allowOSAccess
*/
public void setAllowOSAccess(boolean value)
{
this.allowOSAccess = value;
}
/**
* @param value the value for categoryLoadNotificationInterval
*/
public void setCategoryLoadNotificationInterval(int value)
{
this.categoryLoadNotificationInterval = value;
}
/**
* @param value the value for noteEachLoadedFile
*/
public void setNoteEachLoadedFile(boolean value)
{
this.noteEachLoadedFile = value;
}
/**
* @param value the value for exitImmediatelyOnStartup
*/
public void setExitImmediatelyOnStartup(boolean value)
{
this.exitImmediatelyOnStartup = value;
}
/**
* @param value the value for connectString
*/
public void setConnectString(String value)
{
this.connectString = value;
}
/**
* @param value the value for randomStrategy
*/
public void setRandomStrategy(RandomStrategy value)
{
this.randomStrategy = value;
}
/**
* @param value the value for graphmapperImplementation
*/
public void setGraphmapperImplementation(String value)
{
this.graphmapperImplementation = value;
}
/**
* @param value the value for nodemapperImplementation
*/
public void setNodemapperImplementation(String value)
{
this.nodemapperImplementation = value;
}
/**
* @param value the value for resetGraph
*/
public void setResetGraph(boolean value)
{
this.resetGraph = value;
}
/**
* @param value the value for useShell
*/
public void setUseShell(boolean value)
{
this.useShell = value;
}
/**
* @param value the value for xmlCatalogPath
*/
public void setXmlCatalogPath(String value)
{
this.xmlCatalogPath = value;
}
}