it.amattioli.encapsulate.dates
Class ConventionalTimeInterval

Show UML class diagram
java.lang.Object
  extended by it.amattioli.encapsulate.range.AbstractRange<T>
      extended by it.amattioli.encapsulate.range.ContinousRange<Date>
          extended by it.amattioli.encapsulate.dates.ConventionalTimeInterval
All Implemented Interfaces:
TimeInterval, Range<Date>, Serializable
Direct Known Subclasses:
Day, Hour, Month, QuarterOfDay, Week, Year

public abstract class ConventionalTimeInterval
extends ContinousRange<Date>
implements TimeInterval, Serializable

Rappresenta un intervallo di tempo stabilito convenzionalmente come un giorno, una settimana o un mese.

Essendo un intervallo convenzionale questo dipenderà dalla locale in cui ci si trova. Ad esempio lo stesso giorno potrĂ  avere inizio e fine diversi in nazioni diversi a causa del fuso orario.

L'insieme degli intervalli convenzionali dello steso tipo forma generalmente un insieme discreto per cui è possibile implementare i metodi dell'interfaccia @see(Discrete). Ad esempio l'insieme di tutti i giorni è un insieme discreto per il quale è possibile stabilire qual'è il giorno precedente e il giorno successivo

Author:
a.mattioli
See Also:
Serialized Form

Constructor Summary
ConventionalTimeInterval()
           
 
Method Summary
 boolean after(Date date)
           
 boolean after(TimeInterval other)
          Verifica se un altro intervallo segue completamente questo.
 boolean before(Date date)
           
 boolean before(TimeInterval other)
          Verifica se un altro intervallo precede completamente questo.
 DayIterator dayIterator()
           
protected  Calendar getCalendar()
          Restituisce il calendario utilizzato per stabilire l'istante iniziale e finale di questo intervallo di tempo
abstract  Date getEndTime()
          Restituisce l'istante di tempo finale di questo intervallo
 Date getHigh()
          Ritorna l'estremo inferiore dell'intervallo.
 Day getHighDay()
           
 Date getInitTime()
          Restituisce l'istante di tempo iniziale di questo intervallo
 Date getLow()
          Ritorna l'estremo inferiore dell'intervallo.
 Day getLowDay()
           
 PhysicalDuration getPhysicalDuration()
           
 int hashCode()
           
 boolean includes(Date time)
          Controlla se un valore e' compreso nell'intervallo.
 boolean isHighBounded()
          Indica se l'intervallo e' limitato superiormente.
 boolean isLowBounded()
          Indica se l'intervallo e' limitato inferiormente.
protected  GenericTimeInterval newRange(Date low, Date high)
          Crea un nuovo range compatibile con questo.
abstract  ConventionalTimeInterval next()
           
abstract  ConventionalTimeInterval previous()
           
protected  void setCalendar(Calendar cal)
          Imposta il calendario utilizzato per stabilire l'istante iniziale e finale di questo intervallo di tempo
 
Methods inherited from class it.amattioli.encapsulate.range.ContinousRange
abutOn, gap, mergeWith, minus
 
Methods inherited from class it.amattioli.encapsulate.range.AbstractRange
contains, equals, hasSameHigh, hasSameLow, intersect, overlaps, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface it.amattioli.encapsulate.dates.TimeInterval
getDuration
 
Methods inherited from interface it.amattioli.encapsulate.range.Range
abutOn, contains, gap, hasSameHigh, hasSameLow, intersect, mergeWith, minus, overlaps
 

Constructor Detail

ConventionalTimeInterval

public ConventionalTimeInterval()
Method Detail

getCalendar

protected Calendar getCalendar()
Restituisce il calendario utilizzato per stabilire l'istante iniziale e finale di questo intervallo di tempo

Returns:
il calendario utilizzato per stabilire l'istante iniziale e finale di questo intervallo di tempo

setCalendar

protected void setCalendar(Calendar cal)
Imposta il calendario utilizzato per stabilire l'istante iniziale e finale di questo intervallo di tempo

Parameters:
cal - il nuovo calendario da utilizzare

previous

public abstract ConventionalTimeInterval previous()

next

public abstract ConventionalTimeInterval next()

includes

public boolean includes(Date time)
Description copied from interface: Range
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.

Specified by:
includes in interface TimeInterval
Specified by:
includes in interface Range<Date>
Overrides:
includes in class AbstractRange<Date>
Parameters:
time - il valore da testare se e' incluso nell'intervallo
Returns:
true se il valore passato come parametro e' compreso in questo intervallo, altrimenti false

getInitTime

public Date getInitTime()
Restituisce l'istante di tempo iniziale di questo intervallo

Returns:
l'istante di tempo iniziale di questo intervallo

getEndTime

public abstract Date getEndTime()
Restituisce l'istante di tempo finale di questo intervallo

Returns:
l'istante di tempo finale di questo intervallo

before

public boolean before(TimeInterval other)
Verifica se un altro intervallo precede completamente questo. Questo vuol dire che l'istante di tempo finale dell'altro intervallo deve precedere l'istante di tempo iniziale di questo.

Specified by:
before in interface TimeInterval
Parameters:
other - l'intervallo di tempo da confrontare con questo
Returns:
true se il parametro precede completamente questo, altrimenti false
Throws:
NullPointerException - se il parametro è null

after

public boolean after(TimeInterval other)
Verifica se un altro intervallo segue completamente questo. Questo vuol dire che l'istante di tempo iniziale dell'altro intervallo deve seguire l'istante di tempo finale di questo.

Specified by:
after in interface TimeInterval
Parameters:
other - l'intervallo di tempo da confrontare con questo
Returns:
true se il parametro segue completamente questo, altrimenti false
Throws:
NullPointerException - se il parametro è null

before

public boolean before(Date date)

after

public boolean after(Date date)

hashCode

public int hashCode()
Overrides:
hashCode in class AbstractRange<Date>

getLow

public Date getLow()
Description copied from interface: Range
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.

Specified by:
getLow in interface Range<Date>
Returns:
l'estremo inferiore dell'intervallo.

getHigh

public Date getHigh()
Description copied from interface: Range
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.

Specified by:
getHigh in interface Range<Date>
Returns:
l'estremo inferiore dell'intervallo.

isLowBounded

public boolean isLowBounded()
Description copied from interface: Range
Indica se l'intervallo e' limitato inferiormente.

Specified by:
isLowBounded in interface Range<Date>
Returns:
true se l'intervallo e' limitato inferiormente, altrimenti false.

isHighBounded

public boolean isHighBounded()
Description copied from interface: Range
Indica se l'intervallo e' limitato superiormente.

Specified by:
isHighBounded in interface Range<Date>
Returns:
true se l'intervallo e' limitato superiormente, altrimenti false.

newRange

protected GenericTimeInterval newRange(Date low,
                                       Date high)
Description copied from class: AbstractRange
Crea un nuovo range compatibile con questo.

Specified by:
newRange in class AbstractRange<Date>
Returns:

getPhysicalDuration

public PhysicalDuration getPhysicalDuration()
Specified by:
getPhysicalDuration in interface TimeInterval

getLowDay

public Day getLowDay()
Specified by:
getLowDay in interface TimeInterval

getHighDay

public Day getHighDay()
Specified by:
getHighDay in interface TimeInterval

dayIterator

public DayIterator dayIterator()


Copyright © 2011. All Rights Reserved.