デフォルトコンストラクタの判定ルーチンにバグがあったのを修正。
isから始まるプロパティ名の算出にバグがあったのを修正
@@ -59,7 +59,6 @@ | ||
59 | 59 | return; |
60 | 60 | } |
61 | 61 | |
62 | - | |
63 | 62 | Map<NameAndType, MethodDeclaration> setters = findSetters(methods); |
64 | 63 | for (Map.Entry<NameAndType, MethodDeclaration> entry : getters.entrySet()) { |
65 | 64 | NameAndType signature = entry.getKey(); |
@@ -68,7 +67,11 @@ | ||
68 | 67 | } |
69 | 68 | MethodDeclaration getter = entry.getValue(); |
70 | 69 | MethodDeclaration setter = setters.get(signature); |
71 | - BeanPropertyModel property = BeanPropertyModel.of(environment, getter, setter); | |
70 | + BeanPropertyModel property = BeanPropertyModel.of( | |
71 | + environment, | |
72 | + signature.name, | |
73 | + getter, | |
74 | + setter); | |
72 | 75 | results.put(signature.name, property); |
73 | 76 | } |
74 | 77 | } |
@@ -161,7 +164,7 @@ | ||
161 | 164 | if (Character.isJavaIdentifierStart(first) == false) { |
162 | 165 | return null; |
163 | 166 | } |
164 | - return Character.toUpperCase(first) + name.substring(verb.length() + 1); | |
167 | + return Character.toLowerCase(first) + name.substring(verb.length() + 1); | |
165 | 168 | } |
166 | 169 | |
167 | 170 | public Collection<? extends PropertyModel> getResults() { |
@@ -133,6 +133,10 @@ | ||
133 | 133 | } |
134 | 134 | return true; |
135 | 135 | } |
136 | + | |
137 | + if (klass.getConstructors().isEmpty() == false) { | |
138 | + return false; | |
139 | + } | |
136 | 140 | return type.getModifiers().contains(Modifier.PUBLIC); |
137 | 141 | } |
138 | 142 |
@@ -64,6 +64,7 @@ | ||
64 | 64 | /** |
65 | 65 | * 指定のフィールドに対応するプロパティを生成して返す。 |
66 | 66 | * @param environment 環境オブジェクト |
67 | + * @param name プロパティの名称 | |
67 | 68 | * @param getter アクセサとして取り扱うメソッド |
68 | 69 | * @param setter モディファイヤとして取り扱うメソッド、存在しない場合は{@code null} |
69 | 70 | * @return 対応するプロパティ |
@@ -70,10 +71,10 @@ | ||
70 | 71 | */ |
71 | 72 | public static BeanPropertyModel of( |
72 | 73 | AnnotationProcessorEnvironment environment, |
74 | + String name, | |
73 | 75 | MethodDeclaration getter, |
74 | 76 | MethodDeclaration setter) { |
75 | 77 | Types types = environment.getTypeUtils(); |
76 | - String name = nameFrom(getter); | |
77 | 78 | String getterName = getter.getSimpleName(); |
78 | 79 | String setterName = setter == null ? null : setter.getSimpleName(); |
79 | 80 | DeclaredType declaredType = Util.toMirror(environment, getter.getDeclaringType()); |
@@ -80,6 +81,10 @@ | ||
80 | 81 | TypeMirror propertyType = Util.boxing(environment, getter.getReturnType()); |
81 | 82 | String rawDeclaredType = types.getErasure(declaredType).toString(); |
82 | 83 | String erasedPropertyType = types.getErasure(getter.getReturnType()).toString(); |
84 | + environment.getMessager().printNotice(getter.getPosition(), "getter of " + name); | |
85 | + if (setter != null) { | |
86 | + environment.getMessager().printNotice(setter.getPosition(), "setter of " + name); | |
87 | + } | |
83 | 88 | return new BeanPropertyModel( |
84 | 89 | name, |
85 | 90 | getterName, |
@@ -90,15 +95,6 @@ | ||
90 | 95 | erasedPropertyType); |
91 | 96 | } |
92 | 97 | |
93 | - private static String nameFrom(MethodDeclaration getter) { | |
94 | - String original = getter.getSimpleName(); | |
95 | - assert original.length() > "get".length(); | |
96 | - StringBuilder buf = new StringBuilder(original.substring("get".length())); | |
97 | - char first = buf.charAt(0); | |
98 | - buf.setCharAt(0, Character.toLowerCase(first)); | |
99 | - return buf.toString(); | |
100 | - } | |
101 | - | |
102 | 98 | public String getName() { |
103 | 99 | return name; |
104 | 100 | } |