View Javadoc

1   package com.atlassian.plugin.schema.spi;
2   
3   import com.google.common.base.Function;
4   
5   final class IdUtils
6   {
7       private static final Function<Character, String> CAMEL_CASER = new Function<Character, String>()
8       {
9           @Override
10          public String apply(Character input)
11          {
12              return String.valueOf(Character.toUpperCase(input));
13          }
14      };
15  
16      private static final Function<Character, String> TITLER = new Function<Character, String>()
17      {
18          @Override
19          public String apply(Character input)
20          {
21              return " " + Character.toUpperCase(input);
22          }
23      };
24  
25      public static String dashesToCamelCase(String id)
26      {
27          return process(id, CAMEL_CASER);
28      }
29  
30      public static String dashesToTitle(String id)
31      {
32          return process(id, TITLER).substring(1);
33      }
34  
35      private static String process(String id, Function<Character,String> converter)
36      {
37          StringBuilder sb = new StringBuilder();
38  
39          char prev = '-';
40          for (int x=0; x < id.length(); x++)
41          {
42              char cur = id.charAt(x);
43              if (prev == '-')
44              {
45                  sb.append(converter.apply(cur));
46              }
47              else if (cur != '-')
48              {
49                  sb.append(cur);
50              }
51              prev = cur;
52          }
53          return sb.toString();
54      }
55  }