org.apache.cxf.binding.http.strategy.EnglishInflector Maven / Gradle / Ivy
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
/**
* Copyright (c) 2005-2006 David Heinemeier Hansson
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package org.apache.cxf.binding.http.strategy;
/**
* Rules for English inflection.
*
* Notice: Some portions of this class where ported from Ruby's ActiveSupport
* library which are Copyright (c) 2005-2006 David Heinemeier Hansson and
* under the MIT license.
*/
public class EnglishInflector extends Inflector {
public EnglishInflector() {
addPlural("$", "s");
addPlural("s$", "$1s");
addPlural("(ax|test)is$", "$1es");
addPlural("(octop|vir)us$", "$1i");
addPlural("(alias|status)$", "$1es");
addPlural("(bu)s$", "$1ses");
addPlural("(buffal|tomat)o$", "$1oes");
addPlural("([ti])um$", "$1a");
addPlural("sis$", "ses");
addPlural("(?:([^f])fe|([lr])f)$", "$1\2ves");
addPlural("(hive)$", "$1s");
addPlural("([^aeiouy]|qu)y$", "$1ies");
addPlural("(x|ch|ss|sh)$", "$1es");
addPlural("(matr|vert|ind)ix|ex$", "$1ices");
addPlural("([m|l])ouse$", "$1ice");
addPlural("^(ox)$", "$1en");
addPlural("(quiz)$", "$1zes");
addSingular("s$", "");
addSingular("(n)ews$", "$1ews");
addSingular("([ti])a$", "$1um");
addSingular("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1\2sis");
addSingular("(^analy)ses$", "$1sis");
addSingular("([^f])ves$", "$1fe");
addSingular("(hive)s$", "$1");
addSingular("(tive)s$", "$1");
addSingular("([lr])ves$", "$1f");
addSingular("([^aeiouy]|qu)ies$", "$1y");
addSingular("(s)eries$", "$1eries");
addSingular("(m)ovies$", "$1ovie");
addSingular("(x|ch|ss|sh)es$", "$1");
addSingular("([m|l])ice$", "$1ouse");
addSingular("(bus)es$", "$1");
addSingular("(o)es$", "$1");
addSingular("(shoe)s$", "$1");
addSingular("(cris|ax|test)es$", "$1is");
addSingular("(octop|vir)i$", "$1us");
addSingular("(alias|status)es$", "$1");
addSingular("^(ox)en", "$1");
addSingular("(vert|ind)ices$", "$1ex");
addSingular("(matr)ices$", "$1ix");
addSingular("(quiz)zes$", "$1");
addIrregular("person", "people");
addIrregular("man", "men");
addIrregular("child", "children");
addIrregular("sex", "sexes");
addIrregular("move", "moves");
addUncountable(new String[] {"equipment", "information", "rice",
"money", "species", "series", "fish", "sheep"});
}
}