Class ImmutableNeatChromosomeSpec

java.lang.Object
net.bmahe.genetics4j.neat.spec.NeatChromosomeSpec
net.bmahe.genetics4j.neat.spec.ImmutableNeatChromosomeSpec
All Implemented Interfaces:
ChromosomeSpec

@Generated(from="NeatChromosomeSpec", generator="Immutables") @Generated("org.immutables.processor.ProxyProcessor") public final class ImmutableNeatChromosomeSpec extends NeatChromosomeSpec
Immutable implementation of NeatChromosomeSpec.

Use the builder to create immutable instances: new NeatChromosomeSpec.Builder(). Use the static factory method to create immutable instances: ImmutableNeatChromosomeSpec.of().

  • Field Details

    • nodeLayout

      private final NeatNodeLayout nodeLayout
    • minWeightValue

      private final float minWeightValue
    • maxWeightValue

      private final float maxWeightValue
  • Constructor Details

    • ImmutableNeatChromosomeSpec

      private ImmutableNeatChromosomeSpec(NeatNodeLayout nodeLayout, float minWeightValue, float maxWeightValue)
    • ImmutableNeatChromosomeSpec

      private ImmutableNeatChromosomeSpec(ImmutableNeatChromosomeSpec original, NeatNodeLayout nodeLayout, float minWeightValue, float maxWeightValue)
  • Method Details

    • nodeLayout

      public NeatNodeLayout nodeLayout()
      Returns the stable external node identities and hidden-node namespace for chromosomes created from this specification.
      Specified by:
      nodeLayout in class NeatChromosomeSpec
      Returns:
      the node layout
    • minWeightValue

      public float minWeightValue()
      Returns the minimum allowed connection weight.
      Specified by:
      minWeightValue in class NeatChromosomeSpec
      Returns:
      the inclusive lower bound for connection weights
    • maxWeightValue

      public float maxWeightValue()
      Returns the maximum allowed connection weight.
      Specified by:
      maxWeightValue in class NeatChromosomeSpec
      Returns:
      the inclusive upper bound for connection weights
    • withNodeLayout

      public final ImmutableNeatChromosomeSpec withNodeLayout(NeatNodeLayout value)
      Copy the current immutable object by setting a value for the nodeLayout attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for nodeLayout
      Returns:
      A modified copy or the this object
    • withMinWeightValue

      public final ImmutableNeatChromosomeSpec withMinWeightValue(float value)
      Copy the current immutable object by setting a value for the minWeightValue attribute. A value strict bits equality used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for minWeightValue
      Returns:
      A modified copy or the this object
    • withMaxWeightValue

      public final ImmutableNeatChromosomeSpec withMaxWeightValue(float value)
      Copy the current immutable object by setting a value for the maxWeightValue attribute. A value strict bits equality used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for maxWeightValue
      Returns:
      A modified copy or the this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of ImmutableNeatChromosomeSpec that have equal attribute values.
      Overrides:
      equals in class Object
      Returns:
      true if this is equal to another instance
    • equalsByValue

      private boolean equalsByValue(ImmutableNeatChromosomeSpec another)
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: nodeLayout, minWeightValue, maxWeightValue.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

      public String toString()
      Prints the immutable value NeatChromosomeSpec with attribute values.
      Overrides:
      toString in class Object
      Returns:
      A string representation of the value
    • of

      public static NeatChromosomeSpec of(NeatNodeLayout nodeLayout, float minWeightValue, float maxWeightValue)
      Construct a new immutable NeatChromosomeSpec instance.
      Parameters:
      nodeLayout - The value for the nodeLayout attribute
      minWeightValue - The value for the minWeightValue attribute
      maxWeightValue - The value for the maxWeightValue attribute
      Returns:
      An immutable NeatChromosomeSpec instance
    • validate

      private static ImmutableNeatChromosomeSpec validate(ImmutableNeatChromosomeSpec instance)
    • copyOf

      public static NeatChromosomeSpec copyOf(NeatChromosomeSpec instance)
      Creates an immutable copy of a NeatChromosomeSpec value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable NeatChromosomeSpec instance