package org.osgl.util; /** * Create {@link PropertyGetter} and {@link PropertySetter} */ public interface PropertyHandlerFactory { /** * Create a {@link PropertySetter} * @param c the class of the entity * @param propName the name of the property * @return the property setter */ PropertySetter createPropertySetter(Class c, String propName); /** * Create a {@link PropertyGetter} * @param c the class of the entity * @param propName the name of the property * @param requireField force to get the field directly instead of using getter method * @return the property getter */ PropertyGetter createPropertyGetter(Class c, String propName, boolean requireField); MapPropertyGetter createMapPropertyGetter(Class keyType, Class valType); MapPropertySetter createMapPropertySetter(Class keyType, Class valType); ListPropertyGetter createListPropertyGetter(Class itemType); ListPropertySetter createListPropertySetter(Class itemType); }