summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/inflexion/CategoricalNounInflection.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-05 10:06:58 -0400
committerbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-05 10:06:58 -0400
commitfe521df984a4bf1f6627401716e6b4558235bfb2 (patch)
treec3813c282dfd9818fe2e3414e7a8f2b5a96ae86e /src/main/java/bjc/inflexion/CategoricalNounInflection.java
parent463e4e702bcdc312f5a081c85c7b00bbc0122265 (diff)
Reorganize
Diffstat (limited to 'src/main/java/bjc/inflexion/CategoricalNounInflection.java')
-rw-r--r--src/main/java/bjc/inflexion/CategoricalNounInflection.java192
1 files changed, 0 insertions, 192 deletions
diff --git a/src/main/java/bjc/inflexion/CategoricalNounInflection.java b/src/main/java/bjc/inflexion/CategoricalNounInflection.java
deleted file mode 100644
index a57a2e2..0000000
--- a/src/main/java/bjc/inflexion/CategoricalNounInflection.java
+++ /dev/null
@@ -1,192 +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;
-
-/**
- * Implementation of {@link NounInflection} for nouns matched by a regular
- * expression.
- *
- * @author EVE
- *
- */
-public class CategoricalNounInflection implements NounInflection {
- private static final String TOSTRING_FMT = "CategoricalNounInflection [singular=%s, modernPlural=%s,"
- + " classicalPlural=%s]";
-
- private InflectionAffix singular;
-
- private InflectionAffix modernPlural;
- private InflectionAffix classicalPlural;
-
- /**
- * Create a new categorical inflection.
- *
- * @param singlar
- * The affix for the singular form.
- *
- * @param modrnPlural
- * The affix for the modern plural.
- *
- * @param classiclPlural
- * The affix for the classical plural.
- */
- public CategoricalNounInflection(InflectionAffix singlar, InflectionAffix modrnPlural,
- InflectionAffix classiclPlural) {
- if(singlar == null)
- throw new NullPointerException("Singular form must not be null");
- else if(modrnPlural == null && classiclPlural == null)
- throw new NullPointerException("One of modern/classical plural forms must not be null");
-
- singular = singlar;
- modernPlural = modrnPlural;
- classicalPlural = classiclPlural;
- }
-
- @Override
- public boolean matches(String noun) {
- if(singular.hasAffix(noun))
- return true;
- else if(modernPlural != null && modernPlural.hasAffix(noun))
- return true;
- else if(classicalPlural != null && classicalPlural.hasAffix(noun))
- return true;
- else
- return false;
- }
-
- @Override
- public boolean isSingular(String noun) {
- if(singular.hasAffix(noun))
- return true;
- else if(matchesPlural(noun))
- return false;
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection", noun, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public boolean isPlural(String noun) {
- if(singular.hasAffix(noun))
- return false;
- else if(matchesPlural(noun))
- return true;
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection", noun, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public String singularize(String plural) {
- if(singular.hasAffix(plural))
- return plural;
- else if(modernPlural != null && modernPlural.hasAffix(plural))
- return singular.affix(modernPlural.deaffix(plural));
- else if(classicalPlural != null && classicalPlural.hasAffix(plural))
- return singular.affix(classicalPlural.deaffix(plural));
- else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection", plural, this);
-
- throw new InflectionException(msg);
- }
- }
-
- @Override
- public String pluralize(String singlar) {
- if(singular.hasAffix(singlar)) {
- if(modernPlural == null) {
- return classicalPlural.affix(singular.deaffix(singlar));
- } else {
- return modernPlural.affix(singular.deaffix(singlar));
- }
- } else if(matchesPlural(singlar)) {
- return singlar;
- } else {
- String msg = String.format("Noun '%s' doesn't belong to this inflection", singlar, this);
-
- throw new InflectionException(msg);
- }
- }
-
- private boolean matchesPlural(String noun) {
- boolean hasModernPlural = modernPlural != null && modernPlural.hasAffix(noun);
-
- return hasModernPlural || (classicalPlural != null && classicalPlural.hasAffix(noun));
- }
-
- @Override
- public String toString() {
- return String.format(TOSTRING_FMT, singular, modernPlural, classicalPlural);
- }
-
- @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());
-
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if(this == obj) return true;
- if(obj == null) return false;
- if(!(obj instanceof CategoricalNounInflection)) return false;
-
- CategoricalNounInflection other = (CategoricalNounInflection) obj;
-
- 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 singlar) {
- if(modernPlural == null) return pluralizeClassical(singlar);
-
- String actSinglar = singlar;
- if(isPlural(singlar)) {
- actSinglar = singularize(singlar);
- }
-
- return modernPlural.affix(singular.deaffix(actSinglar));
- }
-
- @Override
- public String pluralizeClassical(String singlar) {
- if(classicalPlural == null) return pluralizeModern(singlar);
-
- String actSinglar = singlar;
- if(isPlural(singlar)) {
- actSinglar = singularize(singlar);
- }
-
- return classicalPlural.affix(singular.deaffix(actSinglar));
- }
-} \ No newline at end of file