118 lines
3.0 KiB
Java
Raw Normal View History

2021-02-16 13:42:49 +01:00
package com.jens.automation2;
import java.sql.Time;
import java.util.ArrayList;
public class TimeFrame
{
// Defines a timeframe
2022-05-26 18:47:30 +02:00
protected TimeObject triggerTimeStart;
protected TimeObject triggerTimeStop;
2021-11-07 17:29:00 +01:00
protected long repetition;
2021-02-16 13:42:49 +01:00
2021-11-07 17:29:00 +01:00
protected final static String separator = "/";
private ArrayList<Integer> dayList = new ArrayList<Integer>();
public ArrayList<Integer> getDayList()
{
return dayList;
}
public void setDayList(ArrayList<Integer> dayList)
{
this.dayList = dayList;
}
public void setDayListFromString(String dayListString)
{
// Log.i("Parsing", "Full string: " + dayListString);
char[] dayListCharArray = dayListString.toCharArray();
dayList = new ArrayList<Integer>();
for(char item : dayListCharArray)
2021-02-16 13:42:49 +01:00
{
// Log.i("Parsing", String.valueOf(item));
2021-11-07 17:29:00 +01:00
dayList.add(Integer.parseInt(String.valueOf(item)));
2021-02-16 13:42:49 +01:00
}
2021-11-07 17:29:00 +01:00
}
2021-02-16 13:42:49 +01:00
2022-05-26 18:47:30 +02:00
public TimeObject getTriggerTimeStart()
2021-11-07 17:29:00 +01:00
{
return triggerTimeStart;
}
2022-05-26 18:47:30 +02:00
public void setTriggerTimeStart(TimeObject triggerTimeStart)
2021-11-07 17:29:00 +01:00
{
this.triggerTimeStart = triggerTimeStart;
}
2022-05-26 18:47:30 +02:00
public TimeObject getTriggerTimeStop()
2021-11-07 17:29:00 +01:00
{
return triggerTimeStop;
}
2022-05-26 18:47:30 +02:00
public void setTriggerTimeStop(TimeObject triggerTimeStop)
2021-11-07 17:29:00 +01:00
{
this.triggerTimeStop = triggerTimeStop;
}
public long getRepetition()
{
return repetition;
}
public void setRepetition(long repetition)
{
this.repetition = repetition;
}
2022-05-26 18:47:30 +02:00
public TimeFrame (TimeObject timeStart, TimeObject timeEnd, ArrayList<Integer> dayList2, long repetition)
2021-11-07 17:29:00 +01:00
{
this.setTriggerTimeStart(timeStart);
this.setTriggerTimeStop(timeEnd);
this.setDayList(dayList2);
this.setRepetition(repetition);
}
2021-11-08 20:13:11 +01:00
public TimeFrame (String fileContent)
2021-11-07 17:29:00 +01:00
{
String[] dateArray = fileContent.split(separator); // example: timestart/timestop/days[int]/repetition
2022-05-26 18:47:30 +02:00
this.setTriggerTimeStart(TimeObject.valueOf(dateArray[0]));
this.setTriggerTimeStop(TimeObject.valueOf(dateArray[1]));
2021-11-07 17:29:00 +01:00
this.setDayListFromString(dateArray[2]);
2021-11-13 02:32:39 +01:00
if(dateArray.length > 3) // may not exist in old config files
this.setRepetition(Long.parseLong(dateArray[3]));
2021-11-07 17:29:00 +01:00
}
public String toTriggerParameter2String()
{
StringBuilder response = new StringBuilder();
response.append(this.getTriggerTimeStart().getHours() + ":" + this.getTriggerTimeStart().getMinutes() + ":0");
response.append(separator);
response.append(this.getTriggerTimeStop().getHours() + ":" + this.getTriggerTimeStop().getMinutes() + ":0");
response.append(separator);
StringBuilder days = new StringBuilder();
for(int day : dayList)
days.append(String.valueOf(day));
response.append(days.toString());
if(this.repetition > 0)
{
response.append(separator + this.getRepetition());
}
return response.toString();
}
2021-11-07 17:29:00 +01:00
@Override
public String toString()
{
String returnString = this.getTriggerTimeStart().toString() + separator + this.getTriggerTimeStop().toString() + separator;
for(Integer oneDay : this.getDayList())
returnString += String.valueOf(oneDay);
returnString += separator + String.valueOf(repetition);
return returnString;
}
}