package ch.qos.logback.core.joran.util.beans;

import java.lang.reflect.Method;
import java.util.Collections;
import java.util.Map;

Lightweight pendant to the java.beans.BeanInfo class. An instance of this class encapsulates the properties of a certain class. The properties are the public setters and getters. In addition the 'add-er'-methods are included, which are the public methods which start with the prefix 'add'.
Author:urechm
/** * Lightweight pendant to the java.beans.BeanInfo class. An instance of this * class encapsulates the properties of a certain class. The properties are the * public setters and getters. In addition the 'add-er'-methods are included, * which are the public methods which start with the prefix 'add'. * * @author urechm * */
public class BeanDescription { private final Class<?> clazz; private final Map<String, Method> propertyNameToGetter; private final Map<String, Method> propertyNameToSetter; private final Map<String, Method> propertyNameToAdder;
Scope protected since only the BeanDescriptionFactory must create BeanDescriptions in order to guarantee consistency between the given parameters.
Params:
  • clazz – of the bean.
  • propertyNameToGetter – map of property names to the associated getter.
  • propertyNameToSetter – map of property names to the associated setter.
  • propertyNameToAdder – map of property names to the associated adder.
/** * Scope protected since only the {@link BeanDescriptionFactory} must create * BeanDescriptions in order to guarantee consistency between the given * parameters. * * @param clazz of the bean. * @param propertyNameToGetter map of property names to the associated getter. * @param propertyNameToSetter map of property names to the associated setter. * @param propertyNameToAdder map of property names to the associated adder. */
protected BeanDescription(Class<?> clazz,Map<String, Method> propertyNameToGetter,Map<String, Method> propertyNameToSetter,Map<String, Method> propertyNameToAdder) { this.clazz = clazz; this.propertyNameToGetter = Collections.unmodifiableMap(propertyNameToGetter); this.propertyNameToSetter = Collections.unmodifiableMap(propertyNameToSetter); this.propertyNameToAdder = Collections.unmodifiableMap(propertyNameToAdder); } public Class<?> getClazz() { return clazz; } public Map<String, Method> getPropertyNameToGetter() { return propertyNameToGetter; } public Map<String, Method> getPropertyNameToSetter() { return propertyNameToSetter; } public Method getGetter(String propertyName) { return propertyNameToGetter.get(propertyName); } public Method getSetter(String propertyName) { return propertyNameToSetter.get(propertyName); } public Map<String, Method> getPropertyNameToAdder() { return propertyNameToAdder; } public Method getAdder(String propertyName) { return propertyNameToAdder.get(propertyName); } }