Class DataSet

    • Field Detail

      • dataSet

        protected final java.util.HashMap<DataKeyBase<?>,​java.lang.Object> dataSet
      • ourDataKeyAggregators

        private static final java.util.ArrayList<DataKeyAggregator> ourDataKeyAggregators
    • Constructor Detail

      • DataSet

        public DataSet()
      • DataSet

        public DataSet​(@Nullable
                       @Nullable DataHolder other)
    • Method Detail

      • aggregateActions

        @NotNull
        public static @NotNull DataHolder aggregateActions​(@NotNull
                                                           @NotNull DataHolder other,
                                                           @NotNull
                                                           @NotNull DataHolder overrides)
        aggregate actions of two data sets, actions not applied
        Parameters:
        other - first set of options
        overrides - overrides on options
        Returns:
        resulting options where aggregate action keys were aggregated but not applied
      • aggregate

        @NotNull
        public @NotNull DataHolder aggregate()
        Apply aggregate action to data and return result
        Returns:
        resulting data holder
      • aggregate

        @NotNull
        public static @NotNull DataHolder aggregate​(@Nullable
                                                    @Nullable DataHolder other,
                                                    @Nullable
                                                    @Nullable DataHolder overrides)
        Aggregate two sets of options by aggregating their aggregate action keys then applying those actions on the resulting collection
        Parameters:
        other - options with aggregate actions already applied, no aggregate action keys are expected or checked
        overrides - overrides which may contain aggregate actions
        Returns:
        resulting options with aggregate actions applied and removed from set
      • getAll

        @NotNull
        public @NotNull java.util.Map<? extends DataKeyBase<?>,​java.lang.Object> getAll()
        Specified by:
        getAll in interface DataHolder
      • getKeys

        @NotNull
        public @NotNull java.util.Collection<? extends DataKeyBase<?>> getKeys()
        Specified by:
        getKeys in interface DataHolder
      • getOrCompute

        @Nullable
        public @Nullable java.lang.Object getOrCompute​(@NotNull
                                                       @NotNull DataKeyBase<?> key,
                                                       @NotNull
                                                       @NotNull DataValueFactory<?> factory)
        Description copied from interface: DataHolder
        Get key if it exists or compute using supplier

        Method used by DataKey classes to access data.

        NOTE: MutableDataHolders will compute an absent key and add it to its dataSet. DataHolders will return computed value but not change contained dataSet because they are immutable. So value will be computed every time it is requested.

        Specified by:
        getOrCompute in interface DataHolder
        Parameters:
        key - data key
        factory - factory taking this data holder and computing/providing default value
        Returns:
        object value for the key
      • merge

        @NotNull
        public static @NotNull DataSet merge​(@NotNull
                                             @NotNull DataHolder... dataHolders)
      • registerDataKeyAggregator

        public static void registerDataKeyAggregator​(@NotNull
                                                     @NotNull DataKeyAggregator keyAggregator)
      • isAggregatorRegistered

        static boolean isAggregatorRegistered​(@NotNull
                                              @NotNull DataKeyAggregator keyAggregator)
      • invokeSetContains

        static boolean invokeSetContains​(@Nullable
                                         @Nullable java.util.Set<java.lang.Class<?>> invokeSet,
                                         @NotNull
                                         @NotNull DataKeyAggregator aggregator)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object