Class ArrayBindingSet

    • Field Detail

      • logger

        private static final org.slf4j.Logger logger
      • bindingNames

        private final java.lang.String[] bindingNames
      • whichBindingsHaveBeenSet

        private final boolean[] whichBindingsHaveBeenSet
      • values

        private final Value[] values
      • sortedBindingNames

        java.util.List<java.lang.String> sortedBindingNames
    • Constructor Detail

      • ArrayBindingSet

        public ArrayBindingSet​(java.lang.String... names)
        Creates a new Array-based BindingSet for the supplied bindings names. The supplied list of binding names is assumed to be constant; care should be taken that the contents of this array doesn't change after supplying it to this solution.
        Parameters:
        names - The binding names.
      • ArrayBindingSet

        public ArrayBindingSet​(BindingSet toCopy,
                               java.util.Set<java.lang.String> names,
                               java.lang.String[] namesArray)
      • ArrayBindingSet

        public ArrayBindingSet​(ArrayBindingSet toCopy,
                               java.lang.String... names)
    • Method Detail

      • getDirectSetBinding

        public java.util.function.BiConsumer<Value,​ArrayBindingSet> getDirectSetBinding​(java.lang.String bindingName)
        This is used to generate a direct setter into the array to put a binding value into. Can be used to avoid many comparisons to the bindingNames.
        Parameters:
        bindingName - for which you want the setter
        Returns:
        the setter biconsumer which can operate on any ArrayBindingSet but should only be used on ones with an identical bindingNames array. Otherwise returns null.
      • getDirectAddBinding

        public java.util.function.BiConsumer<Value,​ArrayBindingSet> getDirectAddBinding​(java.lang.String bindingName)
      • getDirectGetBinding

        public java.util.function.Function<ArrayBindingSet,​Binding> getDirectGetBinding​(java.lang.String bindingName)
      • getDirectGetValue

        public java.util.function.Function<ArrayBindingSet,​Value> getDirectGetValue​(java.lang.String bindingName)
      • getDirectHasBinding

        public java.util.function.Function<ArrayBindingSet,​java.lang.Boolean> getDirectHasBinding​(java.lang.String bindingName)
      • getIndex

        private int getIndex​(java.lang.String bindingName)
      • getBindingNames

        public java.util.Set<java.lang.String> getBindingNames()
        Description copied from interface: BindingSet
        Gets the names of the bindings in this BindingSet.
        Specified by:
        getBindingNames in interface BindingSet
        Returns:
        A set of binding names.
      • getValue

        public Value getValue​(java.lang.String bindingName)
        Description copied from interface: BindingSet
        Gets the value of the binding with the specified name from this BindingSet.
        Specified by:
        getValue in interface BindingSet
        Parameters:
        bindingName - The name of the binding.
        Returns:
        The value of the binding with the specified name, or null if there is no such binding in this BindingSet.
      • getBinding

        public Binding getBinding​(java.lang.String bindingName)
        Description copied from interface: BindingSet
        Gets the binding with the specified name from this BindingSet.
        Specified by:
        getBinding in interface BindingSet
        Parameters:
        bindingName - The name of the binding.
        Returns:
        The binding with the specified name, or null if there is no such binding in this BindingSet.
      • hasBinding

        public boolean hasBinding​(java.lang.String bindingName)
        Description copied from interface: BindingSet
        Checks whether this BindingSet has a binding with the specified name.
        Specified by:
        hasBinding in interface BindingSet
        Parameters:
        bindingName - The name of the binding.
        Returns:
        true if this BindingSet has a binding with the specified name, false otherwise.
      • iterator

        public java.util.Iterator<Binding> iterator()
        Description copied from interface: BindingSet
        Creates an iterator over the bindings in this BindingSet. This only returns bindings with non-null values. An implementation is free to return the bindings in arbitrary order.
        Specified by:
        iterator in interface BindingSet
        Specified by:
        iterator in interface java.lang.Iterable<Binding>
      • size

        public int size()
        Description copied from interface: BindingSet
        Returns the number of bindings in this BindingSet.
        Specified by:
        size in interface BindingSet
        Returns:
        The number of bindings in this BindingSet.
      • getSortedBindingNames

        public java.util.List<java.lang.String> getSortedBindingNames()
      • addBinding

        public void addBinding​(Binding binding)
        Description copied from interface: MutableBindingSet
        Adds a binding to the binding set.
        Specified by:
        addBinding in interface MutableBindingSet
        Parameters:
        binding - The binding to add to the binding set.