package rmblworx.tools.timey.gui;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import rmblworx.tools.timey.vo.AlarmDescriptor;
import rmblworx.tools.timey.vo.TimeDescriptor;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Konvertiert zwischen {@link Alarm} und {@link AlarmDescriptor}.
* @author Christian Raue {@literal <christian.raue@gmail.com>}
*/
public final class AlarmDescriptorConverter {
public static Alarm getAsAlarm(final AlarmDescriptor ad) {
if (ad == null) {
throw new IllegalArgumentException("null");
}
final LocalDateTime dateTime = DateTimeUtil.getLocalDateTimeFromMillis(ad.getAlarmtime().getMilliSeconds());
final String sound = ad.getSound();
return new Alarm(dateTime, ad.getDescription(), sound, ad.getIsActive());
}
public static AlarmDescriptor getAsAlarmDescriptor(final Alarm alarm) {
if (alarm == null) {
throw new IllegalArgumentException("null");
}
final TimeDescriptor time = new TimeDescriptor(alarm.getDateTimeInMillis());
final String sound = alarm.getSound();
return new AlarmDescriptor(time, alarm.isEnabled(), alarm.getDescription(), sound, null);
}
public static List<Alarm> getAsAlarms(final List<AlarmDescriptor> in) {
final List<Alarm> out = new ArrayList<>(in.size());
for (final AlarmDescriptor ad : in) {
out.add(AlarmDescriptorConverter.getAsAlarm(ad));
}
return out;
}
// wird derzeit nicht benötigt
public static List<AlarmDescriptor> getAsAlarmDescriptors(final List<Alarm> in) {
final List<AlarmDescriptor> out = new ArrayList<>(in.size());
for (final Alarm alarm: in) {
out.add(AlarmDescriptorConverter.getAsAlarmDescriptor(alarm));
}
return out;
}
/**
* Instanziierung verhindern.
*/
private AlarmDescriptorConverter() {
}
}