summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/inflexion/v2/IrregularNounInflection.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-05 10:06:24 -0400
committerbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-05 10:06:24 -0400
commit463e4e702bcdc312f5a081c85c7b00bbc0122265 (patch)
tree817ad9c4aaf0516f712a8111169d5f6fd9f134c1 /src/main/java/bjc/inflexion/v2/IrregularNounInflection.java
parent8259732a0e1d70284adcc6e7ef492603a3d59565 (diff)
Reorganize
Diffstat (limited to 'src/main/java/bjc/inflexion/v2/IrregularNounInflection.java')
-rw-r--r--src/main/java/bjc/inflexion/v2/IrregularNounInflection.java197
1 files changed, 0 insertions, 197 deletions
diff --git a/src/main/java/bjc/inflexion/v2/IrregularNounInflection.java b/src/main/java/bjc/inflexion/v2/IrregularNounInflection.java
deleted file mode 100644
index 294c6a3..0000000
--- a/src/main/java/bjc/inflexion/v2/IrregularNounInflection.java
+++ /dev/null
@@ -1,197 +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;
-
-/**
- * Implementation of {@link NounInflection} for irregular nouns.
- *
- * @author EVE
- *
- */
-public class IrregularNounInflection implements NounInflection {
- private static final String TOSTRING_FMT = "IrregularNounInflection [singular=%s, modernPlural=%s,"
- + " classicalPlural=%s, preferClassical=%s]";
-
- private String singular;
-
- private String modernPlural;
- private String classicalPlural;
-
- private boolean preferClassical;
-
- /**
- * Create a new irregular noun inflection.
- *
- * @param singlar
- * The singular form of the noun.
- *
- * @param modrnPlural
- * The modern plural of the noun.
- *
- * @param classiclPlural
- * The classical plural of the noun.
- *
- * @param prefrClassical
- * Whether the classical form should be preferred if it
- * is available.
- */
- public IrregularNounInflection(String singlar, String modrnPlural, String classiclPlural,
- boolean prefrClassical) {
- if(singlar == null) throw new NullPointerException("Singular form must not be null");
- if(modrnPlural == null && classiclPlural == null)
- throw new NullPointerException("One of modern/classical plural forms must not be null");
-
- singular = singlar;
- modernPlural = modrnPlural;
- classicalPlural = classiclPlural;
- preferClassical = prefrClassical;
- }
-
- @Override
- public boolean matches(String noun) {
- if(noun.equalsIgnoreCase(singular))
- return true;
- else if(noun.equalsIgnoreCase(modernPlural))
- return true;
- else if(noun.equalsIgnoreCase(classicalPlural))
- return true;
- else
- return false;
- }
-
- @Override
- public boolean isSingular(String noun) {
- if(noun.equalsIgnoreCase(singular))
- return true;
- else if(matchesPlural(noun))
- return false;
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection '%s'", noun, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public boolean isPlural(String noun) {
- if(noun.equalsIgnoreCase(singular))
- return false;
- else if(matchesPlural(noun))
- return true;
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection '%s'", noun, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public String singularize(String plural) {
- if(plural.equalsIgnoreCase(singular))
- return singular;
- else if(matchesPlural(plural))
- return singular;
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection '%s'", plural, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public String pluralize(String singular) {
- if(singular.equalsIgnoreCase(singular))
- return getPlural();
- else if(matchesPlural(singular))
- return getPlural();
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection '%s'", singular, this);
-
- throw new InflectionException(msg);
- }
- }
-
- private String getPlural() {
- if(preferClassical) {
- if(classicalPlural == null)
- return modernPlural;
- else
- return classicalPlural;
- } else if(modernPlural == null) {
- return classicalPlural;
- } else {
- return modernPlural;
- }
- }
-
- private boolean matchesPlural(String noun) {
- return noun.equalsIgnoreCase(modernPlural) || noun.equalsIgnoreCase(classicalPlural);
- }
-
- @Override
- public String toString() {
- return String.format(TOSTRING_FMT, singular, modernPlural, classicalPlural, preferClassical);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
-
- result = prime * result + ((classicalPlural == null) ? 0 : classicalPlural.hashCode());
- result = prime * result + ((modernPlural == null) ? 0 : modernPlural.hashCode());
- result = prime * result + ((singular == null) ? 0 : singular.hashCode());
-
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if(this == obj) return true;
- if(obj == null) return false;
- if(!(obj instanceof IrregularNounInflection)) return false;
-
- IrregularNounInflection other = (IrregularNounInflection) obj;
-
- if(singular == null) {
- if(other.singular != null) return false;
- } else if(!singular.equals(other.singular)) return false;
-
- if(classicalPlural == null) {
- if(other.classicalPlural != null) return false;
- } else if(!classicalPlural.equals(other.classicalPlural)) return false;
-
- if(modernPlural == null) {
- if(other.modernPlural != null) return false;
- } else if(!modernPlural.equals(other.modernPlural)) return false;
-
- return true;
- }
-
- @Override
- public String pluralizeModern(String singular) {
- if(modernPlural == null) return pluralizeClassical(singular);
-
- return modernPlural;
- }
-
- @Override
- public String pluralizeClassical(String singular) {
- if(classicalPlural == null) return pluralizeModern(singular);
-
- return classicalPlural;
- }
-} \ No newline at end of file