public static String pluralize( Object word ) { return Inflector.INSTANCE.pluralize( word ); }
public static String singularize( Object word ) { return Inflector.INSTANCE.singularize( word ); }
@Override @SuppressWarnings("all") public Inflector clone() { return new Inflector( this ); }
/** * Load the unique property for the field */ private Id getIdForUniqueEntityField( final String collectionName, final String propertyName, final Object propertyValue ) { //convert to a string, that's what we store final Id results = ecm.getIdField( Inflector.getInstance().singularize( collectionName ), new StringField( propertyName, propertyValue.toString() ) ).toBlocking() .lastOrDefault( null ); return results; }
protected void initialize() { Inflector inflect = this; inflect.addPluralize( "$", "s" ); inflect.addPluralize( "s$", "s" ); inflect.addPluralize( "(ax|test)is$", "$1es" ); inflect.addPluralize( "(octop|vir)us$", "$1i" ); inflect.addPluralize( "(octop|vir)i$", "$1i" ); // already plural inflect.addPluralize( "(alias|status)$", "$1es" ); inflect.addPluralize( "(bu)s$", "$1ses" ); inflect.addPluralize( "(buffal|tomat)o$", "$1oes" ); inflect.addPluralize( "([ti])um$", "$1a" ); inflect.addPluralize( "([ti])a$", "$1a" ); // already plural inflect.addPluralize( "sis$", "ses" ); inflect.addPluralize( "(?:([^f])fe|([lr])f)$", "$1$2ves" ); inflect.addPluralize( "(hive)$", "$1s" ); inflect.addPluralize( "([^aeiouy]|qu)y$", "$1ies" ); inflect.addPluralize( "(x|ch|ss|sh)$", "$1es" ); inflect.addPluralize( "(matr|vert|ind)ix|ex$", "$1ices" ); inflect.addPluralize( "([m|l])ouse$", "$1ice" ); inflect.addPluralize( "([m|l])ice$", "$1ice" ); inflect.addPluralize( "^(ox)$", "$1en" ); inflect.addPluralize( "(quiz)$", "$1zes" ); inflect.addPluralize( "(people|men|children|sexes|moves|stadiums)$", "$1" ); // irregulars inflect.addPluralize( "(oxen|octopi|viri|aliases|quizzes)$", "$1" ); // special inflect.addSingularize( "s$", "" ); inflect.addSingularize( "(s|si|u)s$", "$1s" ); // '-us' and '-ss' are inflect.addSingularize( "(n)ews$", "$1ews" );
public void testPluralize( String s, String expected ) { String p = Inflector.getInstance().pluralize( s ); logger.info( "Inflector says plural form of " + s + " is " + p ); assertEquals( "plural form of " + s + " not expected value", expected, p ); } }
public void addIrregular( String singular, String plural ) { if ( org.apache.commons.lang.StringUtils.isEmpty( singular ) ) { throw new IllegalArgumentException( "singular rule may not be empty" ); } if ( org.apache.commons.lang.StringUtils.isEmpty( plural ) ) { throw new IllegalArgumentException( "plural rule may not be empty" ); } String singularRemainder = singular.length() > 1 ? singular.substring( 1 ) : ""; String pluralRemainder = plural.length() > 1 ? plural.substring( 1 ) : ""; addPluralize( "(" + singular.charAt( 0 ) + ")" + singularRemainder + "$", "$1" + pluralRemainder ); addSingularize( "(" + plural.charAt( 0 ) + ")" + pluralRemainder + "$", "$1" + singularRemainder ); }
return replaceAllWithUppercase( result, "(^|_)(.)", 2 ); return "" + Character.toLowerCase( lowerCaseAndUnderscoredWord.charAt( 0 ) ) + camelCase( lowerCaseAndUnderscoredWord, true, delimiterChars ).substring( 1 );
public static String camelCase( String lowerCaseAndUnderscoredWord, boolean uppercaseFirstLetter, char... delimiterChars ) { return Inflector.INSTANCE.camelCase( lowerCaseAndUnderscoredWord, uppercaseFirstLetter, delimiterChars ); } }
public Inflector() { initialize(); }
public void testSingularize( String p, String expected ) { String s = Inflector.getInstance().singularize( p ); logger.info( "Inflector says singular form of " + p + " is " + s ); assertEquals( "singular form of " + p + " not expected value", expected, s ); }
Inflector.getInstance().singularize( collectionType ), Arrays.<Field>asList( uniqueLookupRepairField ), uniqueIndexRepair); Inflector.getInstance().singularize( collectionType ), Collections.singletonList(uniqueLookupRepairField), uniqueIndexRepair).toBlocking().last();
public String pluralize( Object word, int count ) { if ( word == null ) { return null; } if ( ( count == 1 ) || ( count == -1 ) ) { return word.toString(); } return pluralize( word ); }
public boolean isSingular( Object word ) { if ( word == null ) { return false; } return singularize( word ).equals( word.toString() ); }
Inflector.getInstance().singularize( collectionType ), Collections.singletonList(uniqueLookupRepairField), uniqueIndexRepair); Inflector.getInstance().singularize( collectionType ), Collections.singletonList(uniqueLookupRepairField), uniqueIndexRepair).toBlocking().last();
public boolean isPlural( Object word ) { if ( word == null ) { return false; } return pluralize( word ).equals( word.toString() ); }