summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/inflexion/InflectionML.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/inflexion/InflectionML.java')
-rw-r--r--src/main/java/bjc/inflexion/InflectionML.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/main/java/bjc/inflexion/InflectionML.java b/src/main/java/bjc/inflexion/InflectionML.java
index 7d0cb6a..e12263b 100644
--- a/src/main/java/bjc/inflexion/InflectionML.java
+++ b/src/main/java/bjc/inflexion/InflectionML.java
@@ -22,7 +22,6 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import bjc.inflexion.examples.InflexionTester;
import bjc.inflexion.nouns.InflectionException;
import bjc.inflexion.nouns.Noun;
import bjc.inflexion.nouns.Nouns;
@@ -33,18 +32,18 @@ import bjc.inflexion.nouns.Prepositions;
*
*/
public class InflectionML {
- private static final List<String> ESUB_OPT = Arrays.asList("a", "s", "w");
- private static Pattern FORM_MARKER = Pattern
- .compile("<(?<command>[#N])(?<options>[^:]*):(?<text>[^>]*)>");
+ private static final List<String> ESUB_OPT = Arrays.asList("a", "s", "w");
+ private static Pattern FORM_MARKER = Pattern
+ .compile("<(?<command>[#N])(?<options>[^:]*):(?<text>[^>]*)>");
private static Nouns nounDB;
static {
final Prepositions prepositionDB = new Prepositions();
- prepositionDB.loadFromStream(InflexionTester.class.getResourceAsStream("/prepositions.txt"));
+ prepositionDB.loadFromStream(InflectionML.class.getResourceAsStream("/prepositions.txt"));
nounDB = new Nouns(prepositionDB);
- nounDB.loadFromStream(InflexionTester.class.getResourceAsStream("/nouns.txt"));
+ nounDB.loadFromStream(InflectionML.class.getResourceAsStream("/nouns.txt"));
}
/**
@@ -69,6 +68,7 @@ public class InflectionML {
final String text = formMatcher.group("text");
final Set<String> optionSet = new HashSet<>();
+
for (int i = 1; i <= options.length(); i++) {
optionSet.add(options.substring(i - 1, i));
}
@@ -80,6 +80,7 @@ public class InflectionML {
optionSet.remove("e");
optionSet.addAll(ESUB_OPT);
}
+
curCount = Integer.parseInt(text);
if (optionSet.contains("i")) {
@@ -126,7 +127,7 @@ public class InflectionML {
}
final boolean shouldOverride = !(rep.equals("no") || rep.equals("a")
- || rep.equals("an"));
+ || rep.equals("an"));
if (optionSet.contains("w") && shouldOverride) {
rep = EnglishUtils.smallIntToWord(curCount);
@@ -139,11 +140,14 @@ public class InflectionML {
formMatcher.appendReplacement(formBuffer, rep);
} catch (final NumberFormatException nfex) {
throw new InflectionException("Count setter must take a number as a parameter",
- nfex);
+ nfex);
}
+
break;
+
case "N":
final Noun noun = nounDB.getNoun(text);
+
if (optionSet.contains("p") || !inflectSingular) {
if (optionSet.contains("c")) {
formMatcher.appendReplacement(formBuffer, noun.classicalPlural());
@@ -153,7 +157,9 @@ public class InflectionML {
} else {
formMatcher.appendReplacement(formBuffer, noun.singular());
}
+
break;
+
default:
final String msg = String.format("Unknown command '%s'", command);