package com.totoro.incardisplay.simulations;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
* This class takes in a human-readable file of data and decrypts it into
* data usable by a program.
*/
public class VerbatimDecryptor implements Decryptor {
@Override
public TimeSlice[] decrypt(String data) {
ArrayList<TimeSlice> tempList = new ArrayList<TimeSlice>();
while(data.length() > 0) {
String substring = data.substring(1, data.indexOf(")"));
data = data.substring(data.indexOf(")")+1);
tempList.add(stringToTimeSlice(substring));
}
TimeSlice[] ret = new TimeSlice[tempList.size()];
return tempList.toArray(ret);
}
private TimeSlice stringToTimeSlice(String data) {
ArrayList<Datum> list = new ArrayList<Datum>();
while(data.length() > 0) {
String substring = data.substring(1, data.indexOf("]"));
data = data.substring(data.indexOf("]")+1);
list.add(stringToDatum(substring));
}
return new TimeSlice(list);
}
private Datum stringToDatum(String substring) {
StringTokenizer st = new StringTokenizer(substring, ",");
return new Datum(st.nextToken(), Double.parseDouble(st.nextToken()));
}
}