# Interface Interval

All Known Subinterfaces:
  `BoundedInterval, MutableBoundedInterval, MutableInterval`

All Known Implementing Classes:
  `AbstractBoundedInterval, AbstractMutableInterval, ClosedInterval, OpenInterval, PropertyClosedInterval, SimpleBoundedInterval, SimpleClosedInterval, TransformBoundedInterval`

public interface Interval
/** This interface represents the current state of an interval.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addIntervalListener(IntervalListener listener)`
  `void`
  `addWeakIntervalListener(IntervalListener listener)`
  `boolean`
  `contains(double value)`
  Tests if this interval contains the specified value
  `boolean`
  `containsInterval(Interval interval)`
  Tests if this interval contains the specified interval
  `boolean`
  `containsStartEnd(double start, double end)`
  Tests if this interval contains the specified interval
  `double`
  `getEnd()`
  `Property<Double>`
  `getEndProperty()`
  `double`
  `getExtent()`
  `double`
  `getStart()`
  `Property<Double>`
  `getStartProperty()`
  `boolean`
  `isDegenerate()`
  Tests whether the starting and ending values are the same
  `boolean`
  `isInverted()`
  `boolean`
  `overlaps(double start, double end)`
  Tests if this interval overlaps the specified interval.
  `boolean`
  `overlapsInterval(Interval interval)`
  Tests if this interval overlaps the specified interval.
  `void`
  `removeIntervalListener(IntervalListener listener)`
  `void`
  `removeIntervalListeners()`

- ## Method Details

  - ### getStartProperty

    Property<Double> getStartProperty()

  - ### getEndProperty

    Property<Double> getEndProperty()

  - ### getStart

    @JsMethod double getStart()

  - ### getEnd

    @JsMethod double getEnd()

  - ### getExtent

    @JsMethod double getExtent()

  - ### contains

    boolean contains(double value)
    Tests if this interval contains the specified value
    Parameters:
      `value` - the value to test
    Returns:
      true if the interval contains the value, false otherwise

  - ### containsStartEnd

    boolean containsStartEnd(double start, double end)
    Tests if this interval contains the specified interval
    Parameters:
      `start` - the value to test
      `end` - the value to test
    Returns:
      true if the interval contains the value, false otherwise

  - ### containsInterval

    boolean containsInterval(Interval interval)
    Tests if this interval contains the specified interval
    Parameters:
      `interval` - the interval to test
    Returns:
      true if the interval contains the value, false otherwise

  - ### overlaps

    boolean overlaps(double start, double end)
    Tests if this interval overlaps the specified interval.
    Parameters:
      `start` - the interval to test
      `end` - the interval to test
    Returns:
      true if this interval overlaps the specified interval, false otherwise

  - ### overlapsInterval

    boolean overlapsInterval(Interval interval)
    Tests if this interval overlaps the specified interval.
    Parameters:
      `interval` - the interval to test
    Returns:
      true if this interval overlaps the specified interval, false otherwise

  - ### isDegenerate

    boolean isDegenerate()
    Tests whether the starting and ending values are the same
    Returns:
      true if start and end values are identical, false otherwise

  - ### isInverted

    boolean isInverted()

  - ### addIntervalListener

    void addIntervalListener(IntervalListener listener)

  - ### addWeakIntervalListener

    void addWeakIntervalListener(IntervalListener listener)

  - ### removeIntervalListener

    void removeIntervalListener(IntervalListener listener)

  - ### removeIntervalListeners

    void removeIntervalListeners()