it.amattioli.encapsulate.range
Interface Range<T extends Comparable<? super T>>

Show UML class diagram
All Known Subinterfaces:
TimeInterval
All Known Implementing Classes:
AbstractRange, ContinousRange, ConventionalTimeInterval, Day, DiscreteRange, GenericContinousRange, GenericDiscreteRange, GenericTimeInterval, Hour, Month, QuarterOfDay, Week, Year

public interface Range<T extends Comparable<? super T>>

Un range rappresenta un intervallo di valori. Un range e' parametrizzato tramite la classe dei valori dell'intervallo stesso. Questa classe non può essere una classe qualsiasi perche' e' fondamentale che i suoi elementi siano confrontabili tra di loro, dunque deve implementare l'interfaccia Comparable. L'intervallo puo' essere limitato o illimitato sia superiormente che inferiormente. Non e' definito se gli estremi dell'intervallo debbano far parte o meno dell'intervallo. Questa scelta e' lasciata alle singole implementazioni.


Method Summary
 boolean abutOn(Range<? extends T> r)
          Controlla se un altro range e' adiacente a questo.
 boolean contains(Range<? extends T> r)
          Controlla se un altro range e' completamente contenuto in questo o, equivalentemente, se l'intervallo passato come parametro e' un sottointervallo di questo.
 Range<T> gap(Range<T> r)
          Costruisce un nuovo range che rappresenta lo spazio vuoto tra questo e quello passato come parametro.
 T getHigh()
          Ritorna l'estremo inferiore dell'intervallo.
 T getLow()
          Ritorna l'estremo inferiore dell'intervallo.
 boolean hasSameHigh(Range<? extends T> r)
          Controlla se il range passato come parametro ha lo stesso estremo superiore di questo.
 boolean hasSameLow(Range<? extends T> r)
          Controlla se il range passato come parametro ha lo stesso estremo inferiore di questo.
 boolean includes(T test)
          Controlla se un valore e' compreso nell'intervallo.
 Range<T> intersect(Range<T> r)
           
 boolean isHighBounded()
          Indica se l'intervallo e' limitato superiormente.
 boolean isLowBounded()
          Indica se l'intervallo e' limitato inferiormente.
 Range<T> mergeWith(Range<T> r)
          Costruisce un nuovo range corrispondente all'unione di queso con quello passato come parametro.
 Set<Range<T>> minus(Range<T> r)
           
 boolean overlaps(Range<? extends T> r)
          Controlla se un altro range si sovrappone a questo.
 

Method Detail

getLow

T getLow()
Ritorna l'estremo inferiore dell'intervallo. L'operazione puo' essere effettuata solamente per intervalli che possiedono un estremo inferiore, in caso contrario viene sollevata un'eccezione.

Returns:
l'estremo inferiore dell'intervallo.
Throws:
UnboundedRangeException - se l'intervallo non e' limitato inferiormente.

getHigh

T getHigh()
Ritorna l'estremo inferiore dell'intervallo. L'operazione puo' essere effettuata solamente per intervalli che possiedono un estremo superiore, in caso contrario viene sollevata un'eccezione.

Returns:
l'estremo inferiore dell'intervallo.
Throws:
UnboundedRangeException - se l'intervallo non e' limitato superiormente.

isLowBounded

boolean isLowBounded()
Indica se l'intervallo e' limitato inferiormente.

Returns:
true se l'intervallo e' limitato inferiormente, altrimenti false.

isHighBounded

boolean isHighBounded()
Indica se l'intervallo e' limitato superiormente.

Returns:
true se l'intervallo e' limitato superiormente, altrimenti false.

includes

boolean includes(T test)
Controlla se un valore e' compreso nell'intervallo. E' lasciata alle singole implementazioni la scelta di includere o meno gli estremi dell'intervallo e dunque il valore effettivamente ritornato da questo metodo se viene passato come parametro un valore corrispondente ad uno dei due estremi.

Parameters:
test - il valore da testare se e' incluso nell'intervallo
Returns:
true se il valore passato come parametro e' compreso in questo intervallo, altrimenti false

contains

boolean contains(Range<? extends T> r)
Controlla se un altro range e' completamente contenuto in questo o, equivalentemente, se l'intervallo passato come parametro e' un sottointervallo di questo.

Parameters:
r - il range da controllare se e' incluso in questo
Returns:
true se il valore passato come parametro e' compreso in questo, altrimenti false

overlaps

boolean overlaps(Range<? extends T> r)
Controlla se un altro range si sovrappone a questo.


mergeWith

Range<T> mergeWith(Range<T> r)
Costruisce un nuovo range corrispondente all'unione di queso con quello passato come parametro. Questa operazione e' definita solamente se i due range si sovrappongono, altrimenti verra' sollevata un'eccezione.


abutOn

boolean abutOn(Range<? extends T> r)
Controlla se un altro range e' adiacente a questo.


gap

Range<T> gap(Range<T> r)
Costruisce un nuovo range che rappresenta lo spazio vuoto tra questo e quello passato come parametro. Questa operazione e' definita solamente se i due range non si sovrappongono, altrimenti verra' sollevata un'eccezione.


hasSameLow

boolean hasSameLow(Range<? extends T> r)
Controlla se il range passato come parametro ha lo stesso estremo inferiore di questo. Il risultato e' definito anche per intervalli non limitati inferiormente.

Parameters:
r - il range da controllare
Returns:
true se il range passato come parametro ha lo stesso estremo inferiore di questo oppure se entrambi non sono limitati inferiormente, altrimenti false

hasSameHigh

boolean hasSameHigh(Range<? extends T> r)
Controlla se il range passato come parametro ha lo stesso estremo superiore di questo. Il risultato e' definito anche per intervalli non limitati superiormente.

Parameters:
r - il range da controllare
Returns:
true se il range passato come parametro ha lo stesso estremo superiore di questo oppure se entrambi non sono limitati superiormente, altrimenti false

intersect

Range<T> intersect(Range<T> r)

minus

Set<Range<T>> minus(Range<T> r)


Copyright © 2011. All Rights Reserved.