Login
Newsletter
Werbung

Do, 13. Dezember 2012, 15:00

LanguageTool-Tutorial Teil III: Java-Regeln und falsche Freunde

Von gulp21

Es folgt nun eine Erläuterung der Codezeilen. Wirklich wichtig für die Regel ist die match-Funktion; von dem vielen anderen »Drumherum« sollte man sich nicht abschrecken lassen.

/* LGPL Lizenzblock [...]
 */

Der obligatorische Lizenzblock ist bei allen Dateien bis auf Jahr und Name des Autors identisch.

package org.languagetool.rules.de;

Mit dieser Zeile teilt man Java mit, dass die Datei zum »Paket« der deutschen Regeln gehört.

import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

import org.languagetool.AnalyzedSentence;
import org.languagetool.AnalyzedTokenReadings;
import org.languagetool.rules.Category;
import org.languagetool.rules.RuleMatch;

Diese Klassen werden eigentlich in fast jeder Java-Regel benötigt. Durch das Importieren der Klassen ist es der Regel erst möglich, auf die zu analysierenden Sätze zuzugreifen, Fehler anzuzeigen und Korrekturvorschläge zu machen.

/**
 * Check incorrect use of "spiegelt
 * ... wider", namely using "wieder"
 * instead of "wider", e.g. in "Das
 * spiegelt die Situation wieder"
 * (incorrect).
 * 
 * @author Daniel Naber
 */

In einem Kommentar wird kurz erklärt, welche Art von Fehler die Regel erkennt.

public class WiederVsWiderRule extends GermanRule {

Jede deutsche Java-Regel wird als Klasse implementiert, die eine Unterklasse der Klasse GermanRule ist. Der Klassenname muss identisch mit dem Dateinamen (ohne Dateiendung) sein.

public WiederVsWiderRule(ResourceBundle messages) {
  if (messages != null)
    super.setCategory(new Category(messages.getString("category_typo")));
}

Der Konstruktor hat denselben Namen wie die Datei (ohne Dateiendung). Im Konstruktor wird die Kategorie der Regel angegeben, wobei hier die Variable category_typo (= »Mögliche Tippfehler«) aus der Übersetzungsdatei benutzt wird.

@Override
public String getId() {
  return "DE_WIEDER_VS_WIDER";
}

Die Funktion getId gibt die ID der Regel zurück. Zur Erinnerung: Die ID ist eine einmalige Bezeichnung, die nur aus Großbuchstaben und keinen Leerzeichen besteht und intern benutzt wird, um die Regel anzusprechen.

@Override
public String getDescription() {
  return "Möglicher Tippfehler 'spiegeln ... wieder(wider)'";
}

Die Funktion getDescription liefert die Beschreibung der Regel, wie sie im Einstellungsdialog angezeigt wird.

Außerdem kann eine Funktion getUrl implementiert werden, welche eine URL zu einer Webseite, auf der der Fehler näher erläutert wird, zurückgibt.

@Override
public RuleMatch[] match(AnalyzedSentence text) {

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung