Class CollectionBuilder

  • Direct Known Subclasses:
    CollectionBuilder.Default

    public abstract class CollectionBuilder
    extends java.lang.Object
    Helper class that is used for constructing Collections to map JSON Array values in.

    Objects server both as "factories" for creating new builders (blueprint style), and as actual builders. For each distinct read operation, newBuilder(int) will be called at least once; this instance may be used and reused multiple times, as calling start() will reset the state so that more Collections may be built.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CollectionBuilder.Default
      Default CollectionBuilder implementation, which uses ArrayList as the type of List to build, unless instructed otherwise.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.Class<?> _collectionType
      Optional Collection implementation class, used when specific implementation is desired.
      protected int _features  
      protected static java.lang.Object[] EMPTY_ARRAY  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected CollectionBuilder​(int features, java.lang.Class<?> collImpl)  
    • Field Detail

      • EMPTY_ARRAY

        protected static final java.lang.Object[] EMPTY_ARRAY
      • _features

        protected final int _features
      • _collectionType

        protected final java.lang.Class<?> _collectionType
        Optional Collection implementation class, used when specific implementation is desired.
    • Constructor Detail

      • CollectionBuilder

        protected CollectionBuilder​(int features,
                                    java.lang.Class<?> collImpl)
    • Method Detail

      • newBuilder

        public abstract CollectionBuilder newBuilder​(java.lang.Class<?> collImpl)
      • isEnabled

        public final boolean isEnabled​(JSON.Feature f)
      • buildCollection

        public abstract java.util.Collection<java.lang.Object> buildCollection()
        The usual build method to use for constructing Collection
      • buildArray

        public java.lang.Object[] buildArray()
        Alternative build method used when desired result type is Object[]
      • buildArray

        public <T> T[] buildArray​(java.lang.Class<T> type)
      • emptyCollection

        public java.util.Collection<java.lang.Object> emptyCollection()
        Specialized method that is called when an empty Collection needs to be constructed; this may be a new Collection, or an immutable shared one, depending on implementation.

        Default implementation simply calls:

          start().buildCollection();
        
      • emptyArray

        public java.lang.Object[] emptyArray()
        Specialized method that is called when an empty Object[] needs to be returned.

        Default implementation simply returns a shared empty array instance.

      • emptyArray

        public <T> T[] emptyArray​(java.lang.Class<T> type)
      • singletonCollection

        public java.util.Collection<java.lang.Object> singletonCollection​(java.lang.Object value)
        Specialized method that is called when a single-entry Collection needs to be constructed.

        Default implementation simply calls:

          start().add(value).buildCollection();
        
      • singletonArray

        public java.lang.Object[] singletonArray​(java.lang.Object value)
        Specialized method that is called when a single-entry array needs to be constructed.

        Default implementation simply returns equivalent of:

           new Object[] { value }
        
      • singletonArray

        public <T> T[] singletonArray​(java.lang.Class<?> type,
                                      T value)