Class S2TaggedShapeCoder.Builder

    • Field Detail

      • MIN_USER_TYPE_TAG

        public static final int MIN_USER_TYPE_TAG
        The minimum non-reserved type tag.
        See Also:
        Constant Field Values
      • allowReservedTags

        private final boolean allowReservedTags
      • classToTypeTag

        private final java.util.IdentityHashMap<java.lang.Class<? extends S2Shape>,​java.lang.Integer> classToTypeTag
      • typeTagToCoder

        private final java.util.Map<java.lang.Integer,​S2Coder<? extends S2Shape>> typeTagToCoder
    • Constructor Detail

      • Builder

        private Builder​(boolean allowReservedTags)
      • Builder

        private Builder​(java.util.IdentityHashMap<java.lang.Class<? extends S2Shape>,​java.lang.Integer> classToTypeTag,
                        java.util.Map<java.lang.Integer,​S2Coder<? extends S2Shape>> typeTagToCoder)
    • Method Detail

      • add

        <T extends S2ShapeS2TaggedShapeCoder.Builder add​(java.lang.Class<? extends T> clazz,
                                                           S2Coder<T> coder,
                                                           int typeTag)
        Associates clazz with a unique coder and typeTag.

        If clazz or typeTag was already added, an IllegalArgumentException is thrown.

      • validateTypeTag

        private void validateTypeTag​(int typeTag)
      • validateClass

        private <T extends S2Shape> void validateClass​(java.lang.Class<? extends T> clazz)