From: Martin F. <mar...@us...> - 2010-11-19 20:34:26
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/npc/parser In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv30969/src/games/stendhal/server/entity/npc/parser Modified Files: ConversationParser.java SentenceImplementation.java Sentence.java ExpressionMatcher.java Log Message: store originalText in the SentenceImplementation constructor to avoid null returns from getOriginalText() Index: ExpressionMatcher.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/npc/parser/ExpressionMatcher.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** ExpressionMatcher.java 19 Sep 2010 02:25:29 -0000 1.26 --- ExpressionMatcher.java 19 Nov 2010 20:34:17 -0000 1.27 *************** *** 201,208 **** } ! final Sentence sentence = new SentenceImplementation(ctx); // determine sentence type from trailing punctuation ! text = ConversationParser.getSentenceType(text.trim(), sentence); if (typeMatching) { --- 201,210 ---- } ! text = text.trim(); ! ! final Sentence sentence = new SentenceImplementation(ctx, text); // determine sentence type from trailing punctuation ! text = ConversationParser.detectSentenceType(text, sentence); if (typeMatching) { Index: ConversationParser.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/npc/parser/ConversationParser.java,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** ConversationParser.java 13 Nov 2010 23:06:22 -0000 1.50 --- ConversationParser.java 19 Nov 2010 20:34:16 -0000 1.51 *************** *** 30,51 **** private static final Logger LOGGER = Logger.getLogger(ConversationParser.class); ! /** A cache to hold pre-parsed trigger Expressions. */ private static Map<String, Expression> triggerExpressionsCache = new HashMap<String, Expression>(); ! /** ! * A cache to hold pre-parsed matching Sentences. ! */ private static Map<String, Sentence> matchingSentenceCache = new HashMap<String, Sentence>(); ! final String originalText; - - - private final StringTokenizer tokenizer; ! - /** * Create a new conversation parser and initialize with the given text string. --- 30,46 ---- private static final Logger LOGGER = Logger.getLogger(ConversationParser.class); ! ! /** A cache to hold pre-parsed trigger Expressions. */ private static Map<String, Expression> triggerExpressionsCache = new HashMap<String, Expression>(); ! /** A cache to hold pre-parsed matching Sentences. */ private static Map<String, Sentence> matchingSentenceCache = new HashMap<String, Sentence>(); ! final String originalText; ! private final StringTokenizer tokenizer; /** * Create a new conversation parser and initialize with the given text string. *************** *** 224,233 **** text = ""; } ! final String ot = text; ! final SentenceImplementation sentence = new SentenceImplementation(ctx); try { // 1.) determine sentence type from trailing punctuation ! text = getSentenceType(text.trim(), sentence); // 2.) feed the separated words into the sentence object --- 219,228 ---- text = ""; } ! ! final SentenceImplementation sentence = new SentenceImplementation(ctx, text); try { // 1.) determine sentence type from trailing punctuation ! text = detectSentenceType(text.trim(), sentence); // 2.) feed the separated words into the sentence object *************** *** 261,266 **** e.printStackTrace(); } ! //mf: overwriting originalText disables the private chat filter for messages beginning with "_" (see ConversationParser constructor) -> OK? ! sentence.originalText = ot; return sentence; } --- 256,260 ---- e.printStackTrace(); } ! return sentence; } *************** *** 282,296 **** * Evaluates and sets sentence type by looking at the trailing punctuation characters. * - * * @param text the text to evaluate * @param sentence where the type is to be set * @return text without trailing or leading punctuation */ ! public static String getSentenceType(final String text, final Sentence sentence) { final PunctuationParser punct = new PunctuationParser(text); final String trailing = punct.getTrailingPunctuation(); ! ! if (trailing.contains("?")) { sentence.setType(Sentence.SentenceType.QUESTION); --- 276,288 ---- * Evaluates and sets sentence type by looking at the trailing punctuation characters. * * @param text the text to evaluate * @param sentence where the type is to be set * @return text without trailing or leading punctuation */ ! public static String detectSentenceType(final String text, final Sentence sentence) { final PunctuationParser punct = new PunctuationParser(text); final String trailing = punct.getTrailingPunctuation(); ! if (trailing.contains("?")) { sentence.setType(Sentence.SentenceType.QUESTION); Index: SentenceImplementation.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/npc/parser/SentenceImplementation.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** SentenceImplementation.java 19 Sep 2010 02:25:29 -0000 1.24 --- SentenceImplementation.java 19 Nov 2010 20:34:16 -0000 1.25 *************** *** 30,44 **** /** ! * Create a SentenceImplementation object. * * @param ctx */ ! SentenceImplementation(final ConversationContext ctx) { super(ctx); } /** * Create a SentenceImplementation object for testing purposes. ! * * @param exprs */ --- 30,47 ---- /** ! * Create a SentenceImplementation object in preparation to parse a text phrase. * * @param ctx */ ! SentenceImplementation(final ConversationContext ctx, String text) { super(ctx); + + originalText = text; } /** * Create a SentenceImplementation object for testing purposes. ! * note: This constructor does not set originalText. ! * * @param exprs */ Index: Sentence.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/npc/parser/Sentence.java,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** Sentence.java 13 Nov 2010 23:02:40 -0000 1.70 --- Sentence.java 19 Nov 2010 20:34:16 -0000 1.71 *************** *** 404,409 **** /** ! * Return the original parsed text of the sentence. ! * There should be only as less code places as possible * to rely on this method. * --- 404,410 ---- /** ! * Return the original parsed text of the sentence. ! * ! * deprecate: There should be only as less code places as possible * to rely on this method. * |