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 }