private ArrayList<Entry> toArrayList(double startTime, double finishTime) {
		ArrayList<Entry> subProfile = new ArrayList<Entry>();
		startTime = Math.max(startTime, currentTime());
		
		Iterator<ProfileEntry> it = avail.itValuesFromPrec(startTime);
		Entry fe = null;
		
		// get first entry or create one if the profile is empty
		if(it.hasNext()) {
			ProfileEntry ent = it.next();
			PERangeList list = ent.getAvailRanges() == null ? 
					null : ent.getAvailRanges().clone();
			double entTime = Math.max(startTime, ent.getTime()); 
			fe = new Entry(entTime, list);
		}
		else {
			fe = new Entry(startTime);
		}
		subProfile.add(fe);
		
		while(it.hasNext()) {
			ProfileEntry entry = it.next();
           	if(entry.getTime() > finishTime) {
           		break;
   			}
           	
			PERangeList list = entry.getAvailRanges() == null ? 
					null : entry.getAvailRanges().clone();
           	
			Entry newEntry = new Entry(entry.getTime(), list);
			subProfile.add(newEntry);
        }

		return subProfile;
    }