Class GuavaSerIteratorFactory

    • Constructor Detail

      • GuavaSerIteratorFactory

        public GuavaSerIteratorFactory()
    • Method Detail

      • create

        public SerIterator create​(Object value,
                                  MetaProperty<?> prop,
                                  Class<?> beanClass)
        Creates an iterator wrapper for a meta-property value.
        Overrides:
        create in class SerIteratorFactory
        Parameters:
        value - the possible collection-like object, not null
        prop - the meta-property defining the value, not null
        beanClass - the class of the bean, not the meta-property, for better generics, not null
        Returns:
        the iterator, null if not a collection-like type
      • createChild

        public SerIterator createChild​(Object value,
                                       SerIterator parent)
        Creates an iterator wrapper for a value retrieved from a parent iterator.

        Allows the parent iterator to define the child iterator using generic type information. This handles cases such as a List as the value in a Map.

        Overrides:
        createChild in class SerIteratorFactory
        Parameters:
        value - the possible collection-like object, not null
        parent - the parent iterator, not null
        Returns:
        the iterator, null if not a collection-like type
      • createIterable

        public SerIterable createIterable​(String metaTypeDescription,
                                          JodaBeanSer settings,
                                          Map<String,​Class<?>> knownTypes)
        Creates an iterator wrapper for a meta-property value.
        Overrides:
        createIterable in class SerIteratorFactory
        Parameters:
        metaTypeDescription - the description of the collection type, not null
        settings - the settings object, not null
        knownTypes - the known types map, null if not using known type shortening
        Returns:
        the iterator, null if not a collection-like type
      • createIterable

        public SerIterable createIterable​(MetaProperty<?> prop,
                                          Class<?> beanClass)
        Creates an iterator wrapper for a meta-property value.
        Overrides:
        createIterable in class SerIteratorFactory
        Parameters:
        prop - the meta-property defining the value, not null
        beanClass - the class of the bean, not the meta-property, for better generics, not null
        Returns:
        the iterator, null if not a collection-like type
      • biMap

        public static final SerIterable biMap​(Class<?> keyType,
                                              Class<?> valueType,
                                              List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for BiMap.
        Parameters:
        keyType - the value type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • multiset

        public static final SerIterable multiset​(Class<?> valueType,
                                                 List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for Multiset.
        Parameters:
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • sortedMultiset

        public static final SerIterable sortedMultiset​(Class<?> valueType,
                                                       List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for SortedMultiset.
        Parameters:
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • multiset

        public static final SerIterator multiset​(com.google.common.collect.Multiset<?> multiset,
                                                 Class<?> declaredType,
                                                 Class<?> valueType,
                                                 List<Class<?>> valueTypeTypes)
        Gets an iterator wrapper for Multiset.
        Parameters:
        multiset - the collection, not null
        declaredType - the declared type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterator, not null
      • listMultimap

        public static final SerIterable listMultimap​(Class<?> keyType,
                                                     Class<?> valueType,
                                                     List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for ListMultimap.
        Parameters:
        keyType - the key type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • setMultimap

        public static final SerIterable setMultimap​(Class<?> keyType,
                                                    Class<?> valueType,
                                                    List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for SetMultimap.
        Parameters:
        keyType - the key type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • multimap

        public static final SerIterator multimap​(com.google.common.collect.Multimap<?,​?> map,
                                                 Class<?> declaredType,
                                                 Class<?> keyType,
                                                 Class<?> valueType,
                                                 List<Class<?>> valueTypeTypes)
        Gets an iterator wrapper for Multimap.
        Parameters:
        map - the collection, not null
        declaredType - the declared type, not null
        keyType - the key type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterator, not null
      • table

        public static final SerIterable table​(Class<?> rowType,
                                              Class<?> colType,
                                              Class<?> valueType,
                                              List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for Table.
        Parameters:
        rowType - the row type, not null
        colType - the column type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • table

        public static final SerIterator table​(com.google.common.collect.Table<?,​?,​?> table,
                                              Class<?> declaredType,
                                              Class<?> rowType,
                                              Class<?> colType,
                                              Class<?> valueType,
                                              List<Class<?>> valueTypeTypes)
        Gets an iterator wrapper for Table.
        Parameters:
        table - the collection, not null
        declaredType - the declared type, not null
        rowType - the row type, not null
        colType - the col type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterator, not null
      • biMap

        public static final SerIterator biMap​(com.google.common.collect.BiMap<?,​?> map,
                                              Class<?> declaredType,
                                              Class<?> keyType,
                                              Class<?> valueType,
                                              List<Class<?>> valueTypeTypes)
        Gets an iterator wrapper for BiMap.
        Parameters:
        map - the collection, not null
        declaredType - the declared type, not null
        keyType - the value type, not null
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterator, not null
      • immutableList

        public static final SerIterable immutableList​(Class<?> valueType,
                                                      List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for ImmutableList.
        Parameters:
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • immutableSortedSet

        public static final SerIterable immutableSortedSet​(Class<?> valueType,
                                                           List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for ImmutableSortedSet.
        Parameters:
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null
      • immutableSet

        public static final SerIterable immutableSet​(Class<?> valueType,
                                                     List<Class<?>> valueTypeTypes)
        Gets an iterable wrapper for ImmutableSet.
        Parameters:
        valueType - the value type, not null
        valueTypeTypes - the generic parameters of the value type
        Returns:
        the iterable, not null