diff options
| author | bjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu> | 2017-04-05 10:06:24 -0400 |
|---|---|---|
| committer | bjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu> | 2017-04-05 10:06:24 -0400 |
| commit | 463e4e702bcdc312f5a081c85c7b00bbc0122265 (patch) | |
| tree | 817ad9c4aaf0516f712a8111169d5f6fd9f134c1 /src/main/java/bjc/inflexion/v2/CompoundNounInflection.java | |
| parent | 8259732a0e1d70284adcc6e7ef492603a3d59565 (diff) | |
Reorganize
Diffstat (limited to 'src/main/java/bjc/inflexion/v2/CompoundNounInflection.java')
| -rw-r--r-- | src/main/java/bjc/inflexion/v2/CompoundNounInflection.java | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/src/main/java/bjc/inflexion/v2/CompoundNounInflection.java b/src/main/java/bjc/inflexion/v2/CompoundNounInflection.java deleted file mode 100644 index afed0f8..0000000 --- a/src/main/java/bjc/inflexion/v2/CompoundNounInflection.java +++ /dev/null @@ -1,244 +0,0 @@ -/** - * (C) Copyright 2017 Benjamin Culkin. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package bjc.inflexion.v2; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Implementation of {@link NounInflection} for words that don't inflect at the - * end. - * - * @author EVE - * - */ -public class CompoundNounInflection implements NounInflection { - private static final String TOSTRING_FMT = "CompoundNounInflection [compoundMatcher=%s, singularPattern=%s," - + " modernPluralPattern=%s, classicalPluralPattern=%s, hasPreposition=%s]"; - /* - * Data stores for use. - */ - private Nouns nounDB; - private Prepositions prepositionDB; - - private Pattern compoundMatcher; - - private String singularPattern; - - private String modernPluralPattern; - private String classicalPluralPattern; - - /* - * Whether or not this inflection takes a preposition. - */ - private boolean hasPreposition; - - /* - * Whether or not there is a scratch word in place. - */ - private boolean hasScratch; - - /** - * TODO fill in documentation. - * - * @param nounDB - * @param prepositionDB - * @param compoundMatcher - * @param singularPattern - * @param modernPluralPattern - * @param classicalPluralPattern - * @param hasPreposition - * @param hasScrtch - */ - public CompoundNounInflection(Nouns nounDB, Prepositions prepositionDB, Pattern compoundMatcher, - String singularPattern, String modernPluralPattern, String classicalPluralPattern, - boolean hasPreposition, boolean hasScrtch) { - this.nounDB = nounDB; - this.prepositionDB = prepositionDB; - this.compoundMatcher = compoundMatcher; - this.singularPattern = singularPattern; - this.modernPluralPattern = modernPluralPattern; - this.classicalPluralPattern = classicalPluralPattern; - this.hasPreposition = hasPreposition; - hasScratch = hasScrtch; - } - - @Override - public boolean matches(String noun) { - Matcher matcher = compoundMatcher.matcher(noun); - - if(matcher.matches()) { - Noun actNoun = nounDB.getNoun(matcher.group("noun")); - - if(actNoun == null) return false; - - if(hasPreposition) { - return prepositionDB.isPreposition(matcher.group("preposition")); - } else - return true; - } else { - return false; - } - } - - @Override - public boolean isSingular(String noun) { - Matcher matcher = compoundMatcher.matcher(noun); - Noun actNoun = nounDB.getNoun(matcher.group("noun")); - - return actNoun.isSingular(); - } - - @Override - public boolean isPlural(String noun) { - Matcher matcher = compoundMatcher.matcher(noun); - Noun actNoun = nounDB.getNoun(matcher.group("noun")); - - return actNoun.isPlural(); - } - - @Override - public String singularize(String plural) { - Matcher matcher = compoundMatcher.matcher(plural); - Noun actNoun = getNoun(matcher); - - if(hasPreposition && hasScratch) { - return String.format(singularPattern, actNoun.singular(), matcher.group("preposition"), - matcher.group("scratch")); - } else if(hasScratch) { - return String.format(singularPattern, actNoun.singular(), matcher.group("scratch")); - } else if(hasPreposition) { - return String.format(singularPattern, actNoun.singular(), matcher.group("preposition")); - } else { - return String.format(singularPattern, actNoun.singular()); - } - } - - @Override - public String pluralize(String singular) { - Matcher matcher = compoundMatcher.matcher(singular); - Noun actNoun = getNoun(matcher); - - String patt = modernPluralPattern == null ? classicalPluralPattern : modernPluralPattern; - - if(hasPreposition && hasScratch) { - return String.format(patt, actNoun.plural(), matcher.group("preposition"), - matcher.group("scratch")); - } else if(hasScratch) { - return String.format(patt, actNoun.plural(), matcher.group("scratch")); - } else if(hasPreposition) { - return String.format(patt, actNoun.plural(), matcher.group("preposition")); - } else { - return String.format(patt, actNoun.plural()); - } - } - - @Override - public String pluralizeModern(String singular) { - if(modernPluralPattern == null) return pluralizeClassical(singular); - - Matcher matcher = compoundMatcher.matcher(singular); - Noun actNoun = getNoun(matcher); - - if(hasPreposition && hasScratch) { - return String.format(modernPluralPattern, actNoun.modernPlural(), matcher.group("preposition"), - matcher.group("scratch")); - } else if(hasScratch) { - return String.format(modernPluralPattern, actNoun.modernPlural(), matcher.group("scratch")); - } else if(hasPreposition) { - return String.format(modernPluralPattern, actNoun.modernPlural(), matcher.group("preposition")); - } else { - return String.format(modernPluralPattern, actNoun.modernPlural()); - } - } - - @Override - public String pluralizeClassical(String singular) { - if(classicalPluralPattern == null) return pluralizeModern(singular); - - Matcher matcher = compoundMatcher.matcher(singular); - Noun actNoun = getNoun(matcher); - - if(hasPreposition && hasScratch) { - return String.format(classicalPluralPattern, actNoun.classicalPlural(), - matcher.group("preposition"), matcher.group("scratch")); - } else if(hasScratch) { - return String.format(classicalPluralPattern, actNoun.classicalPlural(), - matcher.group("scratch")); - } else if(hasPreposition) { - return String.format(classicalPluralPattern, actNoun.classicalPlural(), - matcher.group("preposition")); - } else { - return String.format(classicalPluralPattern, actNoun.classicalPlural()); - } - } - - private Noun getNoun(Matcher matcher) { - matcher.matches(); - - Noun actNoun = nounDB.getNoun(matcher.group("noun")); - return actNoun; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - - result = prime * result + ((classicalPluralPattern == null) ? 0 : classicalPluralPattern.hashCode()); - result = prime * result + ((compoundMatcher == null) ? 0 : compoundMatcher.hashCode()); - result = prime * result + (hasPreposition ? 1231 : 1237); - result = prime * result + ((modernPluralPattern == null) ? 0 : modernPluralPattern.hashCode()); - result = prime * result + ((singularPattern == null) ? 0 : singularPattern.hashCode()); - - return result; - } - - @Override - public boolean equals(Object obj) { - if(this == obj) return true; - if(obj == null) return false; - if(!(obj instanceof CompoundNounInflection)) return false; - - CompoundNounInflection other = (CompoundNounInflection) obj; - - if(singularPattern == null) { - if(other.singularPattern != null) return false; - } else if(!singularPattern.equals(other.singularPattern)) return false; - - if(classicalPluralPattern == null) { - if(other.classicalPluralPattern != null) return false; - } else if(!classicalPluralPattern.equals(other.classicalPluralPattern)) return false; - - if(hasPreposition != other.hasPreposition) return false; - - if(modernPluralPattern == null) { - if(other.modernPluralPattern != null) return false; - } else if(!modernPluralPattern.equals(other.modernPluralPattern)) return false; - - if(compoundMatcher == null) { - if(other.compoundMatcher != null) return false; - } else if(!compoundMatcher.equals(other.compoundMatcher)) return false; - - return true; - } - - @Override - public String toString() { - return String.format(TOSTRING_FMT, compoundMatcher, singularPattern, modernPluralPattern, - classicalPluralPattern, hasPreposition); - } -}
\ No newline at end of file |
