From 463e4e702bcdc312f5a081c85c7b00bbc0122265 Mon Sep 17 00:00:00 2001 From: bjculkin Date: Wed, 5 Apr 2017 10:06:24 -0400 Subject: Reorganize --- src/main/java/bjc/inflexion/Noun.java | 121 ++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 src/main/java/bjc/inflexion/Noun.java (limited to 'src/main/java/bjc/inflexion/Noun.java') diff --git a/src/main/java/bjc/inflexion/Noun.java b/src/main/java/bjc/inflexion/Noun.java new file mode 100644 index 0000000..25e4698 --- /dev/null +++ b/src/main/java/bjc/inflexion/Noun.java @@ -0,0 +1,121 @@ +/** + * (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; + +/** + * A noun attached to an inflection. + * + * @author EVE + * + */ +public class Noun { + private static final String TOSTRING_FMT = "Noun [word=%s, inflection=%s]"; + + private final String word; + + private final NounInflection inflection; + + /** + * Create a new noun from a word and inflection. + * + * @param wrd + * The word for the noun. + * + * @param inflction + * The inflection for the word. + */ + public Noun(String wrd, NounInflection inflction) { + word = wrd; + inflection = inflction; + } + + /** + * Get the input noun. + * + * @return The noun, as input. + */ + public String getWord() { + return word; + } + + /** + * Get the inflection for this noun. + * + * @return The inflection for this noun. + */ + public NounInflection getInflection() { + return inflection; + } + + /** + * Check if this noun is singular. + * + * @return Whether or not the noun is singular. + */ + public boolean isSingular() { + return inflection.isSingular(word); + } + + /** + * Check if this noun is plural. + * + * @return Whether or not this noun is plural. + */ + public boolean isPlural() { + return inflection.isPlural(word); + } + + /** + * Get the singular form of this noun. + * + * @return The singular form of this noun. + */ + public String singular() { + return inflection.singularize(word); + } + + /** + * Get the plural form of this noun. + * + * @return The plural form of this noun. + */ + public String plural() { + return inflection.pluralize(word); + } + + @Override + public String toString() { + return String.format(TOSTRING_FMT, word, inflection); + } + + /** + * Get the modern plural form of this noun. + * + * @return The modern plural form of this noun. + */ + public String modernPlural() { + return inflection.pluralizeModern(word); + } + + /** + * Get the classical plural form of this noun. + * + * @return The classical plural form of this noun. + */ + public String classicalPlural() { + return inflection.pluralizeClassical(word); + } +} \ No newline at end of file -- cgit v1.2.3