public final class SleepStageInterval

  1. Object
  2. SleepStageInterval
A contiguous span of one SleepStage inside a SleepSample.

Fields

public static final int NO_PLATFORM_CODE = -1Returned by getPlatformCode() when the port did not record one.

Constructors

public SleepStageInterval(SleepStageInterval other)A copy of other, carrying its platform code.
public SleepStageInterval(SleepStage stage, long startMillis, long endMillis)Creates a stage interval.

Methods

public int getPlatformCode()The raw platform value, or NO_PLATFORM_CODE.
public void setPlatformCode(int platformCode)Records the platform’s own value.
public SleepStage getStage()The stage this span was classified as.
public long getStartMillis()Inclusive start, epoch millis UTC.
public long getEndMillis()Exclusive end, epoch millis UTC.
public long getDurationMillis()The length of this span in milliseconds.
public String toString()Returns a string representation of the object.

Inherited methods

Field details

NO_PLATFORM_CODE

public static final int NO_PLATFORM_CODE = -1
Returned by getPlatformCode() when the port did not record one.

Constructor details

SleepStageInterval

public SleepStageInterval(SleepStageInterval other)

A copy of other, carrying its platform code.

Exists because the platform code is mutable, which is what made the shallow list copies visible: SleepSample.create and HealthWire.copyOf copied the list and kept the elements, so a caller holding an interval it had written – or one handed back by a read – could change a stored record by setting a code on it, with no write and no persistence. The list being unmodifiable stopped the shape of the session changing and not the contents of its parts.

SleepStageInterval

public SleepStageInterval(SleepStage stage, long startMillis, long endMillis)
Creates a stage interval.

Throws

IllegalArgumentException
if stage is null or the end precedes the start.

Method details

getPlatformCode

public int getPlatformCode()

The raw platform value, or NO_PLATFORM_CODE.

HKCategoryValueSleepAnalysis on iOS, the Health Connect stage constant on Android. Meaningless across platforms by design: read it only after checking which one you are on.

setPlatformCode

public void setPlatformCode(int platformCode)
Records the platform’s own value. Called by ports while reading.

getStage

public SleepStage getStage()
The stage this span was classified as.

getStartMillis

public long getStartMillis()
Inclusive start, epoch millis UTC.

getEndMillis

public long getEndMillis()
Exclusive end, epoch millis UTC.

getDurationMillis

public long getDurationMillis()
The length of this span in milliseconds.

toString

public String toString()
Returns a string representation of the object. In general, the toString method returns a string that “textually represents” this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@’, and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + ‘@’ + Integer.toHexString(hashCode())