Class CachedIBeanMetaInfoParser


  • public class CachedIBeanMetaInfoParser
    extends IBeanMetaInfoParser
    Extension of IBeanMetaInfoParser using an internal cache to reuse meta information once created with parse(Class, BeanStyle, List). This is the default implementation of IBeanMetaInfoParser used by IBean framework.

    The internal cache is very simple and does not have a timeout or size limit assuming meta informations do not change over runtime and assuming a limited number of bean types.

    • Constructor Detail

      • CachedIBeanMetaInfoParser

        public CachedIBeanMetaInfoParser()
    • Method Detail

      • parse

        public <T> IBeanTypeMetaInfo<T> parse​(Class<T> beanType,
                                              BeanStyle beanStyle,
                                              List<Class<?>> ignorableSuperInterfaces)
        Description copied from class: IBeanMetaInfoParser
        Validates if a given class matches all criteria for being an IBean interface and if that is the case then retrieves all relevant information about the all fields contained in the class. See IBeanFieldMetaInfo about what information is gathered for each field.

        A given type is a valid IBean interface if following criteria match:

        • The bean type contains no methods other setters and getters, with the exception of methods of some specifically excluded super interfaces.
        • All getters and setters match to the used BeanStyle.
        • Every getter method has a matching setter and vice versa.
        Overrides:
        parse in class IBeanMetaInfoParser
        Type Parameters:
        T - generic type T is the bean class provided with parameter beanType
        Parameters:
        beanType - the IBean interface candidate to parse
        beanStyle - the bean style to use for parsing
        ignorableSuperInterfaces - a list of super interfaces of the provided beanType whose methods should be excluded from being considered as getters and setters. These interfaces are typically extension interfaces like Freezable.
        Returns:
        the meta information for the IBean interface