// Path: objector-ots/src/main/java/org/chenmin/open/objector/BooleanIntrospector.java
// public class BooleanIntrospector implements BeanIntrospector{
//     @Override
//     public void introspect(IntrospectionContext icontext) throws IntrospectionException {
//         for (Method m : icontext.getTargetClass().getMethods()) {
//             if (m.getName().startsWith("is") && Boolean.class.equals(m.getReturnType())) {
//                 String propertyName = getPropertyName(m);
//                 PropertyDescriptor pd = icontext.getPropertyDescriptor(propertyName);
// 
//                 if (pd == null)
//                     icontext.addPropertyDescriptor(new PropertyDescriptor(propertyName, m, getWriteMethod(icontext.getTargetClass(), propertyName)));
//                 else if (pd.getReadMethod() == null)
//                     pd.setReadMethod(m);
// 
//             }
//         }
//     }
// 
//     private String getPropertyName(Method m){
//         return WordUtils.uncapitalize(m.getName().substring(2, m.getName().length()));
//     }
// 
//     private Method getWriteMethod(Class<?> clazz, String propertyName){
//         try {
//             return clazz.getMethod("get" + WordUtils.capitalize(propertyName));
//         } catch (NoSuchMethodException e) {
//             return null;
//         }
//     }
// }


import org.apache.commons.beanutils.BeanIntrospector;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.WrapDynaBean;
import org.chenmin.open.objector.BooleanIntrospector;

package org.chenmin.open.objector.test;


public class Custom {
	
	public static class Test {
		private Integer a;
		private Boolean b;
		private Boolean c;
		public Integer getA() {
			return a;
		}
		public void setA(Integer a) {
			this.a = a;
		}
		public Boolean getB() {
			return b;
		}
		public void setB(Boolean b) {
			this.b = b;
		}
		public Boolean isC() {
			return c;
		}
		public void setC(Boolean c) {
			this.c = c;
		}
		
	}
	
	public static void main(String[] args) {
		try {

// Path: objector-ots/src/main/java/org/chenmin/open/objector/BooleanIntrospector.java
// public class BooleanIntrospector implements BeanIntrospector{
//     @Override
//     public void introspect(IntrospectionContext icontext) throws IntrospectionException {
//         for (Method m : icontext.getTargetClass().getMethods()) {
//             if (m.getName().startsWith("is") && Boolean.class.equals(m.getReturnType())) {
//                 String propertyName = getPropertyName(m);
//                 PropertyDescriptor pd = icontext.getPropertyDescriptor(propertyName);
// 
//                 if (pd == null)
//                     icontext.addPropertyDescriptor(new PropertyDescriptor(propertyName, m, getWriteMethod(icontext.getTargetClass(), propertyName)));
//                 else if (pd.getReadMethod() == null)
//                     pd.setReadMethod(m);
// 
//             }
//         }
//     }
// 
//     private String getPropertyName(Method m){
//         return WordUtils.uncapitalize(m.getName().substring(2, m.getName().length()));
//     }
// 
//     private Method getWriteMethod(Class<?> clazz, String propertyName){
//         try {
//             return clazz.getMethod("get" + WordUtils.capitalize(propertyName));
//         } catch (NoSuchMethodException e) {
//             return null;
//         }
//     }
// }


// Path: objector-test/src/test/java/org/chenmin/open/objector/test/Custom.java
import org.apache.commons.beanutils.BeanIntrospector;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.WrapDynaBean;
import org.chenmin.open.objector.BooleanIntrospector;

package org.chenmin.open.objector.test;


public class Custom {
	
	public static class Test {
		private Integer a;
		private Boolean b;
		private Boolean c;
		public Integer getA() {
			return a;
		}
		public void setA(Integer a) {
			this.a = a;
		}
		public Boolean getB() {
			return b;
		}
		public void setB(Boolean b) {
			this.b = b;
		}
		public Boolean isC() {
			return c;
		}
		public void setC(Boolean c) {
			this.c = c;
		}
		
	}
	
	public static void main(String[] args) {
		try {

			BeanIntrospector a = new BooleanIntrospector();
