Advertisement
Nina611

Untitled

Feb 10th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. package chatbot;
  2. import static chatbot.Chat.i;
  3. import java.util.Vector;
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6. import org.suermeli.simplechat.server.Detail;
  7. import org.suermeli.simplechat.server.LongAnswer;
  8. import org.suermeli.simplechat.server.QuestionHandler;
  9. import org.suermeli.simplechat.server.SimpleChatServer;
  10. /**
  11. *
  12. * @author Haselmaus
  13. */
  14. public class QHandler extends QuestionHandler {
  15.  
  16.  
  17. static void finish() {
  18. longAnswer.setComplete(true);
  19. }
  20.  
  21. static void addDetailToShortAnswer(Detail d) {
  22. details.add(d);
  23. }
  24. static void addDetailToLongAnswer(Detail d) {
  25. longAnswer.addDetail(d);
  26. }
  27.  
  28. public static volatile String shortAnswer = null;
  29. static volatile Vector<Detail> details = null;
  30. public static volatile LongAnswer longAnswer = null;
  31. public static volatile boolean sendShortAnswer = true;
  32.  
  33. public QHandler(SimpleChatServer context) {
  34. super(context);
  35. }
  36.  
  37. public static void initLongAnswer(String intro) {
  38. sendShortAnswer = false;
  39. longAnswer = new LongAnswer(intro);
  40. }
  41.  
  42. private class TextParserThread extends Thread {
  43.  
  44. String mmsg = null;
  45. int mi = 0;
  46. public String mresult = null;
  47.  
  48. TextParserThread(String msg, int i) {
  49. mmsg = msg;
  50. mi = i;
  51. }
  52. public void run() {
  53. mresult = TextParser.parse(mmsg , mi );
  54. i++;
  55. }
  56. }
  57.  
  58. boolean busy = false;
  59.  
  60. @Override
  61. protected void process(String msg) {
  62. for (;busy;);
  63. busy = true;
  64.  
  65. shortAnswer = null;
  66. longAnswer = null;
  67. details = new Vector<Detail>();
  68. sendShortAnswer = true;
  69. String result = null;
  70. if(msg.equals("reset!"))
  71. {
  72. Main.DBHandler.resetabgelehnteListe();
  73. shortAnswer = "reset"; busy = false;
  74. return;
  75. }
  76. if(msg.equals("neustart!"))
  77. {
  78. TextParser.Neustart();
  79. 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?";
  80. i = 0;
  81. busy = false;
  82. return;
  83. }
  84. TextParserThread tpt = new TextParserThread(msg,i);
  85. tpt.start();
  86. /* try {
  87. tpt.join();
  88.  
  89. } catch (InterruptedException ex) {
  90. Logger.getLogger(QHandler.class.getName()).log(Level.SEVERE, null, ex);
  91. }*/
  92. while (sendShortAnswer && tpt.isAlive()) {
  93. try {
  94. Thread.sleep(100);
  95. } catch (InterruptedException ex) {
  96. Logger.getLogger(QHandler.class.getName()).log(Level.SEVERE, null, ex);
  97. }
  98.  
  99. }
  100.  
  101.  
  102. if (!sendShortAnswer) {busy = false; return;}
  103.  
  104. result = tpt.mresult;
  105.  
  106. System.out.println(i);
  107.  
  108.  
  109. if (result != null) {
  110. shortAnswer = result.replaceAll("\n", "\\\\n");
  111. } else {
  112. if (shortAnswer == null) shortAnswer = ""; else shortAnswer = shortAnswer.replaceAll("\n", "\\\\n") + "\\n";
  113. //shortAnswer += "Tschüss";
  114. //sayGoodbye();
  115. }
  116.  
  117.  
  118.  
  119. busy = false;
  120. }
  121.  
  122. @Override
  123. protected String determineShortAnswer() {
  124. return shortAnswer;
  125. }
  126.  
  127. @Override
  128. protected Vector<Detail> determineDetails() {
  129. return details;
  130. }
  131.  
  132. @Override
  133. protected LongAnswer determineLongAnswer() {
  134. return longAnswer;
  135. }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement