Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package chatbot;
- import static chatbot.Chat.i;
- import java.util.Vector;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import org.suermeli.simplechat.server.Detail;
- import org.suermeli.simplechat.server.LongAnswer;
- import org.suermeli.simplechat.server.QuestionHandler;
- import org.suermeli.simplechat.server.SimpleChatServer;
- /**
- *
- * @author Haselmaus
- */
- public class QHandler extends QuestionHandler {
- static void finish() {
- longAnswer.setComplete(true);
- }
- static void addDetailToShortAnswer(Detail d) {
- details.add(d);
- }
- static void addDetailToLongAnswer(Detail d) {
- longAnswer.addDetail(d);
- }
- public static volatile String shortAnswer = null;
- static volatile Vector<Detail> details = null;
- public static volatile LongAnswer longAnswer = null;
- public static volatile boolean sendShortAnswer = true;
- public QHandler(SimpleChatServer context) {
- super(context);
- }
- public static void initLongAnswer(String intro) {
- sendShortAnswer = false;
- longAnswer = new LongAnswer(intro);
- }
- private class TextParserThread extends Thread {
- String mmsg = null;
- int mi = 0;
- public String mresult = null;
- TextParserThread(String msg, int i) {
- mmsg = msg;
- mi = i;
- }
- public void run() {
- mresult = TextParser.parse(mmsg , mi );
- i++;
- }
- }
- boolean busy = false;
- @Override
- protected void process(String msg) {
- for (;busy;);
- busy = true;
- shortAnswer = null;
- longAnswer = null;
- details = new Vector<Detail>();
- sendShortAnswer = true;
- String result = null;
- if(msg.equals("reset!"))
- {
- Main.DBHandler.resetabgelehnteListe();
- shortAnswer = "reset"; busy = false;
- return;
- }
- if(msg.equals("neustart!"))
- {
- TextParser.Neustart();
- shortAnswer = "Fangen wir von vorne an! \\n Ich kann dir Informationen zu einem Film geben, oder dir einen neuen empfehlen. Was kann ich für dich tun?";
- i = 0;
- busy = false;
- return;
- }
- TextParserThread tpt = new TextParserThread(msg,i);
- tpt.start();
- /* try {
- tpt.join();
- } catch (InterruptedException ex) {
- Logger.getLogger(QHandler.class.getName()).log(Level.SEVERE, null, ex);
- }*/
- while (sendShortAnswer && tpt.isAlive()) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {
- Logger.getLogger(QHandler.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- if (!sendShortAnswer) {busy = false; return;}
- result = tpt.mresult;
- System.out.println(i);
- if (result != null) {
- shortAnswer = result.replaceAll("\n", "\\\\n");
- } else {
- if (shortAnswer == null) shortAnswer = ""; else shortAnswer = shortAnswer.replaceAll("\n", "\\\\n") + "\\n";
- //shortAnswer += "Tschüss";
- //sayGoodbye();
- }
- busy = false;
- }
- @Override
- protected String determineShortAnswer() {
- return shortAnswer;
- }
- @Override
- protected Vector<Detail> determineDetails() {
- return details;
- }
- @Override
- protected LongAnswer determineLongAnswer() {
- return longAnswer;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement