@@ -0,0 +1,2456 @@
+package com.cronutils.model;%0A%0Aimport com.cronutils.model.field.*;%0Aimport com.google.common.collect.Lists;%0Aimport com.google.common.collect.Maps;%0A%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Aclass ExecutionTime %7B%0A%0A    private Map%3CCronFieldName, List%3CInteger%3E%3E executionTimes;%0A%0A    private ExecutionTime(Map%3CCronFieldName, CronField%3E fields)%7B%0A        this.executionTimes = Maps.newHashMap();%0A    %7D%0A%0A    public static ExecutionTime forCron(Cron cron)%7B%0A        return new ExecutionTime(cron.retrieveFieldsAsMap());%0A    %7D%0A%0A//    public DateTime afterDate(DateTime date)%7B%0A//    %7D%0A//%0A//    public DateTime beforeDate(DateTime date)%7B%0A//    %7D%0A%0A    private List%3CInteger%3E fromFieldToTimeValues(FieldExpression fieldExpression, int max)%7B%0A        if(fieldExpression instanceof And)%7B%0A            return fromFieldToTimeValues((And)fieldExpression, max);%0A        %7D%0A        if(fieldExpression instanceof Between)%7B%0A            return fromFieldToTimeValues((Between)fieldExpression, max);%0A        %7D%0A        if(fieldExpression instanceof On)%7B%0A            return fromFieldToTimeValues((On)fieldExpression, max);%0A        %7D%0A        if(fieldExpression instanceof Always)%7B%0A            return fromFieldToTimeValues((Always)fieldExpression, max);%0A        %7D%0A        return Lists.newArrayList();%0A    %7D%0A%0A    private List%3CInteger%3E fromFieldToTimeValues(And fieldExpression, int max)%7B%0A        List%3CInteger%3E values = Lists.newArrayList();%0A        for(FieldExpression expression : fieldExpression.getExpressions())%7B%0A            values.addAll(fromFieldToTimeValues(expression, max));%0A        %7D%0A        return values;%0A    %7D%0A%0A    private List%3CInteger%3E fromFieldToTimeValues(Between fieldExpression, int max)%7B%0A        List%3CInteger%3E values = Lists.newArrayList();%0A        int every = fieldExpression.getEvery().getTime();%0A        for(int j = fieldExpression.getFrom(); j %3C fieldExpression.getTo() + 1; j+=every)%7B%0A            values.add(j);%0A        %7D%0A        return values;%0A    %7D%0A%0A    private List%3CInteger%3E fromFieldToTimeValues(On fieldExpression, int max)%7B%0A        List%3CInteger%3E values = Lists.newArrayList();%0A        values.add(fieldExpression.getTime());%0A        return values;%0A    %7D%0A%0A    private List%3CInteger%3E fromFieldToTimeValues(Always fieldExpression, int max)%7B%0A        List%3CInteger%3E values = Lists.newArrayList();%0A        int every = fieldExpression.getEvery().getTime();%0A        for(int j = 1; j %3C= max; j+=every)%7B%0A            values.add(j);%0A        %7D%0A        return values;%0A    %7D%0A%7D%0A

Create ExecutionTime object