Revision: 7533
http://languagetool.svn.sourceforge.net/languagetool/?rev=7533&view=rev
Author: dnaber
Date: 2012-06-27 19:56:28 +0000 (Wed, 27 Jun 2012)
Log Message:
-----------
adding tests; small code/javadoc cleanup
Modified Paths:
--------------
trunk/JLanguageTool/src/java/org/languagetool/Language.java
trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java
Modified: trunk/JLanguageTool/src/java/org/languagetool/Language.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/Language.java 2012-06-27
19:25:01 UTC (rev 7532)
+++ trunk/JLanguageTool/src/java/org/languagetool/Language.java 2012-06-27
19:56:28 UTC (rev 7533)
@@ -28,6 +28,7 @@
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import org.languagetool.databroker.ResourceDataBroker;
import org.languagetool.language.AmericanEnglish;
import org.languagetool.language.Asturian;
import org.languagetool.language.AustralianEnglish;
@@ -172,13 +173,14 @@
/**
* Get this language's two character code, e.g. <code>en</code> for English.
- * @return String - language code
+ * The variant ("US"), if any, is not returned.
+ * @return language code
*/
public abstract String getShortName();
/**
* Get this language's name in English, e.g. <code>English</code> or
<code>German</code>.
- * @return String - language name
+ * @return language name
*/
public abstract String getName();
@@ -208,26 +210,28 @@
// -------------------------------------------------------------------------
/**
- * Get the location of the rule file.
+ * Get the location of the rule file(s).
*/
public List<String> getRuleFileName() {
- List<String> ruleFiles = new ArrayList<String>();
- ruleFiles.add(JLanguageTool.getDataBroker().getRulesDir() +
- "/" + getShortName() + "/" + JLanguageTool.PATTERN_FILE);
- if (getShortNameWithVariant().length() > 2) {
- final String fileName = getShortName() + "/" +
- getShortNameWithVariant() +
- "/" + JLanguageTool.PATTERN_FILE;
- if (JLanguageTool.getDataBroker().ruleFileExists(fileName)) {
- ruleFiles.add(JLanguageTool.getDataBroker().getRulesDir() +
- "/" + fileName);
- }
+ final List<String> ruleFiles = new ArrayList<String>();
+ final ResourceDataBroker dataBroker = JLanguageTool.getDataBroker();
+ ruleFiles.add(dataBroker.getRulesDir()
+ + "/" + getShortName() + "/" + JLanguageTool.PATTERN_FILE);
+ if (getShortNameWithVariant().length() > 2) {
+ final String fileName = getShortName() + "/"
+ + getShortNameWithVariant()
+ + "/" + JLanguageTool.PATTERN_FILE;
+ if (dataBroker.ruleFileExists(fileName)) {
+ ruleFiles.add(dataBroker.getRulesDir() + "/" + fileName);
}
- return ruleFiles;
+ }
+ return ruleFiles;
}
/**
* Languages that have variants need to overwrite this to select their most
common variant.
+ * @return default variant or <code>null</code>
+ * @since 1.8
*/
public Language getDefaultVariant() {
return null;
@@ -305,6 +309,7 @@
* Get the short name of the language with a country variant, if it is
* a single-variant language. For generic language classes, get only a two-
or
* three-character code.
+ * @since 1.8
*/
public final String getShortNameWithVariant() {
String name = getShortName();
@@ -357,7 +362,7 @@
/**
* Return all languages supported by LanguageTool.
- * @return A list of all languages, including external ones.
+ * @return A list of all languages, including external ones and variants
(e.g. en-US)
*/
public static List<Language> getAllLanguages() {
final List<Language> langList = new ArrayList<Language>();
@@ -420,6 +425,7 @@
* Get the best match for a locale, using American English as the final
fallback if nothing
* else fits. The returned language will be a variant language (e.g. British
English, not just English)
* if available.
+ * @since 1.8
*/
public static Language getLanguageForLocale(final Locale locale) {
Language language = getLanguageForLanguageNameAndCountry(locale);
@@ -473,11 +479,8 @@
/**
* Get sorted info about all maintainers (without language variants) to be
used in the About dialog.
* @since 0.9.9
- * @param messages
- * {{@link ResourceBundle} language bundle to translate
- * the info
- * @return
- * A sorted list of maintainers.
+ * @param messages {{@link ResourceBundle} language bundle to translate the
info
+ * @return A list of maintainers, sorted by name of language.
*/
public static String getAllMaintainers(final ResourceBundle messages) {
final StringBuilder maintainersInfo = new StringBuilder();
@@ -505,6 +508,7 @@
/**
* Whether this is a variant of another language, i.e. whether it doesn't
* directly extend {@link Language}, but a subclass of {@link Language}.
+ * @since 1.8
*/
public final boolean isVariant() {
for (Language language : LANGUAGES) {
@@ -518,6 +522,7 @@
/**
* Whether this class has at least one subclass that implements variants of
this language.
+ * @since 1.8
*/
public final boolean hasVariant() {
for (Language language : LANGUAGES) {
@@ -537,6 +542,7 @@
* Return true if this is the same language as the given one, considering
* variants only if set for both languages. For example: en = en, en =
en-GB, en-GB = en-GB,
* but en-US != en-GB
+ * @since 1.8
*/
public boolean equalsConsiderVariantsIfSpecified(Language otherLanguage) {
if (getShortName().equals(otherLanguage.getShortName())) {
Modified: trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java
2012-06-27 19:25:01 UTC (rev 7532)
+++ trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java
2012-06-27 19:56:28 UTC (rev 7533)
@@ -30,17 +30,42 @@
public class LanguageTest {
@Test
- public void testGetLanguageForShortName() {
- assertEquals(Language.AMERICAN_ENGLISH,
Language.getLanguageForShortName("en-US"));
- assertEquals(Language.GERMAN, Language.getLanguageForShortName("de"));
+ public void testGetAllLanguages() {
+ assertTrue(Language.getAllLanguages().size() > 35);
}
@Test
+ public void testRuleFileName() {
+ assertEquals("[/rules/en/grammar.xml, /rules/en/en-GB/grammar.xml]",
Language.BRITISH_ENGLISH.getRuleFileName().toString());
+ assertEquals("[/rules/en/grammar.xml]",
Language.AMERICAN_ENGLISH.getRuleFileName().toString());
+ assertEquals("[/rules/en/grammar.xml]",
Language.ENGLISH.getRuleFileName().toString());
+ assertEquals("[/rules/de/grammar.xml]",
Language.GERMAN.getRuleFileName().toString());
+ }
+
+ @Test
+ public void testGetTranslatedName() {
+ assertEquals("English",
Language.ENGLISH.getTranslatedName(TestTools.getMessages("en")));
+ assertEquals("English (British)",
Language.BRITISH_ENGLISH.getTranslatedName(TestTools.getMessages("en")));
+
+ assertEquals("Englisch",
Language.ENGLISH.getTranslatedName(TestTools.getMessages("de")));
+ assertEquals("Englisch (Großbritannien)",
Language.BRITISH_ENGLISH.getTranslatedName(TestTools.getMessages("de")));
+ assertEquals("Deutsch",
Language.GERMAN.getTranslatedName(TestTools.getMessages("de")));
+ assertEquals("Deutsch (Schweiz)",
Language.SWISS_GERMAN.getTranslatedName(TestTools.getMessages("de")));
+ }
+
+ @Test
public void testGetShortNameWithVariant() {
assertEquals("en-US",
Language.AMERICAN_ENGLISH.getShortNameWithVariant());
assertEquals("de", Language.GERMAN.getShortNameWithVariant());
}
+ @Test
+ public void testGetLanguageForShortName() {
+ assertEquals(Language.AMERICAN_ENGLISH,
Language.getLanguageForShortName("en-US"));
+ assertEquals(Language.GERMAN, Language.getLanguageForShortName("de"));
+ assertEquals(null, Language.getLanguageForShortName("xy"));
+ }
+
@Test(expected=IllegalArgumentException.class)
public void testInvalidShortName1() {
Language.getLanguageForShortName("de-");
@@ -60,6 +85,7 @@
public void testGetLanguageForName() {
assertEquals(Language.AMERICAN_ENGLISH,
Language.getLanguageForName("English (US)"));
assertEquals(Language.GERMAN, Language.getLanguageForName("German"));
+ assertEquals(null, Language.getLanguageForName("Foobar"));
}
@Test
@@ -117,4 +143,9 @@
assertFalse(Language.AMERICAN_ENGLISH.equalsConsiderVariantsIfSpecified(Language.BRITISH_ENGLISH));
assertFalse(Language.ENGLISH.equalsConsiderVariantsIfSpecified(Language.GERMAN));
}
+
+ @Test
+ public void testGetAllMaintainers() {
+
assertTrue(Language.getAllMaintainers(TestTools.getMessages("en")).length() >
100);
+ }
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs