@Override
 public Class<? extends AbstractDataSet> dataSetImplementationType() {
   WrappedDeclaredType returnType = getter.returnType();
   if (returnType.isAssignableTo(List.class)) {
     return ListDataSet.class;
   } else if (returnType.isAssignableTo(TypedCursor.class)) {
     return TypedCursorDataSet.class;
   } else {
     throw new RuntimeException(
         MessageFormat.format("Property {0} has an unsupported dataSet type", getter));
   }
 }
 @Override
 public String type() {
   return getter.returnType().className();
 }
 @Override
 public String getter() {
   return getter.methodName();
 }
 @Override
 public String name() {
   return getter.propertyName();
 }