Package io.substrait.extension
Class ImmutableAdvancedExtension<O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement>
java.lang.Object
io.substrait.extension.AdvancedExtension<O,E>
io.substrait.extension.ImmutableAdvancedExtension<O,E>
public final class ImmutableAdvancedExtension<O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement>
extends AdvancedExtension<O,E>
Immutable implementation of
AdvancedExtension.
Use the builder to create immutable instances:
ImmutableAdvancedExtension.builder().
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classImmutableAdvancedExtension.Builder<O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement> Builds instances of typeImmutableAdvancedExtension.Nested classes/interfaces inherited from class io.substrait.extension.AdvancedExtension
AdvancedExtension.Enhancement, AdvancedExtension.Optimization -
Method Summary
Modifier and TypeMethodDescriptionstatic <O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement>
ImmutableAdvancedExtension.Builder<O,E> builder()Creates a builder forImmutableAdvancedExtension.static <O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement>
ImmutableAdvancedExtension<O,E> copyOf(AdvancedExtension<O, E> instance) Creates an immutable copy of aAdvancedExtensionvalue.booleanThis instance is equal to all instances ofImmutableAdvancedExtensionthat have equal attribute values.Returns the optional enhancement associated with this extension.Returns the list of optimizations associated with this extension.inthashCode()Computes a hash code from attributes:optimizations,enhancement.toString()Prints the immutable valueAdvancedExtensionwith attribute values.final ImmutableAdvancedExtension<O,E> withEnhancement(E value) Copy the current immutable object by setting a present value for the optionalenhancementattribute.final ImmutableAdvancedExtension<O,E> withEnhancement(Optional<? extends E> optional) Copy the current immutable object by setting an optional value for theenhancementattribute.final ImmutableAdvancedExtension<O,E> withOptimizations(Iterable<? extends O> elements) Copy the current immutable object with elements that replace the content ofoptimizations.final ImmutableAdvancedExtension<O,E> withOptimizations(O... elements) Copy the current immutable object with elements that replace the content ofoptimizations.
-
Method Details
-
getOptimizations
Returns the list of optimizations associated with this extension.- Specified by:
getOptimizationsin classAdvancedExtension<O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement> - Returns:
- list of optimizations
-
getEnhancement
Returns the optional enhancement associated with this extension.- Specified by:
getEnhancementin classAdvancedExtension<O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement> - Returns:
- optional enhancement
-
withOptimizations
Copy the current immutable object with elements that replace the content ofoptimizations.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withOptimizations
Copy the current immutable object with elements that replace the content ofoptimizations. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of optimizations elements to set- Returns:
- A modified copy or
thisif not changed
-
withEnhancement
Copy the current immutable object by setting a present value for the optionalenhancementattribute.- Parameters:
value- The value for enhancement- Returns:
- A modified copy or
thisif not changed
-
withEnhancement
Copy the current immutable object by setting an optional value for theenhancementattribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returningthis.- Parameters:
optional- An optional value for enhancement- Returns:
- A modified copy or
thisif not changed
-
equals
This instance is equal to all instances ofImmutableAdvancedExtensionthat have equal attribute values. -
hashCode
public int hashCode()Computes a hash code from attributes:optimizations,enhancement. -
toString
Prints the immutable valueAdvancedExtensionwith attribute values. -
copyOf
public static <O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement> ImmutableAdvancedExtension<O,E> copyOf(AdvancedExtension<O, E> instance) Creates an immutable copy of aAdvancedExtensionvalue. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.- Type Parameters:
O- generic parameter OE- generic parameter E- Parameters:
instance- The instance to copy- Returns:
- A copied immutable AdvancedExtension instance
-
builder
public static <O extends AdvancedExtension.Optimization,E extends AdvancedExtension.Enhancement> ImmutableAdvancedExtension.Builder<O,E> builder()Creates a builder forImmutableAdvancedExtension.ImmutableAdvancedExtension.<O, E>builder() .addOptimizations|addAllOptimizations(O) //optimizationselements .enhancement(Optional<E>) // optionalenhancement.build();- Type Parameters:
O- generic parameter OE- generic parameter E- Returns:
- A new ImmutableAdvancedExtension builder
-