package org.ovirt.engine.core.common.validation;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import org.ovirt.engine.core.common.TimeZoneType;
import org.ovirt.engine.core.common.businessentities.VmBase;
import org.ovirt.engine.core.common.osinfo.OsRepository;
import org.ovirt.engine.core.common.utils.SimpleDependencyInjector;
import org.ovirt.engine.core.common.validation.annotation.ValidTimeZone;
public class TimeZoneValidator implements ConstraintValidator<ValidTimeZone, VmBase> {
private final OsRepository osRepository = SimpleDependencyInjector.getInstance().get(OsRepository.class);
@Override
public void initialize(ValidTimeZone constraintAnnotation) {
}
@Override
public boolean isValid(VmBase value, ConstraintValidatorContext context) {
if (value.getTimeZone() == null) {
return true;
}
TimeZoneType timeZoneType = osRepository.isWindows(value.getOsId()) ? TimeZoneType.WINDOWS_TIMEZONE : TimeZoneType.GENERAL_TIMEZONE;
return timeZoneType.getTimeZoneList().containsKey(value.getTimeZone());
}
}