00001 #ifndef REBECCA_GRAPHBUILDER_H
00002 #define REBECCA_GRAPHBUILDER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifdef _WIN32
00031 # pragma warning ( push )
00032 # pragma warning( disable : 4290 )
00033 #endif
00034
00035
00036 #include <rebecca/exports.h>
00037 #include <rebecca/StringPimpl.h>
00038 #include <rebecca/CallBacks.h>
00039 #include <rebecca/Exceptions.h>
00040
00041 namespace rebecca
00042 {
00043 namespace impl
00044 {
00045
00174 class REBECCA_EXPORT GraphBuilder
00175 {
00176 public:
00177
00231 virtual void addFile(const StringPimpl &file)
00232 throw(FileNotFoundException &, Exception &) = 0;
00233
00294 virtual void addFile(const StringPimpl &file,
00295 const StringPimpl &userId,
00296 const StringPimpl &botId,
00297 const StringPimpl &endUserId)
00298 throw(FileNotFoundException &, Exception &) = 0;
00299
00358 virtual void addFileUnlessAlreadyAdded(const StringPimpl &file)
00359 throw(FileNotFoundException &, Exception &) = 0;
00360
00427 virtual void addFileUnlessAlreadyAdded(const StringPimpl &file,
00428 const StringPimpl &userId,
00429 const StringPimpl &botId,
00430 const StringPimpl &endUserId)
00431 throw(FileNotFoundException &, Exception &) = 0;
00432
00481 virtual void removeFile(const StringPimpl &file)
00482 throw(FileNotFoundException &, Exception &) = 0;
00483
00540 virtual void removeFile(const StringPimpl &file,
00541 const StringPimpl &userId,
00542 const StringPimpl &botId,
00543 const StringPimpl &endUserId)
00544 throw(FileNotFoundException &, Exception &) = 0;
00545
00605 virtual void addDirectory(const StringPimpl &directory,
00606 const StringPimpl ®ularExpression = ".*\\.aiml")
00607 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00608
00677 virtual void addDirectory(const StringPimpl &directory,
00678 const StringPimpl &userId,
00679 const StringPimpl &botId,
00680 const StringPimpl &endUserId,
00681 const StringPimpl ®ularExpression = ".*\\.aiml")
00682 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00683
00747 virtual void addDirectoryUnlessAlreadyAdded(const StringPimpl &directory,
00748 const StringPimpl ®ularExpression = ".*\\.aiml")
00749 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00750
00823 virtual void addDirectoryUnlessAlreadyAdded(const StringPimpl &directory,
00824 const StringPimpl &userId,
00825 const StringPimpl &botId,
00826 const StringPimpl &endUserId,
00827 const StringPimpl ®ularExpression = ".*\\.aiml")
00828 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00829
00884 virtual void removeDirectory(const StringPimpl &directory,
00885 const StringPimpl ®ularExpression = ".*\\.aiml")
00886 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00887
00950 virtual void removeDirectory(const StringPimpl &directory,
00951 const StringPimpl &userId,
00952 const StringPimpl &botId,
00953 const StringPimpl &endUserId,
00954 const StringPimpl ®ularExpression = ".*\\.aiml")
00955 throw(IllegalArgumentException &, DirectoryNotFoundException &, Exception &) = 0;
00956
00957
01013 virtual void addString(const StringPimpl &stringContainingAIML)
01014 throw(Exception &) = 0;
01015
01079 virtual void addString(const StringPimpl &stringContainingAIML,
01080 const StringPimpl &userId,
01081 const StringPimpl &botId,
01082 const StringPimpl &endUserId)
01083 throw(Exception &) = 0;
01084
01142 virtual void removeString(const StringPimpl &stringContainingAIML)
01143 throw(Exception &) = 0;
01144
01213 virtual void removeString(const StringPimpl &stringContainingAIML,
01214 const StringPimpl &userId,
01215 const StringPimpl &botId,
01216 const StringPimpl &endUserId)
01217 throw(Exception &) = 0;
01218
01239 virtual void setAddStringAIMLHeader(const StringPimpl &aimlHeader)
01240 throw(Exception &) = 0;
01241
01260 virtual void setAddStringAIMLFooter(const StringPimpl &aimlFooter)
01261 throw(Exception &) = 0;
01262
01273 virtual void setAIMLSchema(const StringPimpl &schema)
01274 throw(Exception &, FileNotFoundException &) = 0;
01275
01289 virtual void setCommonTypesSchema(const StringPimpl &schema)
01290 throw(Exception &, FileNotFoundException &) = 0;
01291
01308 virtual void setAIMLValidation(bool trueOrFalse = true)
01309 throw(Exception &) = 0;
01310
01330 virtual StringPimpl getResponse(const StringPimpl &input)
01331 throw(Exception &) = 0;
01332
01360 virtual StringPimpl getResponse(const StringPimpl &input,
01361 const StringPimpl &userId,
01362 const StringPimpl &botId,
01363 const StringPimpl &endUserId)
01364 throw(Exception &) = 0;
01365
01382 virtual void setThat(const StringPimpl &that)
01383 throw(Exception &) = 0;
01384
01410 virtual void setThat(const StringPimpl &that,
01411 const StringPimpl &userId,
01412 const StringPimpl &botId,
01413 const StringPimpl &endUserId)
01414 throw(Exception &) = 0;
01415
01432 virtual void setTopic(const StringPimpl &topic)
01433 throw(Exception &) = 0;
01434
01460 virtual void setTopic(const StringPimpl &topic,
01461 const StringPimpl &userId,
01462 const StringPimpl &botId,
01463 const StringPimpl &endUserId)
01464 throw(Exception &) = 0;
01465
01480 virtual StringPimpl getThat() const
01481 throw(Exception &) = 0;
01482
01506 virtual StringPimpl getThat(const StringPimpl &userId,
01507 const StringPimpl &botId,
01508 const StringPimpl &endUserId) const
01509 throw(Exception &) = 0;
01510
01524 virtual StringPimpl getTopic() const
01525 throw(Exception &) = 0;
01526
01550 virtual StringPimpl getTopic(const StringPimpl &userId,
01551 const StringPimpl &botId,
01552 const StringPimpl &endUserId) const
01553 throw(Exception &) = 0;
01554
01577 virtual void createGraph()
01578 throw(XMLErrorException &, Exception &) = 0;
01579
01611 virtual void createGraph(const StringPimpl &userId,
01612 const StringPimpl &botId,
01613 const StringPimpl &endUserId)
01614 throw(XMLErrorException &, Exception &) = 0;
01615
01636 virtual void removeGraph()
01637 throw(XMLErrorException &, Exception &) = 0;
01638
01668 virtual void removeGraph(const StringPimpl &userId,
01669 const StringPimpl &botId,
01670 const StringPimpl &endUserId)
01671 throw(XMLErrorException &, Exception &) = 0;
01672
01693 virtual bool predicateMatch(const StringPimpl &predicateName,
01694 const StringPimpl &aimlPattern) const
01695 throw(Exception &) = 0;
01696
01723 virtual bool predicateMatch(const StringPimpl &predicateName,
01724 const StringPimpl &aimlPattern,
01725 const StringPimpl &userId,
01726 const StringPimpl &botId,
01727 const StringPimpl &endUserId) const
01728 throw(Exception &) = 0;
01729
01749 virtual void setPredicate(const StringPimpl &name,
01750 const StringPimpl &value)
01751 throw(Exception &) = 0;
01752
01778 virtual void setPredicate(const StringPimpl &name,
01779 const StringPimpl &value,
01780 const StringPimpl &userId,
01781 const StringPimpl &botId,
01782 const StringPimpl &endUserId)
01783 throw(Exception &) = 0;
01784
01803 virtual StringPimpl getPredicate(const StringPimpl &name) const
01804 throw(Exception &) = 0;
01805
01830 virtual StringPimpl getPredicate(const StringPimpl &name,
01831 const StringPimpl &userId,
01832 const StringPimpl &botId,
01833 const StringPimpl &endUserId) const
01834 throw(Exception &) = 0;
01835
01854 virtual StringPimpl getBotPredicate(const StringPimpl &name) const
01855 throw(Exception &) = 0;
01856
01881 virtual StringPimpl getBotPredicate(const StringPimpl &name,
01882 const StringPimpl &userId,
01883 const StringPimpl &botId,
01884 const StringPimpl &endUserId) const
01885 throw(Exception &) = 0;
01886
01904 virtual void setBotPredicate(const StringPimpl &name,
01905 const StringPimpl &value)
01906 throw(Exception &) = 0;
01907
01931 virtual void setBotPredicate(const StringPimpl &name,
01932 const StringPimpl &value,
01933 const StringPimpl &userId,
01934 const StringPimpl &botId,
01935 const StringPimpl &endUserId)
01936 throw(Exception &) = 0;
01937
01957 virtual StringPimpl getPreviousBotResponse(const unsigned int &previousBotResponse,
01958 const unsigned int &sentence) const
01959 throw(IllegalArgumentException &, Exception &) = 0;
01960
01986 virtual StringPimpl getPreviousBotResponse(const unsigned int &previousBotResponse,
01987 const unsigned int &sentence,
01988 const StringPimpl &userId,
01989 const StringPimpl &botId,
01990 const StringPimpl &endUserId) const
01991 throw(IllegalArgumentException &, Exception &) = 0;
01992
02012 virtual StringPimpl getPreviousUserInput(const unsigned int &previousUserInput,
02013 const unsigned int &sentence) const
02014 throw(IllegalArgumentException &, Exception &) = 0;
02015
02041 virtual StringPimpl getPreviousUserInput(const unsigned int &previousUserInput,
02042 const unsigned int &sentence,
02043 const StringPimpl &userId,
02044 const StringPimpl &botId,
02045 const StringPimpl &endUserId) const
02046 throw(IllegalArgumentException &, Exception &) = 0;
02047
02071 virtual void setBotConfigurationSchema(const StringPimpl &schema)
02072 throw(Exception &, FileNotFoundException &) = 0;
02073
02092 virtual void setBotConfigurationValidation(const bool trueOrFalse = true)
02093 throw(Exception &) = 0;
02094
02125 virtual void parseSubstitutionFile(const StringPimpl &fileName)
02126 throw(XMLErrorException &, FileNotFoundException &, Exception &) = 0;
02127
02156 virtual void parseSentenceSplitterFile(const StringPimpl &fileName)
02157 throw(XMLErrorException &, FileNotFoundException &, Exception &) = 0;
02158
02183 virtual void parsePropertiesFile(const StringPimpl &fileName)
02184 throw(XMLErrorException &, FileNotFoundException &, Exception &) = 0;
02185
02217 virtual void parsePropertiesFile(const StringPimpl &fileName,
02218 const StringPimpl &userId,
02219 const StringPimpl &botId,
02220 const StringPimpl &endUserId)
02221 throw(XMLErrorException &, FileNotFoundException &, Exception &) = 0;
02222
02241 virtual void setSentenceSplitter(const StringPimpl &splitter)
02242 throw(Exception &) = 0;
02243
02286 virtual void setInputSubstitution(const StringPimpl &find,
02287 const StringPimpl &replace)
02288 throw(IllegalArgumentException &, Exception &) = 0;
02289
02329 virtual void setGenderSubstitution(const StringPimpl &find,
02330 const StringPimpl &replace)
02331 throw(IllegalArgumentException &, Exception &) = 0;
02332
02377 virtual void setPersonSubstitution(const StringPimpl &find,
02378 const StringPimpl &replace)
02379 throw(IllegalArgumentException &, Exception &) = 0;
02380
02425 virtual void setPerson2Substitution(const StringPimpl &find,
02426 const StringPimpl &replace)
02427 throw(IllegalArgumentException &, Exception &) = 0;
02428
02438 virtual StringPimpl getVersion() const
02439 throw(Exception &) = 0;
02440
02448 virtual int getSize() const
02449 throw(Exception &) = 0;
02450
02466 virtual int getSize(const StringPimpl &userId,
02467 const StringPimpl &botId,
02468 const StringPimpl &endUserId) const
02469 throw(Exception &) = 0;
02470
02489 virtual void setCallBacks(CallBacks *callBacks)
02490 throw(Exception &) = 0;
02491
02505 virtual void storeGossip(const StringPimpl &gossip)
02506 throw(Exception &) = 0;
02507
02518 virtual StringPimpl getId() const
02519 throw(Exception &) = 0;
02520
02541 virtual void setUserIdBotIdEndUserId(const StringPimpl &userId,
02542 const StringPimpl &botId,
02543 const StringPimpl &endUserId)
02544 throw(Exception &) = 0;
02545
02570 virtual void addCustomTagLibrary(const StringPimpl &library)
02571 throw(FileNotFoundException &, Exception &) = 0;
02572
02597 virtual void removeCustomTagLibrary(const StringPimpl &library)
02598 throw(FileNotFoundException &, Exception &) = 0;
02599
02623 virtual StringPimpl callSystemCommand(const StringPimpl &command) const
02624 throw(Exception &) = 0;
02625
02627
02628
02629
02630
02631
02632
02634
02635
02636
02650 virtual void synchronizeDatabase() const
02651 throw(Exception &) = 0;
02652
02674 virtual StringPimpl *getAIMLFileList(unsigned int &size) const
02675 throw(Exception &) = 0;
02676
02705 virtual StringPimpl *getAIMLFileList(const StringPimpl &userId,
02706 const StringPimpl &botId,
02707 const StringPimpl &endUserId,
02708 unsigned int &size) const
02709 throw(Exception &) = 0;
02710
02725 virtual void deleteStringPimplArray(StringPimpl *arrayToDelete) const
02726 throw(Exception &) = 0;
02727
02742 virtual unsigned int getAIMLFileListSize() const
02743 throw(Exception &) = 0;
02744
02766 virtual unsigned int getAIMLFileListSize(const StringPimpl &userId,
02767 const StringPimpl &botId,
02768 const StringPimpl &endUserId) const
02769 throw(Exception &) = 0;
02770
02792 virtual StringPimpl *getAIMLStringList(unsigned int &size) const
02793 throw(Exception &) = 0;
02794
02823 virtual StringPimpl *getAIMLStringList(const StringPimpl &userId,
02824 const StringPimpl &botId,
02825 const StringPimpl &endUserId,
02826 unsigned int &size) const
02827 throw(Exception &) = 0;
02828
02843 virtual unsigned int getAIMLStringListSize() const
02844 throw(Exception &) = 0;
02845
02867 virtual unsigned int getAIMLStringListSize(const StringPimpl &userId,
02868 const StringPimpl &botId,
02869 const StringPimpl &endUserId) const
02870 throw(Exception &) = 0;
02871
02892 virtual StringPimpl *getUserIds(unsigned int &size) const
02893 throw(Exception &) = 0;
02894
02908 virtual unsigned int getUserIdsSize() const
02909 throw(Exception &) = 0;
02910
02933 virtual StringPimpl *getBotIds(const StringPimpl &userId,
02934 unsigned int &size) const
02935 throw(Exception &) = 0;
02936
02951 virtual unsigned int getBotIdsSize(const StringPimpl &userId) const
02952 throw(Exception &) = 0;
02953
02979 virtual StringPimpl *getEndUserIds(const StringPimpl &userId,
02980 const StringPimpl &botId,
02981 unsigned int &size) const
02982 throw(Exception &) = 0;
02983
03002 virtual unsigned int getEndUserIdsSize(const StringPimpl &userId,
03003 const StringPimpl &botId) const
03004 throw(Exception &) = 0;
03005
03013 virtual void printEntireDatabase() const
03014 throw(Exception &) = 0;
03015
03016
03038 virtual StringPimpl *getBotPredicates(unsigned int &size) const
03039 throw(Exception &) = 0;
03040
03069 virtual StringPimpl *getBotPredicates(const StringPimpl &userId,
03070 const StringPimpl &botId,
03071 const StringPimpl &endUserId,
03072 unsigned int &size) const
03073 throw(Exception &) = 0;
03074
03096 virtual StringPimpl *getPredicates(unsigned int &size) const
03097 throw(Exception &) = 0;
03098
03126 virtual StringPimpl *getPredicates(const StringPimpl &userId,
03127 const StringPimpl &botId,
03128 const StringPimpl &endUserId,
03129 unsigned int &size) const
03130 throw(Exception &) = 0;
03131
03132
03143 virtual unsigned int getPredicatesSize() const
03144 throw(Exception &) = 0;
03145
03162 virtual unsigned int getPredicatesSize(const StringPimpl &userId,
03163 const StringPimpl &botId,
03164 const StringPimpl &endUserId) const
03165 throw(Exception &) = 0;
03166
03177 virtual unsigned int getBotPredicatesSize() const
03178 throw(Exception &) = 0;
03179
03197 virtual unsigned int getBotPredicatesSize(const StringPimpl &userId,
03198 const StringPimpl &botId,
03199 const StringPimpl &endUserId) const
03200 throw(Exception &) = 0;
03201
03212 virtual void removePredicate(const StringPimpl &name)
03213 throw(Exception &) = 0;
03214
03232 virtual void removePredicate(const StringPimpl &name,
03233 const StringPimpl &userId,
03234 const StringPimpl &botId,
03235 const StringPimpl &endUserId)
03236 throw(Exception &) = 0;
03237
03248 virtual void removeBotPredicate(const StringPimpl &name)
03249 throw(Exception &) = 0;
03250
03268 virtual void removeBotPredicate(const StringPimpl &name,
03269 const StringPimpl &userId,
03270 const StringPimpl &botId,
03271 const StringPimpl &endUserId)
03272 throw(Exception &) = 0;
03273
03290 virtual void removeEndUser(const StringPimpl &userId,
03291 const StringPimpl &botId,
03292 const StringPimpl &endUserId)
03293 throw(Exception &) = 0;
03294
03312 virtual void removeBot(const StringPimpl &userId,
03313 const StringPimpl &botId)
03314 throw(Exception &) = 0;
03315
03332 virtual void removeUser(const StringPimpl &userId)
03333 throw(Exception &) = 0;
03334
03365 virtual void setThreadSpecificIds(bool trueOrFalse)
03366 throw(Exception &) = 0;
03367
03371 virtual ~GraphBuilder() { };
03372 };
03373
03374 }
03375
03376
03377 using rebecca::impl::GraphBuilder;
03378
03379 }
03380
03381
03382 #ifdef _WIN32
03383 # pragma warning ( pop )
03384 #endif
03385
03386
03387
03388
03389 #endif