/*
* Copyright 2015 Open mHealth
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.openmhealth.shimmer.common.configuration;
import org.openmhealth.shimmer.common.domain.DateTimeQueryReferenceFrame;
import org.openmhealth.shimmer.common.domain.DateTimeQueryTimeZoneRestriction;
import java.time.Duration;
import java.time.ZoneId;
import java.util.Optional;
import static org.openmhealth.shimmer.common.domain.DateTimeQueryReferenceFrame.TIME_ZONES;
import static org.openmhealth.shimmer.common.domain.DateTimeQueryTimeZoneRestriction.ANY_TIME_ZONE;
/**
* @author Emerson Farrugia
*/
public class DefaultDateTimeQuerySettings implements DateTimeQuerySettings {
private DateTimeQueryReferenceFrame referenceFrame = TIME_ZONES;
private DateTimeQueryTimeZoneRestriction timeZoneRestriction = ANY_TIME_ZONE;
private ZoneId fixedTimeZone;
private Duration minimumDuration;
private Duration maximumDuration;
@Override
public DateTimeQueryReferenceFrame getReferenceFrame() {
return referenceFrame;
}
public void setReferenceFrame(DateTimeQueryReferenceFrame referenceFrame) {
this.referenceFrame = referenceFrame;
}
@Override
public Optional<DateTimeQueryTimeZoneRestriction> getTimeZoneRestriction() {
return Optional.ofNullable(timeZoneRestriction);
}
public void setTimeZoneRestriction(DateTimeQueryTimeZoneRestriction timeZoneRestriction) {
this.timeZoneRestriction = timeZoneRestriction;
}
@Override
public Optional<ZoneId> getFixedTimeZone() {
return Optional.ofNullable(fixedTimeZone);
}
public void setFixedTimeZone(ZoneId expectedTimeZone) {
this.fixedTimeZone = expectedTimeZone;
}
@Override
public Optional<Duration> getMinimumDuration() {
return Optional.ofNullable(minimumDuration);
}
public void setMinimumDuration(Duration minimumDuration) {
this.minimumDuration = minimumDuration;
}
@Override
public Optional<Duration> getMaximumDuration() {
return Optional.ofNullable(maximumDuration);
}
public void setMaximumDuration(Duration maximumDuration) {
this.maximumDuration = maximumDuration;
}
}