[Jiemamy-notify:2835] commit [3757] デフォルトコンストラクタの判定ルーチンにバグがあったのを修正。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 4月 24日 (土) 13:20:36 JST


Revision: 3757
          http://sourceforge.jp/projects/jiemamy/svn/view?view=rev&revision=3757
Author:   ashigeru
Date:     2010-04-24 13:20:36 +0900 (Sat, 24 Apr 2010)

Log Message:
-----------
デフォルトコンストラクタの判定ルーチンにバグがあったのを修正。
isから始まるプロパティ名の算出にバグがあったのを修正

Modified Paths:
--------------
    sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/BeanPropertyModel.java
    sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/KindModel.java
    sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/processor/BeanPropertyModelCollector.java

Modified: sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/BeanPropertyModel.java
===================================================================
--- sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/BeanPropertyModel.java	2010-02-01 14:55:48 UTC (rev 3756)
+++ sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/BeanPropertyModel.java	2010-04-24 04:20:36 UTC (rev 3757)
@@ -64,22 +64,27 @@
     /**
      * 指定のフィールドに対応するプロパティを生成して返す。
      * @param environment 環境オブジェクト
+     * @param name プロパティの名称
      * @param getter アクセサとして取り扱うメソッド
      * @param setter モディファイヤとして取り扱うメソッド、存在しない場合は{@code null}
      * @return 対応するプロパティ
      */
     public static BeanPropertyModel of(
             AnnotationProcessorEnvironment environment,
+            String name,
             MethodDeclaration getter,
             MethodDeclaration setter) {
         Types types = environment.getTypeUtils();
-        String name = nameFrom(getter);
         String getterName = getter.getSimpleName();
         String setterName = setter == null ? null : setter.getSimpleName();
         DeclaredType declaredType = Util.toMirror(environment, getter.getDeclaringType());
         TypeMirror propertyType = Util.boxing(environment, getter.getReturnType());
         String rawDeclaredType = types.getErasure(declaredType).toString();
         String erasedPropertyType = types.getErasure(getter.getReturnType()).toString();
+        environment.getMessager().printNotice(getter.getPosition(), "getter of " + name);
+        if (setter != null) {
+            environment.getMessager().printNotice(setter.getPosition(), "setter of " + name);
+        }
         return new BeanPropertyModel(
             name,
             getterName,
@@ -90,15 +95,6 @@
             erasedPropertyType);
     }
 
-    private static String nameFrom(MethodDeclaration getter) {
-        String original = getter.getSimpleName();
-        assert original.length() > "get".length();
-        StringBuilder buf = new StringBuilder(original.substring("get".length()));
-        char first = buf.charAt(0);
-        buf.setCharAt(0, Character.toLowerCase(first));
-        return buf.toString();
-    }
-
     public String getName() {
         return name;
     }

Modified: sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/KindModel.java
===================================================================
--- sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/KindModel.java	2010-02-01 14:55:48 UTC (rev 3756)
+++ sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/model/KindModel.java	2010-04-24 04:20:36 UTC (rev 3757)
@@ -133,6 +133,10 @@
             }
             return true;
         }
+
+        if (klass.getConstructors().isEmpty() == false) {
+            return false;
+        }
         return type.getModifiers().contains(Modifier.PUBLIC);
     }
 

Modified: sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/processor/BeanPropertyModelCollector.java
===================================================================
--- sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/processor/BeanPropertyModelCollector.java	2010-02-01 14:55:48 UTC (rev 3756)
+++ sandbox/object-manipulator-generator/src/main/java/org/jiemamy/utils/object/manipulate/meta/processor/BeanPropertyModelCollector.java	2010-04-24 04:20:36 UTC (rev 3757)
@@ -59,7 +59,6 @@
             return;
         }
 
-
         Map<NameAndType, MethodDeclaration> setters = findSetters(methods);
         for (Map.Entry<NameAndType, MethodDeclaration> entry : getters.entrySet()) {
             NameAndType signature = entry.getKey();
@@ -68,7 +67,11 @@
             }
             MethodDeclaration getter = entry.getValue();
             MethodDeclaration setter = setters.get(signature);
-            BeanPropertyModel property = BeanPropertyModel.of(environment, getter, setter);
+            BeanPropertyModel property = BeanPropertyModel.of(
+                environment,
+                signature.name,
+                getter,
+                setter);
             results.put(signature.name, property);
         }
     }
@@ -161,7 +164,7 @@
         if (Character.isJavaIdentifierStart(first) == false) {
             return null;
         }
-        return Character.toUpperCase(first) + name.substring(verb.length() + 1);
+        return Character.toLowerCase(first) + name.substring(verb.length() + 1);
     }
 
     public Collection<? extends PropertyModel> getResults() {




Jiemamy-notify メーリングリストの案内
Back to archive index