|
1 |
| package com.agical.rmock.core.util; |
|
2 |
| |
|
3 |
| import java.util.HashMap; |
|
4 |
| import java.util.Map; |
|
5 |
| |
|
6 |
| public class NamingUtils { |
|
7 |
| private Map indexByClass = new HashMap(); |
|
8 |
106
| private int getIndexFromNameAndIncrement(String name) {
|
|
9 |
106
| Integer integer = (Integer) indexByClass.get( name );
|
|
10 |
106
| if( integer == null ) {
|
|
11 |
87
| integer = new Integer( 0 );
|
|
12 |
| } |
|
13 |
106
| integer = new Integer( integer.intValue() + 1 );
|
|
14 |
106
| indexByClass.put( name, integer );
|
|
15 |
106
| return integer.intValue();
|
|
16 |
| } |
|
17 |
| |
|
18 |
106
| public String createNameFromMethod(String methodName, Class returnType) {
|
|
19 |
106
| String name;
|
|
20 |
106
| if(!methodName.equals("get") && methodName.startsWith("get")) {
|
|
21 |
83
| name = createNameFromPropertyMethod(methodName);
|
|
22 |
| } |
|
23 |
| else { |
|
24 |
23
| name = createNameFromType(returnType);
|
|
25 |
| } |
|
26 |
106
| return name + getIndexFromNameAndIncrement(name);
|
|
27 |
| } |
|
28 |
| |
|
29 |
83
| private String createNameFromPropertyMethod(String methodName) {
|
|
30 |
83
| String propertyName = methodName.substring(3);
|
|
31 |
83
| return decapitalize(propertyName);
|
|
32 |
| } |
|
33 |
| |
|
34 |
114
| public String createNameFromType(Class returnType) {
|
|
35 |
114
| String qualifiedName = returnType.getName();
|
|
36 |
114
| String unqualifiedName = qualifiedName.substring(qualifiedName.lastIndexOf('.')+1);
|
|
37 |
114
| return decapitalize(unqualifiedName);
|
|
38 |
| } |
|
39 |
| |
|
40 |
197
| private String decapitalize(String unqualifiedName) {
|
|
41 |
197
| String decapitalized = unqualifiedName.substring(0,1).toLowerCase() + unqualifiedName.substring(1);
|
|
42 |
197
| return decapitalized;
|
|
43 |
| } |
|
44 |
| } |