// Path: core/src/main/java/net/sf/beanlib/provider/collector/PublicSetterMethodCollector.java
// public class PublicSetterMethodCollector implements BeanMethodCollector {
// 
//     @Override
//     public Method[] collect(Object bean) {
//         // Get all the public member methods of the class or interface,
//         // including those declared by the class or interface and
//         // those inherited from superclasses and superinterfaces.
//         Method[] ma = bean.getClass().getMethods();
//         List<Method> list = new ArrayList<Method>();
// 
//         for (Method m : ma) {
//             if (m.getParameterTypes().length == 1) {
//                 if (m.getName().startsWith(getMethodPrefix())) {
//                     list.add(m);
//                 }
//             }
//         }
//         return list.toArray(new Method[list.size()]);
//     }
// 
//     @Override
//     public String getMethodPrefix() {
//         return "set";
//     }
// }
// 
// Path: core/src/main/java/net/sf/beanlib/provider/finder/PublicReaderMethodFinder.java
// public class PublicReaderMethodFinder implements BeanMethodFinder {
// 
//     @Override
//     public Method find(final String propertyName, Object bean) {
//         String s = propertyName;
// 
//         if (Character.isLowerCase(propertyName.charAt(0))) {
//             s = propertyName.substring(0, 1).toUpperCase();
// 
//             if (propertyName.length() > 1) {
//                 s += propertyName.substring(1);
//             }
//         }
//         Class<?> beanClass = bean.getClass();
//         try {
//             // Find the public member method of the class or interface,
//             // recursively on super classes and interfaces as necessary.
//             Method m = beanClass.getMethod("get" + s);
//             if (m.getParameterTypes().length == 0) {
//                 return m;
//             }
//         } catch (NoSuchMethodException ignore) {}
//         try {
//             Method m = beanClass.getMethod("is" + s);
//             if (m.getParameterTypes().length == 0) {
//                 return m;
//             }
//         } catch (NoSuchMethodException ignore) {}
//         return null;
//     }
// }


import net.sf.beanlib.provider.collector.PublicSetterMethodCollector;
import net.sf.beanlib.provider.finder.PublicReaderMethodFinder;

    public BeanPopulationExceptionHandler getBeanPopulationExceptionHandler() {
        return beanPopulationExceptionHandler;
    }

    public void setBeanPopulationExceptionHandler(BeanPopulationExceptionHandler beanPopulationExceptionHandler) {
        this.beanPopulationExceptionHandler = beanPopulationExceptionHandler;
    }

    public BeanSourceHandler getBeanSourceHandler() {
        return beanSourceHandler;
    }

    public void setBeanSourceHandler(BeanSourceHandler beanSourceHandler) {
        this.beanSourceHandler = beanSourceHandler;
    }

    public DetailedPropertyFilter getDetailedPropertyFilter() {
        return detailedPropertyFilter;
    }

    public void setDetailedPropertyFilter(DetailedPropertyFilter detailedPropertyFilter) {
        this.detailedPropertyFilter = detailedPropertyFilter;
    }

    public BeanMethodFinder getReaderMethodFinder() {
        return readerMethodFinder;
    }

    public void setReaderMethodFinder(BeanMethodFinder readerMethodFinder) {
// Path: core/src/main/java/net/sf/beanlib/provider/collector/PublicSetterMethodCollector.java
// public class PublicSetterMethodCollector implements BeanMethodCollector {
// 
//     @Override
//     public Method[] collect(Object bean) {
//         // Get all the public member methods of the class or interface,
//         // including those declared by the class or interface and
//         // those inherited from superclasses and superinterfaces.
//         Method[] ma = bean.getClass().getMethods();
//         List<Method> list = new ArrayList<Method>();
// 
//         for (Method m : ma) {
//             if (m.getParameterTypes().length == 1) {
//                 if (m.getName().startsWith(getMethodPrefix())) {
//                     list.add(m);
//                 }
//             }
//         }
//         return list.toArray(new Method[list.size()]);
//     }
// 
//     @Override
//     public String getMethodPrefix() {
//         return "set";
//     }
// }
// 
// Path: core/src/main/java/net/sf/beanlib/provider/finder/PublicReaderMethodFinder.java
// public class PublicReaderMethodFinder implements BeanMethodFinder {
// 
//     @Override
//     public Method find(final String propertyName, Object bean) {
//         String s = propertyName;
// 
//         if (Character.isLowerCase(propertyName.charAt(0))) {
//             s = propertyName.substring(0, 1).toUpperCase();
// 
//             if (propertyName.length() > 1) {
//                 s += propertyName.substring(1);
//             }
//         }
//         Class<?> beanClass = bean.getClass();
//         try {
//             // Find the public member method of the class or interface,
//             // recursively on super classes and interfaces as necessary.
//             Method m = beanClass.getMethod("get" + s);
//             if (m.getParameterTypes().length == 0) {
//                 return m;
//             }
//         } catch (NoSuchMethodException ignore) {}
//         try {
//             Method m = beanClass.getMethod("is" + s);
//             if (m.getParameterTypes().length == 0) {
//                 return m;
//             }
//         } catch (NoSuchMethodException ignore) {}
//         return null;
//     }
// }


// Path: core/src/main/java/net/sf/beanlib/spi/BeanPopulatorBaseConfig.java
import net.sf.beanlib.provider.collector.PublicSetterMethodCollector;
import net.sf.beanlib.provider.finder.PublicReaderMethodFinder;


    public BeanPopulationExceptionHandler getBeanPopulationExceptionHandler() {
        return beanPopulationExceptionHandler;
    }

    public void setBeanPopulationExceptionHandler(BeanPopulationExceptionHandler beanPopulationExceptionHandler) {
        this.beanPopulationExceptionHandler = beanPopulationExceptionHandler;
    }

    public BeanSourceHandler getBeanSourceHandler() {
        return beanSourceHandler;
    }

    public void setBeanSourceHandler(BeanSourceHandler beanSourceHandler) {
        this.beanSourceHandler = beanSourceHandler;
    }

    public DetailedPropertyFilter getDetailedPropertyFilter() {
        return detailedPropertyFilter;
    }

    public void setDetailedPropertyFilter(DetailedPropertyFilter detailedPropertyFilter) {
        this.detailedPropertyFilter = detailedPropertyFilter;
    }

    public BeanMethodFinder getReaderMethodFinder() {
        return readerMethodFinder;
    }

    public void setReaderMethodFinder(BeanMethodFinder readerMethodFinder) {
        this.readerMethodFinder = readerMethodFinder;