All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javastrava.model.StravaLap Maven / Gradle / Ivy

The newest version!
package javastrava.model;

import java.time.LocalDateTime;
import java.time.ZonedDateTime;

import javastrava.cache.StravaCacheableEntity;
import javastrava.model.reference.StravaResourceState;

/**
 * 

* A lap within an {@link StravaActivity}; this is a user-specified section of a ride somewhat like a segment effort, but specifically bound to either being a lap of a track or a section of the * activity of a particular length (distance) *

* * @author Dan Shannon * */ public class StravaLap implements StravaCacheableEntity { /** * Strava's unique identifier for this lap */ private Long id; /** * State of this resource on Strava */ private StravaResourceState resourceState; /** * Name of the lap */ private String name; /** * Activity that this lap is part of */ private StravaActivity activity; /** * Athlete who did the activity that this lap is part of */ private StravaAthlete athlete; /** * Elapsed time in seconds (including time spent stopped) */ private Integer elapsedTime; /** * Moving time in seconds (excluding time spent stopped) */ private Integer movingTime; /** * Start date and time for this activity */ private ZonedDateTime startDate; /** * Start date and time for this activity, hacked to the time zone where the activity started */ private LocalDateTime startDateLocal; /** * Distance travelled in metres */ private Float distance; /** * Index of the entry in the activity streams that represents the start of the lap */ private Integer startIndex; /** * Index of the entry in the activity streams that represents the end of the lap */ private Integer endIndex; /** * Total elevation gain in metres */ private Float totalElevationGain; /** * Average speed in metres per second */ private Float averageSpeed; /** * Maximum speed in metres per second */ private Float maxSpeed; /** * Average cadence in revolutions per minute (returned only if cadence data was uploaded with the activity). Applies only to rides. */ private Float averageCadence; /** * Average power in watts */ private Float averageWatts; /** * Is set to true if the power was measured using a power meter (i.e. power data was included in the upload) */ private Boolean deviceWatts; /** * Average heart rate in beats per minute */ private Float averageHeartrate; /** * Maximum heart rate in beats per minute */ private Float maxHeartrate; /** * Lap number */ private Integer lapIndex; /** * Pace zone (runs only) */ private Integer paceZone; /** * UNDOCUMENTED */ private String split; /** * No args constructor */ public StravaLap() { super(); } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof StravaLap)) { return false; } final StravaLap other = (StravaLap) obj; if (this.activity == null) { if (other.activity != null) { return false; } } else if (!this.activity.equals(other.activity)) { return false; } if (this.athlete == null) { if (other.athlete != null) { return false; } } else if (!this.athlete.equals(other.athlete)) { return false; } if (this.averageCadence == null) { if (other.averageCadence != null) { return false; } } else if (!this.averageCadence.equals(other.averageCadence)) { return false; } if (this.averageHeartrate == null) { if (other.averageHeartrate != null) { return false; } } else if (!this.averageHeartrate.equals(other.averageHeartrate)) { return false; } if (this.averageSpeed == null) { if (other.averageSpeed != null) { return false; } } else if (!this.averageSpeed.equals(other.averageSpeed)) { return false; } if (this.averageWatts == null) { if (other.averageWatts != null) { return false; } } else if (!this.averageWatts.equals(other.averageWatts)) { return false; } if (this.deviceWatts == null) { if (other.deviceWatts != null) { return false; } } else if (!this.deviceWatts.equals(other.deviceWatts)) { return false; } if (this.distance == null) { if (other.distance != null) { return false; } } else if (!this.distance.equals(other.distance)) { return false; } if (this.elapsedTime == null) { if (other.elapsedTime != null) { return false; } } else if (!this.elapsedTime.equals(other.elapsedTime)) { return false; } if (this.endIndex == null) { if (other.endIndex != null) { return false; } } else if (!this.endIndex.equals(other.endIndex)) { return false; } if (this.id == null) { if (other.id != null) { return false; } } else if (!this.id.equals(other.id)) { return false; } if (this.lapIndex == null) { if (other.lapIndex != null) { return false; } } else if (!this.lapIndex.equals(other.lapIndex)) { return false; } if (this.maxHeartrate == null) { if (other.maxHeartrate != null) { return false; } } else if (!this.maxHeartrate.equals(other.maxHeartrate)) { return false; } if (this.maxSpeed == null) { if (other.maxSpeed != null) { return false; } } else if (!this.maxSpeed.equals(other.maxSpeed)) { return false; } if (this.movingTime == null) { if (other.movingTime != null) { return false; } } else if (!this.movingTime.equals(other.movingTime)) { return false; } if (this.name == null) { if (other.name != null) { return false; } } else if (!this.name.equals(other.name)) { return false; } if (this.paceZone == null) { if (other.paceZone != null) { return false; } } else if (!this.paceZone.equals(other.paceZone)) { return false; } if (this.resourceState != other.resourceState) { return false; } if (this.split == null) { if (other.split != null) { return false; } } else if (!this.split.equals(other.split)) { return false; } if (this.startDate == null) { if (other.startDate != null) { return false; } } else if (!this.startDate.equals(other.startDate)) { return false; } if (this.startDateLocal == null) { if (other.startDateLocal != null) { return false; } } else if (!this.startDateLocal.equals(other.startDateLocal)) { return false; } if (this.startIndex == null) { if (other.startIndex != null) { return false; } } else if (!this.startIndex.equals(other.startIndex)) { return false; } if (this.totalElevationGain == null) { if (other.totalElevationGain != null) { return false; } } else if (!this.totalElevationGain.equals(other.totalElevationGain)) { return false; } return true; } /** * @return the activity */ public StravaActivity getActivity() { return this.activity; } /** * @return the athlete */ public StravaAthlete getAthlete() { return this.athlete; } /** * @return the averageCadence */ public Float getAverageCadence() { return this.averageCadence; } /** * @return the averageHeartrate */ public Float getAverageHeartrate() { return this.averageHeartrate; } /** * @return the averageSpeed */ public Float getAverageSpeed() { return this.averageSpeed; } /** * @return the averageWatts */ public Float getAverageWatts() { return this.averageWatts; } /** * @return the deviceWatts */ public Boolean getDeviceWatts() { return this.deviceWatts; } /** * @return the distance */ public Float getDistance() { return this.distance; } /** * @return the elapsedTime */ public Integer getElapsedTime() { return this.elapsedTime; } /** * @return the endIndex */ public Integer getEndIndex() { return this.endIndex; } /** * @return The identifier */ @Override public Long getId() { return this.id; } /** * @return the lapIndex */ public Integer getLapIndex() { return this.lapIndex; } /** * @return the maxHeartrate */ public Float getMaxHeartrate() { return this.maxHeartrate; } /** * @return the maxSpeed */ public Float getMaxSpeed() { return this.maxSpeed; } /** * @return the movingTime */ public Integer getMovingTime() { return this.movingTime; } /** * @return the name */ public String getName() { return this.name; } /** * @return the paceZone */ public Integer getPaceZone() { return this.paceZone; } @Override public StravaResourceState getResourceState() { return this.resourceState; } /** * @return the split */ public String getSplit() { return this.split; } /** * @return the startDate */ public ZonedDateTime getStartDate() { return this.startDate; } /** * @return the startDateLocal */ public LocalDateTime getStartDateLocal() { return this.startDateLocal; } /** * @return the startIndex */ public Integer getStartIndex() { return this.startIndex; } /** * @return the totalElevationGain */ public Float getTotalElevationGain() { return this.totalElevationGain; } /* * (non-Javadoc) * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((this.activity == null) ? 0 : this.activity.hashCode()); result = (prime * result) + ((this.athlete == null) ? 0 : this.athlete.hashCode()); result = (prime * result) + ((this.averageCadence == null) ? 0 : this.averageCadence.hashCode()); result = (prime * result) + ((this.averageHeartrate == null) ? 0 : this.averageHeartrate.hashCode()); result = (prime * result) + ((this.averageSpeed == null) ? 0 : this.averageSpeed.hashCode()); result = (prime * result) + ((this.averageWatts == null) ? 0 : this.averageWatts.hashCode()); result = (prime * result) + ((this.deviceWatts == null) ? 0 : this.deviceWatts.hashCode()); result = (prime * result) + ((this.distance == null) ? 0 : this.distance.hashCode()); result = (prime * result) + ((this.elapsedTime == null) ? 0 : this.elapsedTime.hashCode()); result = (prime * result) + ((this.endIndex == null) ? 0 : this.endIndex.hashCode()); result = (prime * result) + ((this.id == null) ? 0 : this.id.hashCode()); result = (prime * result) + ((this.lapIndex == null) ? 0 : this.lapIndex.hashCode()); result = (prime * result) + ((this.maxHeartrate == null) ? 0 : this.maxHeartrate.hashCode()); result = (prime * result) + ((this.maxSpeed == null) ? 0 : this.maxSpeed.hashCode()); result = (prime * result) + ((this.movingTime == null) ? 0 : this.movingTime.hashCode()); result = (prime * result) + ((this.name == null) ? 0 : this.name.hashCode()); result = (prime * result) + ((this.paceZone == null) ? 0 : this.paceZone.hashCode()); result = (prime * result) + ((this.resourceState == null) ? 0 : this.resourceState.hashCode()); result = (prime * result) + ((this.split == null) ? 0 : this.split.hashCode()); result = (prime * result) + ((this.startDate == null) ? 0 : this.startDate.hashCode()); result = (prime * result) + ((this.startDateLocal == null) ? 0 : this.startDateLocal.hashCode()); result = (prime * result) + ((this.startIndex == null) ? 0 : this.startIndex.hashCode()); result = (prime * result) + ((this.totalElevationGain == null) ? 0 : this.totalElevationGain.hashCode()); return result; } /** * @param activity * the activity to set */ public void setActivity(final StravaActivity activity) { this.activity = activity; } /** * @param athlete * the athlete to set */ public void setAthlete(final StravaAthlete athlete) { this.athlete = athlete; } /** * @param averageCadence * the averageCadence to set */ public void setAverageCadence(final Float averageCadence) { this.averageCadence = averageCadence; } /** * @param averageHeartrate * the averageHeartrate to set */ public void setAverageHeartrate(final Float averageHeartrate) { this.averageHeartrate = averageHeartrate; } /** * @param averageSpeed * the averageSpeed to set */ public void setAverageSpeed(final Float averageSpeed) { this.averageSpeed = averageSpeed; } /** * @param averageWatts * the averageWatts to set */ public void setAverageWatts(final Float averageWatts) { this.averageWatts = averageWatts; } /** * @param deviceWatts * the deviceWatts to set */ public void setDeviceWatts(final Boolean deviceWatts) { this.deviceWatts = deviceWatts; } /** * @param distance * the distance to set */ public void setDistance(final Float distance) { this.distance = distance; } /** * @param elapsedTime * the elapsedTime to set */ public void setElapsedTime(final Integer elapsedTime) { this.elapsedTime = elapsedTime; } /** * @param endIndex * the endIndex to set */ public void setEndIndex(final Integer endIndex) { this.endIndex = endIndex; } /** * @param id * the id to set */ public void setId(final Long id) { this.id = id; } /** * @param lapIndex * the lapIndex to set */ public void setLapIndex(final Integer lapIndex) { this.lapIndex = lapIndex; } /** * @param maxHeartrate * the maxHeartrate to set */ public void setMaxHeartrate(final Float maxHeartrate) { this.maxHeartrate = maxHeartrate; } /** * @param maxSpeed * the maxSpeed to set */ public void setMaxSpeed(final Float maxSpeed) { this.maxSpeed = maxSpeed; } /** * @param movingTime * the movingTime to set */ public void setMovingTime(final Integer movingTime) { this.movingTime = movingTime; } /** * @param name * the name to set */ public void setName(final String name) { this.name = name; } /** * @param paceZone * the paceZone to set */ public void setPaceZone(Integer paceZone) { this.paceZone = paceZone; } /** * @param resourceState * the resourceState to set */ public void setResourceState(final StravaResourceState resourceState) { this.resourceState = resourceState; } /** * @param split * the split to set */ public void setSplit(String split) { this.split = split; } /** * @param startDate * the startDate to set */ public void setStartDate(final ZonedDateTime startDate) { this.startDate = startDate; } /** * @param startDateLocal * the startDateLocal to set */ public void setStartDateLocal(final LocalDateTime startDateLocal) { this.startDateLocal = startDateLocal; } /** * @param startIndex * the startIndex to set */ public void setStartIndex(final Integer startIndex) { this.startIndex = startIndex; } /** * @param totalElevationGain * the totalElevationGain to set */ public void setTotalElevationGain(final Float totalElevationGain) { this.totalElevationGain = totalElevationGain; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "StravaLap [id=" + this.id + ", resourceState=" + this.resourceState + ", name=" + this.name + ", activity=" + this.activity + ", athlete=" + this.athlete + ", elapsedTime=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ + this.elapsedTime + ", movingTime=" //$NON-NLS-1$ + this.movingTime + ", startDate=" + this.startDate + ", startDateLocal=" + this.startDateLocal + ", distance=" + this.distance + ", startIndex=" + this.startIndex + ", endIndex=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + this.endIndex + ", totalElevationGain=" + this.totalElevationGain + ", averageSpeed=" + this.averageSpeed + ", maxSpeed=" + this.maxSpeed + ", averageCadence=" + this.averageCadence //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + ", averageWatts=" + this.averageWatts //$NON-NLS-1$ + ", deviceWatts=" + this.deviceWatts + ", averageHeartrate=" + this.averageHeartrate + ", maxHeartrate=" + this.maxHeartrate + ", lapIndex=" + this.lapIndex + ", paceZone=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + this.paceZone + ", split=" //$NON-NLS-1$ + this.split + "]"; //$NON-NLS-1$ } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy