All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.viaoa.scheduler.OAScheduler Maven / Gradle / Ivy

There is a newer version: 3.7.10
Show newest version
package com.viaoa.scheduler;

import java.util.ArrayList;

import com.viaoa.object.OAObject;
import com.viaoa.util.OADateTime;

/**
 * Top level component/controller for gathering one or more schedule plans. 
 * 
 * @author vvia
 */
public class OAScheduler {

    private OADateTime dtBegin, dtEnd;
    private ArrayList> alSchedulePlan;
    private T objSearch;
    
    /**
     * Set the begin and end datetime.
     */
    public OAScheduler(T objSearch, OADateTime dtBegin, OADateTime dtEnd) {
        this.objSearch = objSearch;
        this.dtBegin = dtBegin;
        this.dtEnd = dtEnd;
    }
    
    public T getSearchObject() {
        return objSearch;
    }
    
    public OADateTime getBegin() {
        return dtBegin;
    }
    public OADateTime getEnd() {
        return dtEnd;
    }
    
    public void add(OASchedulerPlan schPlan) {
        if (schPlan == null) return;
        if (alSchedulePlan == null) alSchedulePlan = new ArrayList<>();
        alSchedulePlan.add(schPlan);
    }
    
    public void calculate() {
    }
    
    public ArrayList> getSchedulePlans() {
        if (alSchedulePlan == null) alSchedulePlan = new ArrayList<>();
        return alSchedulePlan;
    }
    
    public boolean isAvailable(OADateTime dt) {
        for (OASchedulerPlan sp : getSchedulePlans()) {
            if (!sp.isAvailable(dt)) return false;
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy