UnderscoredToCapitalized.java

  1. package org.jbehave.core.io;

  2. import static org.apache.commons.lang3.StringUtils.contains;
  3. import static org.apache.commons.lang3.StringUtils.substringAfterLast;
  4. import static org.apache.commons.lang3.StringUtils.substringBeforeLast;
  5. import static org.apache.commons.lang3.text.WordUtils.capitalize;

  6. public class UnderscoredToCapitalized implements StoryNameResolver {

  7.     private final String extension;

  8.     public UnderscoredToCapitalized() {
  9.         this(".story");
  10.     }

  11.     public UnderscoredToCapitalized(String extension) {
  12.         this.extension = extension;
  13.     }

  14.     @Override
  15.     public String resolveName(String path) {
  16.         String name = path;
  17.         if (contains(name, extension)) {
  18.             name = substringBeforeLast(name, extension);
  19.         }
  20.         if (contains(name, '/')) {
  21.             name = substringAfterLast(name, "/");
  22.         }
  23.         if (contains(name, '.')) {
  24.             name = substringAfterLast(name, ".");
  25.         }
  26.         return capitalize(name.replace("_", " "));
  27.     }

  28. }