/src/main/net/sf/persist/DefaultNameGuesser.java

http://github.com/rufiao/persist · Java · 32 lines · 16 code · 7 blank · 9 comment · 0 complexity · 97a91f7dd04acb1afc190532102fd2ae MD5 · raw file

  1. // $Id$
  2. package net.sf.persist;
  3. import java.util.LinkedHashSet;
  4. import java.util.Locale;
  5. import java.util.Set;
  6. /**
  7. * Default NameGuesser implementation.
  8. */
  9. public final class DefaultNameGuesser implements NameGuesser {
  10. /**
  11. * Given a field or class name in the form CompoundName (for classes) or
  12. * compoundName (for fields) will return a set of guessed names such as
  13. * [compound_name, compound_names, compoundname, compoundnames].
  14. */
  15. public Set<String> guessColumn(final String fieldOrClassName) {
  16. final String nameUnderscore = fieldOrClassName.replaceAll("([A-Z])", "_$1").toLowerCase();
  17. final String nameLowercase = fieldOrClassName.toLowerCase(Locale.ENGLISH);
  18. final Set<String> names = new LinkedHashSet();
  19. names.add(nameUnderscore);
  20. names.add(nameLowercase);
  21. names.add(nameUnderscore + "s");
  22. names.add(nameLowercase + "s");
  23. return names;
  24. }
  25. }