001 // This file is part of AceWiki.
002 // Copyright 2008-2012, AceWiki developers.
003 //
004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of
006 // the License, or (at your option) any later version.
007 //
008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
010 // Lesser General Public License for more details.
011 //
012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
013 // not, see http://www.gnu.org/licenses/.
014
015 package ch.uzh.ifi.attempto.acewiki.gf;
016
017 import java.util.ArrayList;
018 import java.util.List;
019
020 import ch.uzh.ifi.attempto.acewiki.core.AbstractLanguageHandler;
021 import ch.uzh.ifi.attempto.acewiki.core.EditorController;
022 import ch.uzh.ifi.attempto.acewiki.core.Ontology;
023 import ch.uzh.ifi.attempto.acewiki.core.Sentence;
024 import ch.uzh.ifi.attempto.base.DefaultTextOperator;
025 import ch.uzh.ifi.attempto.base.PredictiveParser;
026 import ch.uzh.ifi.attempto.base.TextContainer;
027 import ch.uzh.ifi.attempto.base.TextOperator;
028
029 /**
030 * This is a language handler for languages written in GF.
031 *
032 * @author Tobias Kuhn
033 */
034 public class GFHandler extends AbstractLanguageHandler {
035
036 private String language;
037 private TextOperator textOperator = new DefaultTextOperator();
038 private EditorController editorController = new EditorController();
039 private GFGrammar gfGrammar;
040
041 /**
042 * Creates a new GF handler for the given language.
043 *
044 * @param language The name of the language.
045 * @param gfGrammar The grammar object.
046 */
047 public GFHandler(String language, GFGrammar gfGrammar) {
048 this.language = language;
049 this.gfGrammar = gfGrammar;
050 }
051
052 public String getLanguage() {
053 return language;
054 }
055
056 public void init(Ontology ontology) {
057 }
058
059 public TextOperator getTextOperator() {
060 return textOperator;
061 }
062
063 public List<Sentence> extractSentences(TextContainer tc, PredictiveParser parser) {
064 List<Sentence> l = new ArrayList<Sentence>();
065 l.add(new GFDeclaration(tc.getText(), language, gfGrammar));
066 return l;
067 }
068
069 public PredictiveParser getPredictiveParser() {
070 return new GFPredictiveParser(gfGrammar, language);
071 }
072
073 public EditorController getEditorController() {
074 return editorController;
075 }
076
077 }